跳到主要内容
版本:2.4.x

质量函数

用于评估时间序列数据的质量

示例数据集

点击查看
CREATE TABLE wzz(value double);
INSERT wzz VALUES (1, 12.34), (3, 34.54 ), (4, 1.43), (6, 14.03), (10, 12.30), (13, 11.54), (14, 112.20), (16, 14.44), (18, 134.02), (19, 116.34), (22, 1234.45), (24,10.36), (26, 124.21), (31, 6.34), (33, acos(12345));
SELECT * FROM wzz;
+-------------------------------+---------+
| time | value |
+-------------------------------+---------+
| 1970-01-01T00:00:00.000000001 | 12.34 |
| 1970-01-01T00:00:00.000000003 | 34.54 |
| 1970-01-01T00:00:00.000000004 | 1.43 |
| 1970-01-01T00:00:00.000000006 | 14.03 |
| 1970-01-01T00:00:00.000000010 | 12.3 |
| 1970-01-01T00:00:00.000000013 | 11.54 |
| 1970-01-01T00:00:00.000000014 | 112.2 |
| 1970-01-01T00:00:00.000000016 | 14.44 |
| 1970-01-01T00:00:00.000000018 | 134.02 |
| 1970-01-01T00:00:00.000000019 | 116.34 |
| 1970-01-01T00:00:00.000000022 | 1234.45 |
| 1970-01-01T00:00:00.000000024 | 10.36 |
| 1970-01-01T00:00:00.000000026 | 124.21 |
| 1970-01-01T00:00:00.000000031 | 6.34 |
| 1970-01-01T00:00:00.000000033 | NaN |
+-------------------------------+---------+

completeness

用于计算时间序列的完整性,其衡量的是数据不缺失的比例。

提示

函数 completeness 首先统计数据的行数 cnt 。然后考虑了数据列中可能出现的 NaN 和 Inf 的情况,对其进行线性平滑处理,同时统计上述两种特殊值计数 specialcnt 。再通过扫描数据统计缺失计数 misscnt 。则完整性 completeness 的计算公式

1misscnt+specialcntcnt+misscnt1 - \frac{misscnt + specialcnt} {cnt + misscnt}
completeness(time_expresion, numeric_expression)
选项描述
time_expresion要操作的时间表达式。可以是常量、列或函数,以及算术运算符的任意组合。
numeric_expression要操作的数值表达式。可以是常量、列或函数,以及算术运算符的任意组合。
查看示例

以下示例使用本文开始的 示例数据集

查询时序数据的完整性:

SELECT completeness(time, value) FROM wzz;
+----------------------------------+
| completeness(wzz.time,wzz.value) |
+----------------------------------+
| 0.8235294117647058 |
+----------------------------------+

consistency

计算时间序列的一致性,其衡量的是时序数据均匀分布的不密集冗余的比例。

consistency(time_expresion, numeric_expression)
选项描述
time_expresion要操作的时间表达式。可以是常量、列或函数,以及算术运算符的任意组合。
numeric_expression要操作的数值表达式。可以是常量、列或函数,以及算术运算符的任意组合。
提示

同函数 completeness ,经过缺失值填充后,通过扫描数据统计出冗余计数 redundancy 。则一致性 consistency 的计算公式:

1redundancycntcnt1 - \frac{redundancycnt} {cnt}
查看示例

以下示例使用本文开始的示例数据集

SELECT consistency(time, value) FROM wzz;
+---------------------------------+
| consistency(wzz.time,wzz.value) |
+---------------------------------+
| 0.8666666666666667 |
+---------------------------------+

timeliness

用于计算时间序列的时效性,其衡量的是时序数据按时到达不延迟的比例。

timeliness(time_expresion, numeric_expression)
选项描述
time_expresion要操作的时间表达式。可以是常量、列或函数,以及算术运算符的任意组合。
numeric_expression要操作的数值表达式。可以是常量、列或函数,以及算术运算符的任意组合。
提示

同函数 completeness ,经过缺失值填充后,通过扫描数据统计出延迟计数 latecnt 。则时效性 timeliness 的计算公式:

1latecntcnt1 - \frac{latecnt}{cnt}
查看示例

以下示例使用本文开始的示例数据集

SELECT timeliness(time, value) FROM wzz;
+--------------------------------+
| timeliness(wzz.time,wzz.value) |
+--------------------------------+
| 0.9333333333333333 |
+--------------------------------+

validity

用于计算时间序列的有效性,其衡量的是数据满足约束条件的比例。

validity(time_expresion, numeric_expression)
选项描述
time_expresion要操作的时间表达式。可以是常量、列或函数,以及算术运算符的任意组合。
numeric_expression要操作的数值表达式。可以是常量、列或函数,以及算术运算符的任意组合。
提示

首先统计数据的行数 cnt 。然后进行缺失值填充,去除其中的 NaN 和 Inf 。然后通过自定义计算方法得到计数 valuecnt、variationcnt、speedcnt、speedchangecnt 。则有效性 validity 的计算公式:

10.25(valuecnt+variationcnt+speedcnt+speedchangecnt)cnt1 - \frac{0.25 * (valuecnt + variationcnt + speedcnt + speedchangecnt)}{cnt}
查看示例

以下示例使用本文开始的示例数据集

SELECT validity(time, value) FROM wzz;
+------------------------------+
| validity(wzz.time,wzz.value) |
+------------------------------+
| 0.8 |
+------------------------------+