addMetrics
语法
addMetrics(engine/name, newMetrics, newMetricsSchema, [windowSize])
别名:extendMetrics
参数
engine 是流数据引擎,即 createTimeSeriesEngine 等函数返回的抽象表对象。请注意,暂不支持 createAnomalyDetectionEngine 和 createReactiveStateEngine 引擎。
name 是一个字符串,表示流数据引擎的名称。
newMetrics 是元代码,表示流数据引擎增加的计算指标。
newMetricsSchema 是表对象,指定新增的计算指标在输出表中的列名和数据类型。
windowSize 是一个正整数,表示新增指标的计算窗口长度。仅适用于时间序列引擎,且必须为已指定的窗口长度之一。若未指定,默认值为第一个已指定的窗口长度。
详情
动态增加流数据引擎的计算指标。
例子
使用流数据时间序列引擎计算sum(x)指标。
$ share streamTable(10000:0,`time`id`x, [TIMESTAMP,SYMBOL,INT]) as t
$ output1 = table(10000:0, `time`sum_x, [TIMESTAMP,INT])
$ agg1 = createTimeSeriesEngine(name=`agg1, windowSize=100, step=50, metrics=<sum(x)>, dummyTable=t, outputTable=output1, timeColumn=`time)
$ subscribeTable(tableName="t", actionName="agg1", offset=0, handler=append!{agg1}, msgAsTable=true)
$ n=500
$ time=2019.01.01T00:00:00.000+(1..n)
$ id=take(`ABC`DEF, n)
$ x=1..n
$ insert into t values(time, id, x);
$ select * from output1;
time |
sum_x |
---|---|
2019.01.01T00:00:00.050 |
1,225 |
2019.01.01T00:00:00.100 |
4,950 |
2019.01.01T00:00:00.150 |
9,950 |
2019.01.01T00:00:00.200 |
14,950 |
2019.01.01T00:00:00.300 |
24,950 |
2019.01.01T00:00:00.350 |
29,950 |
2019.01.01T00:00:00.400 |
34,950 |
2019.01.01T00:00:00.450 |
39,950 |
2019.01.01T00:00:00.500 |
44,950 |
给时间序列引擎增加avg(x)指标,该指标在输出表中的名称为avg_x,数据类型为DOUBLE。
$ newMetricsSchema= table(1:0, [`avg_x], [DOUBLE])
$ addMetrics(agg1, <avg(x)>, newMetricsSchema);
$ n=300
$ time=2019.01.01T00:00:00.500+(1..n)
$ id=take(`ABC`DEF, n)
$ x=500+1..n
$ insert into t values(time, id, x);
$ select * from output1;
time |
sum_x |
avg_x |
---|---|---|
2019.01.01T00:00:00.050 |
1,225 |
|
2019.01.01T00:00:00.100 |
4,950 |
|
2019.01.01T00:00:00.150 |
9,950 |
|
2019.01.01T00:00:00.200 |
14,950 |
|
2019.01.01T00:00:00.250 |
19,950 |
|
2019.01.01T00:00:00.300 |
24,950 |
|
2019.01.01T00:00:00.350 |
29,950 |
|
2019.01.01T00:00:00.400 |
34,950 |
|
2019.01.01T00:00:00.450 |
39,950 |
|
2019.01.01T00:00:00.500 |
44,950 |
|
2019.01.01T00:00:00.550 |
49,950 |
525 |
2019.01.01T00:00:00.600 |
54,950 |
550 |
2019.01.01T00:00:00.650 |
59,950 |
599.5 |
2019.01.01T00:00:00.700 |
64,950 |
649.5 |
2019.01.01T00:00:00.750 |
69,950 |
699.5 |
2019.01.01T00:00:00.800 |
74,950 |
749.5 |