2017-02-09 9 views
0

я одну таблицы событий под названием eventCount и имеет следующие значения:WSO2 СЕР - SiddhiQL - сумма разные строки из одной и тех же таблиц событий

ID | eventCount 
1   3 
2   1 
3   5 
4   1 

У меня есть поток данных, поступающих в котором я рассчитывать значение определенный тип для периода времени (1 секунда) и в зависимости от типа и периода времени я буду считать() и записать значение count() в соответствующей строке.

Мне нужно сделать сумму значений в таблице событий.

Я попытался создать другую таблицу событий и присоединиться к обоим. Хотя я получаю ошибку, вы не можете присоединиться к 2 статическим источникам.

Что такое правильный способ сделать это из SIddiQL в WSO2 СЕРАХ

ответ

0

В вашем случае сумма значений в таблице событий эквивалентна общее число событий, не так ли? Итак, почему вам нужно держать таблицу событий, разве вы не можете это сделать тогда и там (например, ниже)?

@Import('dataIn:1.0.0') 
define stream dataIn (id int); 

@Export('totalCountStream:1.0.0') 
define stream totalCountStream (eventCount long); 

@Export('perIdCountStream:1.0.0') 
define stream perIdCountStream (id int, eventCount long); 

partition with (id of dataIn) 
begin 
    from dataIn#window.time(5 sec) 
    select id, count() as eventCount 
    insert into perIdCountStream; 
end; 

from dataIn#window.time(5 sec) 
select count() as eventCount 
insert into totalCountStream; 

пс: если вы действительно нужны таблицы событий, вы всегда можете оставаться totalCountStream и perIdCountStream в двух отдельных таблицах.

+0

проблема заключается в том, что у меня есть не только сумма событий, но и проценты. и мне действительно нужна таблица. – JoaoFilipeClementeMartins

+0

Если вам нужен процент, вы можете присоединиться к perIdCountStream с помощью totalCountStream и вычислить. В противном случае вам может потребоваться написать собственное расширение потокового процессора для вычисления и испускания всех агрегированных значений. Поскольку вы агрегируете и сохраняете значения в течение определенного периода времени (1 с), я не думаю, что вам понадобятся таблицы событий. – Grainier

 Смежные вопросы

  • Нет связанных вопросов^_^