wso2cep: ERROR - 'distance' не является ни расширением функции, ни расширением агрегированного атрибута в плане выполнения ExecutionPlan

Я использую версию WSO2 CEP 4.2.0, и я пишу план выполнения для проверки, когда координаты от разных датчиков не различаются более чем на 4 метра, с помощью запроса Siddhi. Но появляется ошибка: «расстояние» не является ни расширением функции, ни расширением агрегированного атрибута в плане выполнения «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;

Заранее спасибо!


person fay    schedule 29.03.2017    source источник


Ответы (2)


Проблема заключается в том, что уже скомпилированный p2-repo, предоставленный официальные инструкции по установке не самые свежие и отсутствуют. Функция расстояния ниже представляет собой изображение с соответствующим файлом jar.

geo jar

Чтобы использовать эту функцию, вам необходимо соберите p2-repo и установите, и оно должно работать! После компиляции всех трех проектов вы должны увидеть p2-репо в каталоге wso2-gpl/carbon-event-processing-extensions/repository/target.

Надеюсь, это поможет!

person tbo    schedule 05.04.2017

distance - это расширение Функция ( в отличие от типа расширения Stream Processor). См. Документ Siddhi Extensions, в котором показано использование каждого из этих типов.

Как упоминалось в приведенном выше документе, к оператору select должны применяться расширения функций. Эта ошибка возникает из-за того, что расширение функции применяется в другом месте (в условии join).

person Dilini    schedule 29.03.2017