Сиддхи: инкрементная агрегация - PullRequest
0 голосов
/ 10 сентября 2018

Я хочу сгруппировать данные по времени с Сиддхи. У меня тест на основе https://docs.wso2.com/display/SP400/Incremental+Analysis.

@App:name("DataAggregation")
@App:description("Incremental aggregation")
define stream InputStream (sensorid long, value double, timestamp long);
@store( type="rdbms", jdbc.url="jdbc:mysql://localhost:3306/test", username="root", password="xxx", jdbc.driver.name="com.mysql.jdbc.Driver")
define aggregation DataAggregation from InputStream select sensorid, sum(value) as total group by sensorid aggregate by timestamp every hour ... month;

Я отправляю несколько событий:

sensorid:1, value: 1.0, timestamp:2018-09-10 01:00
sensorid:1, value: 2.0, timestamp:2018-09-10 02:00
...
sensorid:1, value: 23.0, timestamp:2018-09-10 23:00
sensorid:1, value: 24.0, timestamp:2018-09-11 00:00
sensorid:1, value: 25.0, timestamp:2018-09-11 01:00
...

Сиддхи сохраняет почасовые данные и рассчитывает суточные данные. Если тогда я отправлю несколько событий августа месяца:

sensorid:1, value: 10.0, timestamp:2018-08-10 01:00
sensorid:1, value: 20.0, timestamp:2018-08-10 02:00
...
sensorid:1, value: 230.0, timestamp:2018-08-10 23:00
sensorid:1, value: 240.0, timestamp:2018-08-11 00:00
sensorid:1, value: 250.0, timestamp:2018-08-11 01:00

Почему события августа игнорируются, а Сиддхи не хранит их?

Спасибо

1 Ответ

0 голосов
/ 10 сентября 2018

В Siddhi 4.x.x - 4.1.x (используется в Stream Processor 4.0.0 - 4.2.0), инкрементное агрегирование внеочередной обработки событий обрабатывается с использованием буферов для наименьшей гранулярности. В приведенной выше агрегации это за час. Однако в вашем определении аннотации аннотация @BufferSize не определена, поэтому все неупорядоченные события отбрасываются. В вашем случае события, вышедшие из строя, задерживаются на месяц, они не могут быть обработаны с помощью буферов.

Пожалуйста, попробуйте ту же аннотацию в WSO2 SP 4.3.0-rc1 , который использует последнюю версию Siddhi 4.2.x, в которой события вне порядка рассчитываются внутри и без использования буферов. Таким образом, приведенный выше сценарий даст точные агрегации. Обратите внимание, что WSO2 SP 4.3.0 GA будет выпущен только 15 сентября, а вышеприведенный пакет является только кандидатом на выпуск, но может быть использован для ознакомления.

...