# PatternSymmetric

# 函数简介

本函数用于寻找序列中所有对称度小于阈值的对称子序列。对称度通过DTW计算,值越小代表序列对称性越高。

函数名: PATTERNSYMMETRIC

输入序列: 仅支持一个输入序列,类型为 INT32 / INT64 / FLOAT / DOUBLE。

参数:

  • window:对称子序列的长度,是一个正整数,默认值为10。
  • threshold:对称度阈值,是一个非负数,只有对称度小于等于该值的对称子序列才会被输出。在缺省情况下,所有的子序列都会被输出。

输出序列: 输出单个序列,类型为DOUBLE。序列中的每一个数据点对应于一个对称子序列,时间戳为子序列的起始时刻,值为对称度。

# 使用示例

输入序列:

+-----------------------------+---------------+
|                         Time|root.test.d1.s4|
+-----------------------------+---------------+
|2021-01-01T12:00:00.000+08:00|            1.0|
|2021-01-01T12:00:01.000+08:00|            2.0|
|2021-01-01T12:00:02.000+08:00|            3.0|
|2021-01-01T12:00:03.000+08:00|            2.0|
|2021-01-01T12:00:04.000+08:00|            1.0|
|2021-01-01T12:00:05.000+08:00|            1.0|
|2021-01-01T12:00:06.000+08:00|            1.0|
|2021-01-01T12:00:07.000+08:00|            1.0|
|2021-01-01T12:00:08.000+08:00|            2.0|
|2021-01-01T12:00:09.000+08:00|            3.0|
|2021-01-01T12:00:10.000+08:00|            2.0|
|2021-01-01T12:00:11.000+08:00|            1.0|
+-----------------------------+---------------+

用于查询的SQL语句:

select patternsymmetric(s4, 'window'='5', 'threshold'='0') from root.test.d1

输出序列:

+-----------------------------+----------------------------------------------------------------+
|                         Time|patternsymmetric(root.test.d1.s4, "window"="5", "threshold"="0")|
+-----------------------------+----------------------------------------------------------------+
|2021-01-01T12:00:00.000+08:00|                                                             0.0|
|2021-01-01T12:00:07.000+08:00|                                                             0.0|
+-----------------------------+----------------------------------------------------------------+