【问题标题】:How to construct a two level partition in kdb?如何在kdb中构造一个二级分区?
【发布时间】:2021-12-05 16:33:16
【问题描述】:

是否可以在 kdb+ 中使用两级分区方案?例如,一个级别基于交易日期,另一个级别基于股票代码。谢谢!

【问题讨论】:

    标签: kdb


    【解决方案1】:

    如果您使用标准的按日期分区和-`p#attribute-on-sym 方法,那么您确实有一个两级分区。按日期查询/过滤非常有效

    select from table where date=x
    

    而且通常通过符号查询/过滤仍然非常有效

    select from table where date within(x;y),sym=z
    

    特别是如果您运行辅助线程并具有良好的磁盘性能。

    因此,在查询所有历史记录中的符号时,以及查询给定日期的所有符号时,您应该获得良好的性能。这也是写日常数据最简单的方法。

    我不相信有任何真正的方法可以在不以两种不同的方式两次写入数据的情况下拥有真正的两级分区。

    【讨论】:

      【解决方案2】:

      如果您的查询跨越大量符号或涉及对每个符号的广泛查询,这将受益于并行计算,您可以按首字母范围进行分段:A-N、N-Z 或更细粒度。

      只要你在段内和跨段维护`p#(例如,IBM 只出现在一个地方),你就可以在问题上抛出线程和磁盘。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-22
        相关资源
        最近更新 更多