怎么对特征名进行分布式分区存储在dolphindb库表中

,特征表使用以下的设计方案

【日期,代码,变量名,变量值】

示例数据如下:

-------------------------

2021.01.04,SH.600000, V1,0.123456

2021.01.05,SH.600000, V1,0.234567

...

2021.01.04 ,SZ.000001,V1,0.135790

2021.01.05 ,SZ.000001,V1,0.987654

...

2021.01.04,SH.600000, V2,0.123456

2021.01.05,SH.600000, V2,0.234567

...

2021.01.04 ,SZ.000001,V2,0.135790

2021.01.05 ,SZ.000001,V2,0.987654

...

我们将来的特征数,是动态增减的。而作为分区的字段,是特征名。那么,我们应该采用什么方案比较合适?

里面的特征名字段 ( V1, V2...),取值,将来可能会有几万,几十万。当前使用的几千。

常用查询条件是根据特征名来查询

请先 登录 后评论

1 个回答

mhxiang

建议您按两个维度复合分区,第一个维度是日期按年分区,第二个按特征名值分区;

如果时间的颗粒度更细,日期还可以按月按日分区;

dolphindb值分区可以动态增加的,可以参考如下用户手册

https://www.dolphindb.cn/cn/help/200/DatabaseandDistributedComputing/DatabaseOperations/AddPartitions.html?highlight=%E5%A2%9E%E5%8A%A0%E5%88%86%E5%8C%BA

对于这种点查比较多的场景,我们建议创建TSDB引擎进行建库建表。

创建TSDB库参考链接 https://www.dolphindb.cn/cn/help/200/FunctionsandCommands/FunctionReferences/d/database.html?highlight=database

TSDB库建表时注意参考链接 https://www.dolphindb.cn/cn/help/200/FunctionsandCommands/FunctionReferences/c/createPartitionedTable.html?highlight=createpartitionedtable

时间类型的列注意compressMethods方式设置为”delta”, sortColumns的最后一列必须为时间类型

请先 登录 后评论