数据预处理
更新时间:2022-01-21
新建预处理规则
当TSDB中存储的数据量较大时,将数据按照用户指定的规则筛选出来需要较长的等待时间,有可能请求导致超时,造成查询失败。
针对这种情况,用户可以配置数据预处理,提前将相关数据过滤、聚合好,实现快速返回查询结果。
注意:
- 免费数据库无法创建预处理规则。
- 每个付费数据库只能创建2个预处理规则。
- 预处理规则标签个数上限5个。
- 预处理规则多选metric上限10个,仅支持单选或全选。
- 预处理规则聚合函数上限3个。
- 预处理规则支持修改重置,重置的间隔时间必须要大于1个小时。
- 选择“产品服务>时序数据库TSDB>数据库名称”,进入数据库详情页面。
- 点击数据库名称,进入数据库详情页。点击“预处理”页签,进入配置页面。
-
点击“新建规则”,在弹出窗口中配置预处理规则。
具体包括以下配置项:
- 规则名称:设置规则名称,用来标识具体规则。
- 度量:从下拉列表中选择当前数据库中已有的Metrics名称,或者选择全部Metrics。
-
开始时间:预处理操作计算原始数据的起始基准时间。在上图配置中,预处理规则原始数据的起始基准时间为 2000-01-01 00:10:00,会以此作为开始时间,先对 2000-01-01 00:10:00 至今的所有数据点进行聚合(对齐到5小时)。如下图所示:
在规则初始化过程中,此时预处理规则尚未生效,查询请求不会命中预处理数据点。规则初始化结束后,预处理规则会进入生效状态,此时匹配的查询请求会命中预处理数据点。规则修改之后,会进入重置状态,重置结束之后,查询请求才会命中。
- 标签索引:指定标签对数据进行过滤,预处理规则标签个数上限5个。
-
聚合函数:通过内置函数对数据进行处理,预处理规则聚合函数上限3个,且必须包含至少一个带采样时间的聚合函数。当前支持的聚合函数包括:
- Avg:以每个采样时间范围内的value的平均值作为结果
- Dev:以每个采样时间范围内的value的标准差作为结果
- Count:以每个采样时间范围内的点的数目作为结果
- First:以每个采样时间范围内的第一个value作为结果
- Last:以每个采样时间范围内的最后一个value作为结果
- LeastSquares:对每个采样时间范围内的value进行最小二乘法的拟合
- Max:以每个采样时间范围内的value的最大值作为结果
- Min:以每个采样时间范围内的value的最小值作为结果
- Percentile:每个采样时间范围内的value的第p百分位数作为结果。
- Sum:以每个采样时间范围内的value的总和作为结果
- Diff:以每两个相邻的value的差值作为结果
- Div:以每个value除以一个除数作为结果
- Scale:以每个value乘以一个倍数作为结果
- Rate:以每两个相邻的value在单位时间的变化率作为结果
- AdjacentUnique:相同的值只保留第一个,非相邻的值不去重
查看预处理详情
新建预处理规则后,可以在规则详情中查看数据预处理情况。
- 选择“产品服务>时序数据库TSDB>数据库名称”,进入数据库详情页面。
- 点击数据库名称,进入数据库详情页。点击“预处理”页签,进入配置页面。
-
找到已经创建的预处理规则,点击“查看详情”,可以获得以下配置信息,如下图所示:
- 累计命中次数:通过查询面板或者API/SDK查看数据点时,命中该规则的次数。
- 累计原始点数:根据预处理规则中的度量值和标签,从数据库中筛选出的原始数据点数。
- 累计规则点数:对“累计原始点数”进行聚合后获得的数据点数。
关于其他信息的解释,请参看新建预处理规则。
查看预处理结果
用户可以通过查询面板、SDK或API查看预处理后的数据。为了确保查询时能够命中预处理后的数据,需要满足以下条件:
- 查询规则的度量值必须是预处理规则的子集(预处理规则中可指定全部度量值或某一个独立的度量值)。
- 查询规则中标签过滤加上分组标签指定的tags必须和预处理规则中的标签索引相等。
- 查询规则中的聚合函数设置必须与预处理规则一致。
通过查询面板生成图表的具体操作请参看生成图表。