Как мне поддерживать Набор свойств событий в окне?
Можно ли создать таблицу с первичным ключом и установить в качестве вторичного столбца, который будет похож на список в значении хеш-таблицы?
что-то вроде этого:
create table T (id int primary key, list HashSet )
где список будет содержать все свойства, связанные с первичным ключом, который произошел по размеру окна.
РЕДАКТИРОВАТЬ:
Это вывод, который я получаю. Я хочу, чтобы количество уникальных вхождений достигало идентификаторов 1,2 и 3. Если событие 2 достигло 3 раз при идентификаторе 1, я все еще хочу только 1 как уникальный, а не 3
{unique=3, id=1}
{unique=3, id=2}
{unique=4, id=3}
****************
В Java это не проблема, но я не понимаю, как реализовать это в Esper. Я даже не уверен, что использование таблиц является правильным подходом.
1 ответ
Таблицы могут иметь столбцы типа агрегатного состояния. Так что "оконная" агрегация доступна. Например, вот так:
create table MyTable (id int primary key, theWindow window(*) @type(MyEvent))
into table MyTable select window(*) as theWindow from MyEvent group by id
Либо таблица может объявить столбец типа списка "создать таблицу MyTable (id int первичный ключ, somelist java.util.List)", и вы можете поддерживать список с помощью вызовов функций в EPL.