如何高效地 select KDB table 的第一行或最后一行存储在磁盘上

how to efficiiently select first or last rows from a KDB table stored on disk

对于内存中的 table,我可以使用子列表或 take 语法来检索前 x 个、后 x 个元素。

如何对可能非常大的磁盘 table 有效地执行此操作?约束是我不想将所有数据从 table 缓存到内存到 运行 查询。

.Q.ind - 它需要一个 table 和(长!)索引到 table - 和 returns 适当的行 http://code.kx.com/q/ref/dotq/#qind-partitioned-index

我想您可以使用第 i 列,它是历史记录中的行号(每个分区!)。

所以第一行是select from trade where date=first date, i = 0
我猜最后一行是 select from trade where date=last date, i=max i

这假定按日期内容正常分区。如果你只有一个非分区表,可能 select from trade where i=0 会很好