wso2cep:错误 - 'distance'既不是函数扩展也不是执行计划“ExecutionPlan”中的聚合属性扩展

时间:2017-03-29 07:45:24

标签: wso2 wso2cep siddhi

我正在使用WSO2 CEP 4.2.0版本,我正在编写一个执行计划,用于通过Siddhi查询检查来自不同传感器的坐标何时变化不超过4米。但是得到一个错误:'distance'既不是函数扩展,也不是执行计划“ExecutionPlan”中的聚合属性扩展。

我已经安装了GPL - Siddhi Geo Extension,但我不知道为什么会出现这个错误。请帮我解决这个错误。

我的执行计划如下:

/* Enter a unique ExecutionPlan */
@Plan:name('ExecutionPlan')

/* Enter a unique description for ExecutionPlan */
-- @Plan:description('ExecutionPlan')

/* define streams/tables and write queries here ... */

@Import('SR_ProcessedStream:1.0.0')
define stream srprocessedstream (meta_resultTime long, meta_procedure string, correlation_latitude double, correlation_longitude double);

@Import('MPD_ProcessedStream:1.0.0')
define stream mpdprocessedstream (meta_resultTime long, meta_procedure string, correlation_latitude double, correlation_longitude double);

@Import('GBSS_ProcessedStream:1.0.0')
define stream gbssprocessedstream (meta_resultTime long, meta_procedure string, correlation_latitude double, correlation_longitude double);

@Export('measuredStream:1.0.0')
define stream measuredStream (meta_procedure1 string, meta_procedure2 string);

define table sensorTable(meta_procedure string, correlation_latitude double, correlation_longitude double);

from gbssprocessedstream
select meta_procedure, correlation_latitude, correlation_longitude
insert into sensorTable;

from mpdprocessedstream
select meta_procedure, correlation_latitude, correlation_longitude
insert into sensorTable;

from srprocessedstream
select meta_procedure, correlation_latitude, correlation_longitude
insert into sensorTable;

from gbssprocessedstream join sensorTable
 on sensorTable.meta_procedure != gbssprocessedstream.meta_procedure and 4 > geo : distance (sensorTable.correlation_latitude, sensorTable.correlation_longitude, meta_procedure1.correlation_latitude, meta_procedure1.correlation_longitude)
 select sensorTable.meta_procedure as meta_procedure1, gbssprocessedstream.meta_procedure as meta_procedure2
 insert into measuredStream;

提前致谢!

2 个答案:

答案 0 :(得分:2)

问题在于official installation instructions提供的已编译的 p2-repo 不是最新的,并且缺少距离函数下面是带有相关jar文件的图像

geo jar

要使用此功能,您需要build the p2-repo并安装它,它应该工作!编译完所有三个项目后,您应该在目录wso2-gpl/carbon-event-processing-extensions/repository/target

中看到p2-repo

希望它有所帮助!

答案 1 :(得分:0)

distance功能扩展名(与流处理器扩展名类型相比)。请参阅Siddhi Extensions doc,其中显示了每种类型的用法。

如上文所述,必须在select语句中应用函数扩展。观察到此错误是因为函数扩展应用于其他位置(在join条件下)。