Kdb + / q:如何使用索引批量插入KDB +表中?

Bra*_*rad 1 bulkinsert time-series kdb

我正在尝试将多个记录同时批量插入KDB +数据库:

> trades:([]time:`datetime$();side:`symbol$();qty:`float$();price:`float$();exch:`symbol$();sym:`symbol$())
> t: .z.z   / intentionally the same time
> `trades insert (t t;`buy `sell;10 10;10 10;`exch `exch;`sym `sym)
Run Code Online (Sandbox Code Playgroud)

但是,它会在sym列'sym处引发错误

  [0]  `depths insert (t t;`buy `sell;10 10;10 10; `exch `exch;`sym `sym)
                                                               ^
Run Code Online (Sandbox Code Playgroud)

不知道我在这里可能在做什么错,但它似乎是值不变的,即,不管提供的值如何,它总是在最后一列引发错误。有人可以告诉我如何将批量记录插入具有上述时间索引的kdb +中。

谢谢

小智 5

在原始的插入语句中`sym `sym`exch `exch 和之间有空格 `buy `sell。符号之间的空格使其成为应用或索引,而不是您想要的列表。另外,由于您已将qty和指定pricefloat ,因此必须float在插入trades 表时 指定数字。以下行应完成您打算做的事情:

`trades insert (2#t;`buy`sell;10 10f;10 10f;`exch`exch;`sym`sym)

最后,我建议将qty列的架构更改为int/long,因为数量通常不需要小数点。希望这可以帮助!