百度云-数据预处理2018-9-27
帮助文档> 产品文档> 时序数据库 TSDB > 操作指南> 数据预处理
数据预处理
新建预处理规则
当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乘以一个倍数作为结果
查看预处理详情
新建预处理规则后,可以在规则详情中查看数据预处理情况。
选择“产品服务>时序数据库TSDB>数据库名称”,进入数据库详情页面。
点击数据库名称,进入数据库详情页。点击“预处理”页签,进入配置页面。
找到已经创建的预处理规则,点击“查看详情”,可以获得以下配置信息,如下图所示:
累计命中次数:通过查询面板或者API/SDK查看数据点时,命中该规则的次数。
累计原始点数:根据预处理规则中的度量值和标签,从数据库中筛选出的原始数据点数。
累计规则点数:对“累计原始点数”进行聚合后获得的数据点数。
关于其他信息的解释,请参看新建预处理规则。
查看预处理结果
用户可以通过查询面板、SDK或API查看预处理后的数据。为了确保查询时能够命中预处理后的数据,需要满足一下条件:
查询规则的度量值必须是预处理规则的子集(预处理规则中可指定全部度量值或某一个独立的度量值)。
查询规则中标签过滤加上分组标签指定的tags必须和预处理规则中的标签索引相等。
查询规则中的聚合函数设置必须与预处理规则一致。
通过查询面板生成图标的具体操作请参看生成图表。