版本升级后createAnomalyDetectionEngine报错key column type of outputTable not consistent with dummyTable

我的server版本从2.00.8.6升级到2.00.10.2后,下面代码执行会报错:

share streamTable(1000:0, `Symbol`factor1`T`P`Q`TV`BP`BV`AP`AV`cumB`cumA`minB`minA`attackB`attackA`firBV`firAV`dBV`dAV`dBV2`dAV2, [STRING,INT,NANOTIMESTAMP,DOUBLE,INT,INT,DOUBLE,INT,DOUBLE, INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT]) as result2

share streamTable(1000:0, `T`Symbol`type`metric, [NANOTIMESTAMP, SYMBOL, INT, STRING]) as result3

engine = createAnomalyDetectionEngine(name="anomalyDetection1", metrics=[<[deltas(factor1)>0,deltas(cumB>(minB*0.05))>0,deltas(cumB>(minB*0.1))>0,deltas(cumB>(minB*0.15))>0,deltas(cumB>(minB*0.2))>0,deltas(cumB>(minB*0.25))>0,deltas(cumB>(minB*0.3))>0,deltas(cumB>(minB*0.35))>0,deltas(cumB>(minB*0.4))>0,deltas(cumA>(minA*0.05))>0,deltas(cumA>(minA*0.10))>0,deltas(cumA>(minA*0.15))>0,deltas(cumA>(minA*0.2))>0,deltas(cumA>(minA*0.25))>0,deltas(cumA>(minA*0.3))>0,deltas(cumA>(minA*0.35))>0,deltas(cumA>(minA*0.4))>0,deltas(attackB>(BV*0.5))>0,deltas(attackA>(AV*0.5))>0,deltas(cumB*100/minB)>0 and (cumB*100/minB)<40,deltas(cumA*100/minA)>0 and (cumA*100/minA)<40]>], 
dummyTable=result2,
outputTable=result3, 
timeColumn=`T, keyColumn=`Symbol)
subscribeTable(tableName="result2", actionName="anomalyDetectionSub1", offset=0, handler=append!{engine}, msgAsTable=true)

报错信息如下:

localhost:8848 Server response: 'engine = createAnomalyDetectionEngine("anomalyDetection1", [< [deltas(factor1) > 0, deltas(cumB > (minB * 0.05)) > 0, deltas(cumB > (minB * 0.1)) > 0, deltas(cumB > (minB * 0.15)) > 0, deltas(cumB > (minB * 0.2)) > 0, deltas(cumB > (minB * 0.25)) > 0, deltas(cumB > (minB * 0.3)) > 0, deltas(cumB > (
minB * 0.35)) > 0, deltas(cumB > (minB * 0.4)) > 0, deltas(cumA > (minA * 0.05)) > 0, deltas(cumA > (minA * 0.1)) > 0, deltas(cumA > (minA * 0.15)) > 0, deltas(cumA > (minA * 0.2)) > 0, deltas(cumA > (minA * 0.25)) > 0, deltas(cumA > (minA * 0.3)) > 0, deltas(cumA > (minA * 0.35)) > 0, deltas(cumA > (minA * 0.4)) > 0, deltas(attackB > (BV 
* 0.5)) > 0, deltas(attackA > (AV * 0.5)) > 0, deltas(cumB * 100 / minB) > 0 and (cumB * 100 / minB) < 40, deltas(cumA * 100 / minA) > 0 and (cumA * 100 / minA) < 40] >], result2, result3, "T", "Symbol") => Usage: createAnomalyDetectionEngine(name, metrics, dummyTable, outputTable, timeColumn, [keyColumn], [windowSize], [step],
 [garbageSize], [roundTime=true], [snapshotDir], [snapshotIntervalInMsgCount], [raftGroup]). key column type of outputTable not consistent with dummyTable'
在原来版本是正常的,升级后是哪里不兼容了吗?
请先 登录 后评论

1 个回答

wale

result2的Symbol字段的类型要从STRING改成SYMBOL:

share streamTable(1000:0, `Symbol`factor1`T`P`Q`TV`BP`BV`AP`AV`cumB`cumA`minB`minA`attackB`attackA`firBV`firAV`dBV`dAV`dBV2`dAV2, [SYMBOL,INT,NANOTIMESTAMP,DOUBLE,INT,INT,DOUBLE,INT,DOUBLE, INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT,INT]) as result2
请先 登录 后评论