【问题标题】:Create database partitioning for analyzing time-series创建用于分析时间序列的数据库分区
【发布时间】:2016-08-06 15:32:02
【问题描述】:

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

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

查询1:

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

查询2:

但我还想通过读取每个符号最多 24 个月前的数据来分析每个符号随时间推移的趋势/统计数据。

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

你建议什么样的设计?

【问题讨论】:

    标签: database partition crate


    【解决方案1】:

    每天 10 万行并不算多。您一年只创建一个分区。 但如果您还想通过仅处理单个分区来优化查询性能 - 假设您按月分区。

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

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

    顺便说一句:这里有一个按时间分区的便捷链接:https://crate.io/a/generated-columns-in-crate/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-15
      • 2016-11-13
      • 1970-01-01
      • 2018-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多