1

我有一个刻度数据表,表示各种金融工具的价格,精度高达毫秒。问题是,有超过 50 亿个条目,即使是最基本的查询也需要几分钟。

我只需要精度高达 1 秒的数据 - 是否有一种有效的方法对表进行采样,以便在查询前将精度降低到大约 1 秒?这应该会大大减少数据量,从而减少执行时间。

到目前为止,作为一个快速破解,我已将条件添加where i mod 2 = 0到我的查询中,但有更好的方法吗?

4

1 回答 1

3

存储时间数据的最佳方法是使用 xbar

q)select last price, sum size by 10 xbar time.minute from trade where sym=`IBM
minute| price size
------| -----------
09:30 | 55.32 90094
09:40 | 54.99 48726
09:50 | 54.93 36511
10:00 | 55.23 35768 
...

更多信息http://code.kx.com/q/ref/arith-integer/#xbar

于 2014-03-17T18:57:13.193 回答