我有100 000个源/传感器/符号。从每一个我每天读取一个值。
我使用这些每日数据/值加载数据库表。每个值AND符号占一行,即每天100 000行。
查询1:
由于我想分析所有符号的每日数据,因此我按年,月,周,日对数据库进行分区。
QUERY2:
但我还希望通过每个符号最多24个月的时间读取数据来分析每个符号随时间变化的趋势/统计数据。
Query2沿着另一个维度(时间轴),我不想查询针对query1优化的几个分区(y,m,w,d)。
你提出什么样的设计?
答案 0 :(得分:0)
每天100k行不是太多。您只创建一年的一个分区。 但是如果你还想通过仅处理单个分区来优化查询性能 - 让我们假设你按月分区。
此外,我们假设一个三节点集群。所以你可能想要创建包含6个分片的表,每年总共产生6 * 12个分片。如果您配置了一个副本 - 6 * 12 * 2分片 - 看起来不错。
如果在where子句中指定分区 - crate将自动仅唤醒这些分片。但你仍然可以看到整个数据。
BTW:这是一个方便的时间分区链接:https://crate.io/a/generated-columns-in-crate/