Я пытаюсь воспроизвести учебник «Обнаружение аномалий», приведенный в документации потокового процессора WSO2.
@App:name('SugarSyrupOutlierPredictionApp')
@source(type='http', receiver.url='http://localhost:5007/SugarSyrupEP', @map(type = 'json'))
define stream SugarSyrupDataStream (viscosity double, temperature double, density double);
@sink(type='log', prefix='Outlier detected in sugar syrup supply:')
define stream OutlierStream (viscosity double, temperature double, density double, outlier bool);
from SugarSyrupDataStream#timeseries:outlier(5, viscosity, temperature, density)
select *
insert into OutlierStream;
Ошибка, которую я получаю в строке, в которой я вызываю свою функцию выброса, такова.
Caused by: org.wso2.siddhi.core.exception.SiddhiAppCreationException: Outlier Function is available only for simple linear regression at org.wso2.extension.siddhi.execution.timeseries.LinearRegressionOutlierStreamProcessor.init(LinearRegressionOutlierStreamProcessor.java:221)
Я что-то упустил или я должен использовать какую-то другую функцию?
Кажется, расширение принимает только 3 параметра. См. документация по siddhi-execution-timeseries # выброс.
Вам необходимо обновить пример учебного пособия, чтобы диапазон, Y и X были параметрами для расширения выброса. Это связано с тем, что расширение поддерживает только простые линейные регрессии.
@App:name('SugarSyrupOutlierPredictionApp')
@source(type='http', receiver.url='http://localhost:5007/SugarSyrupEP', @map(type = 'json'))
define stream SugarSyrupDataStream (viscosity double, temperature double, density double);
@sink(type='log', prefix='Outlier detected in sugar syrup supply:')
define stream OutlierStream (viscosity double, temperature double, outlier bool);
from SugarSyrupDataStream#timeseries:outlier(5, viscosity, temperature)
select viscosity, temperature, outlier
insert into OutlierStream;
@Dilip Sundar, прежде чем редактировать чей-то ответ, сообщите им в комментарии, что есть какая-то проблема, но вы исправили ее, используя {ваши изменения}