我是时序数据库设计的新手。
我读过的指导原则之一是避免拥有大量的时间序列(例如InfluxDb recommendations)或短暂的/消亡的时间序列。
作为练习,我试图为github存储库的度量建模。我想跟踪各种属性汇总的注释/提交/更改行的总数。我最初的想法是在每个提取请求中推送指标,并通过查询进行所有汇总。
{
labels: {
pr: 1234,
repo: aRepo,
author: personA
}
values: {
commits: 5,
changed_files: 2,
comments: 0
status: Open
}
}
但是,这似乎与建议背道而驰(拉取请求被关闭并保持不变)。另一种方法是在将聚合推送到数据库之前对其进行预先计算。但是,这将导致粒度较小的数据和数据丢失。
对于短暂的时间序列,这里的最佳策略是什么。
答案 0 :(得分:1)
弄清楚什么序列和什么度量的经验法则是考虑数据集(序列)的基数:
1)低基数(较少变量)的值用于标签-这就是您的分组/聚集道具
2)高基数(高度可变)本身就是测量值-这就是您要在上述组中进行汇总/计算的内容
通过此规则,DATA(lv_bukrs2) = CONV #( lv_bukrs ).
进入值(每个回购都是唯一的-高基数),而pr id
绝对是标签(您将其称为标签)。
执行此操作,时间顺序就可以了。