时序聚类函数

时序聚类函数针对输入的多条时序数据进行聚类,自动聚类出不同的曲线形态,进而快速找到相应的聚类中心和异于聚类中的其它形态曲线。

关于函数的算法及实现原理请参见LOG机器学习介绍(02):时序聚类建模

函数列表

函数

说明

ts_density_cluster

使用密度聚类方法对多条时序数据进行聚类。

ts_hierarchical_cluster

使用层次聚类方法对多条时序数据进行聚类。

ts_similar_instance

查找到指定曲线名称的相似曲线。

ts_density_cluster

函数格式如下所示:

select ts_density_cluster(x, y, z) 

参数说明如下所示:

参数

说明

取值

x

时间列,从小到大排列。

Unixtime时间戳,单位为秒。

y

数值列,对应某时刻的数据。

z

某个时刻数据对应的曲线名称。

字符串类型,例如machine01.cpu_usr。

示例:

  • 查询分析语句如下所示:

    * and (h: "machine_01" OR h: "machine_02" OR h : "machine_03") | select ts_density_cluster(stamp, metric_value,metric_name ) from ( select '("__time__" - ("__time__" % 600))' as stamp, avg(v) as metric_value, h as metric_name from log GROUP BY stamp, metric_name order BY metric_name, stamp ) 
  • 输出结果如下所示:输出结果

显示项如下所示:

显示项

说明

cluster_id

聚类的类别,其中-1表示未能划分到某一聚类中心。

rate

该聚类中的instance占比。

time_series

该聚类中心的时间戳序列。

data_series

该聚类中心的数据序列。

instance_names

该聚类中心包含的instance的集合。

sim_instance

该类中的某一个instance名称。

ts_hierarchical_cluster

函数格式如下所示:

select ts_hierarchical_cluster(x, y, z) 

参数说明如下所示:

参数

说明

取值

x

时间列,从小到大排列。

格式为Unixtime时间戳,单位为秒。

y

数值列,对应某时刻的数据。

z

某个时刻数据对应的曲线名称。

字符串类型,例如machine01.cpu_usr。

示例:

  • 查询分析语句如下所示:

    * and (h: "machine_01" OR h: "machine_02" OR h : "machine_03") | select ts_hierarchical_cluster(stamp, metric_value, metric_name) from ( select '("__time__" - ("__time__" % 600))' as stamp, avg(v) as metric_value, h as metric_name from log GROUP BY stamp, metric_name order BY metric_name, stamp )
  • 输出结果如下所示:输出结果

显示项如下所示:

显示项

说明

cluster_id

聚类的类别,其中-1表示未能划分到某一聚类中心。

rate

该聚类中的instance占比。

time_series

该聚类中心的时间戳序列。

data_series

该聚类中心的数据序列。

instance_names

该聚类中心包含的instance的集合。

sim_instance

该类中的某一个instance名称。

ts_similar_instance

函数格式如下所示:

select ts_similar_instance(x, y, z,instance_name,topK,metricType) 

参数说明如下所示:

参数

说明

取值

x

时间列,从小到大排列。

格式为Unixtime时间戳,单位为秒。

y

数值列,对应某时刻的数据。

z

某个时刻数据对应的曲线名称。

字符串类型,例如machine01.cpu_usr。

instance_name

指定某个待查找的曲线名称。

集合中某个曲线名称,字符串类型,例如machine01.cpu_usr。

说明

必须是已创建的曲线。

topK

最多返回K个与给定曲线相似的曲线。

metricType

{'shape', 'manhattan', 'euclidean'},衡量时序曲线之间的相似性指标。

查询分析语句如下所示:

* and m: NET and m: Tcp and (h: "nu4e01524.nu8" OR  h: "nu2i10267.nu8" OR  h : "nu4q10466.nu8") | select ts_similar_instance(stamp, metric_value, metric_name, 'nu4e01524.nu8' ) from ( select '("__time__" - ("__time__" % 600))' as stamp, sum(v) as metric_value, h as metric_name from log GROUP BY stamp, metric_name order BY  metric_name, stamp )

显示项如下所示:

显示项

说明

instance_name

与指定指标相近的结果列表。

time_series

该曲线的时间戳序列。

data_series

该曲线的数据序列。