时间序列消失的替代方法:时间序列数据库建模

时间:2018-11-16 20:18:26

标签: database-design time-series influxdb prometheus

我是时序数据库设计的新手。

我读过的指导原则之一是避免拥有大量的时间序列(例如InfluxDb recommendations)或短暂的/消亡的时间序列。

作为练习,我试图为github存储库的度量建模。我想跟踪各种属性汇总的注释/提交/更改行的总数。我最初的想法是在每个提取请求中推送指标,并通过查询进行所有汇总。

{
   labels: {
      pr: 1234, 
      repo: aRepo, 
      author: personA
   }
   values: {
      commits: 5,
      changed_files: 2,
      comments: 0
      status: Open
   }
}

但是,这似乎与建议背道而驰(拉取请求被关闭并保持不变)。另一种方法是在将聚合推送到数据库之前对其进行预先计算。但是,这将导致粒度较小的数据和数据丢失。

对于短暂的时间序列,这里的最佳策略是什么。

1 个答案:

答案 0 :(得分:1)

弄清楚什么序列和什么度量的经验法则是考虑数据集(序列)的基数:

1)低基数(较少变量)的值用于标签-这就是您的分组/聚集道具

2)高基数(高度可变)本身就是测量值-这就是您要在上述组中进行汇总/计算的内容

通过此规则,DATA(lv_bukrs2) = CONV #( lv_bukrs ). 进入值(每个回购都是唯一的-高基数),而pr id绝对是标签(您将其称为标签)。

执行此操作,时间顺序就可以了。