我是时序数据库设计的新手。
我读过的指导原则之一是避免有大量的时间序列(例如。InfluxDb recommendations)或短命/消亡的时间序列。
作为练习,我尝试对github存储库的指标进行建模。我想要跟踪按各种属性聚合的注释/提交/更改行的总数。我最初的想法是在每次拉取请求时推送指标,并通过查询进行所有聚合。
{
labels: {
pr: 1234,
repo: aRepo,
author: personA
}
values: {
commits: 5,
changed_files: 2,
comments: 0
status: Open
}
}然而,这似乎与建议背道而驰(拉取请求被关闭并变得恒定)。另一种方法是在将聚合推送到数据库之前预先计算聚合。然而,这会导致较少的数据粒度和数据丢失。
对于短暂时间序列的情况,这里的最佳策略是什么?
发布于 2018-12-01 07:54:36
找出什么是make系列和什么是度量的经验法则是考虑数据集(系列)的基数:
1)低基数(较少变量)值转到标签-这是您的分组/聚合道具
2)高基数(高度可变)值本身就是测量值--这就是您在前面提到的组中聚合/计算的值
根据这条规则,pr id进入值(每个存储库的高基数都是唯一的),而status绝对是一个标签(您将其称为label)。
这样做,你就可以很好地处理你的时间序列。
https://stackoverflow.com/questions/53344811
复制相似问题