我有一个简单的表格,其中包含我用于库存算法回测的价格。
price_hist:([pxkey:`$()]price:`float$())
update `g#pxkey from `price_hist
pxkey是格式为“MSFT_5M_201710060945”的串联字符串,因此stock = MSFT,价格条间隔= 5分钟,datetime = 201710060945。我使用了连接字符串而不是单独的列,因为它很简单,而且我是KDB新手,我希望能够快速运行。
我有大约500万行,使用完全相同的数据,性能仅略高于MySql。关于如何改进这一点的任何想法(通过表结构,属性,查询,任何东西..)?仅供参考我正在使用带有qSharp库的C#并查询我正在使用这种返回字典的格式: -
price_hist`MSFT_5M_201710060945
答案 0 :(得分:0)
创建数百万个生成的符号在kdb +中绝不是一个好主意。我建议使用键控表而不是字典:
bar5m:([sym:`$();time:`timestamp$()]price:`float$())
填充后,您应该可以按如下方式查询
bar5m[(`MSFT;2017.10.06D09:45);`price]
要提高效果,请确保该表格按sym,time
排序,并将p
属性设置为sym
。