创建数据库分区以分析时间序列

时间:2016-04-14 21:02:36

标签: database partition crate

我有100 000个源/传感器/符号。从每一个我每天读取一个值。

我使用这些每日数据/值加载数据库表。每个值AND符号占一行,即每天100 000行。

查询1:

由于我想分析所有符号的每日数据,因此我按年,月,周,日对数据库进行分区。

QUERY2:

但我还希望通过每个符号最多24个月的时间读取数据来分析每个符号随时间变化的趋势/统计数据。

Query2沿着另一个维度(时间轴),我不想查询针对query1优化的几个分区(y,m,w,d)。

你提出什么样的设计?

1 个答案:

答案 0 :(得分:0)

每天100k行不是太多。您只创建一年的一个分区。 但是如果你还想通过仅处理单个分区来优化查询性能 - 让我们假设你按月分区。

此外,我们假设一个三节点集群。所以你可能想要创建包含6个分片的表,每年总共产生6 * 12个分片。如果您配置了一个副本 - 6 * 12 * 2分片 - 看起来不错。

如果在where子句中指定分区 - crate将自动仅唤醒这些分片。但你仍然可以看到整个数据。

BTW:这是一个方便的时间分区链接:https://crate.io/a/generated-columns-in-crate/