如何在InfluxDB测量中存储版本化数据?

时间:2018-12-28 19:32:56

标签: influxdb

我想使用InfluxDB存储预测数据。每个预测都有一个排放日期,一个目标日期和一个值。我收到了几个针对同一目标日期的不同排放日期的预测。

我希望能够检索

  1. 每个目标日期的最新预测(具有最新排放日期的预测)
  2. 所有具有确定排放日期的预测。

1 个答案:

答案 0 :(得分:1)

基本上,您会希望将预测的emission_dates存储为time字段的一部分,然后将target_dates作为标记并最后存储value在值字段中。

示例:

name: forecast
time                target_dates        value
----                ------------        -----
1546516616386036270 1546000000000000000 500
1546516616390715128 1547000000000000000 600
1546516616734277026 1548000000000000000 700

我之所以选择target_dates作为标记是因为标记了索引。如果您不知道编制索引,则可以找到更多的here

请参阅“为什么索引很重要:模式案例研究”

此方案设计符合您的要求,因为;

  1. 要获取基于排放日期的最新预测,您可以执行SELECT * from forecast order by DESC limit 1

  2. 获取某个排放日期的所有预测。只需SELECT * FROM "forecast" WHERE "target_dates" = '1547000000000000000'

这里需要注意的一点是,上面的target_datesepoch时间格式,您应该可以存储所需的任何字符串日期时间格式。