Почему length_batch вызывает мою однорядную функцию в запросе ESPER CEP несколько раз? - PullRequest
0 голосов
/ 11 апреля 2019

Я использую ESPER CEP для обработки потоков данных о погоде в реальном времени.У меня есть сценарий использования, когда я делаю пакет из потоков, используя length_batch, т.е. AvgWeatherEvent.win:length_batch(5), и вызываю мою однорядную функцию для получения среднего.

Мои запросы ESPER:

// Create my Event
String createEventExpAvg = "@EventRepresentation(objectarray) create schema AvgWeatherEvent as (prop1 Map)";

// My Select query with single row function
String expr = "select transpose(compute_avg(f)) from AvgWeatherEvent.win:length_batch(5) as f"

Где compute_avg - моя однорядная функция, вычисляющая среднее значение.

Проблема в том, что запрос вызывает мою однорядную функцию 5 раз (это размер пакета, который я упоминал в length_batch).Это ожидаемое поведение?Из-за этого я получаю несколько дублированных строк в моем выводе.Насколько я понимаю, она должна вызывать функцию только один раз, когда batch_size становится равным 5.

Есть ли способ решить эту проблему?

1 Ответ

0 голосов
/ 11 апреля 2019

Я думаю, что вы ищете это:

select transpose(compute_avg(window(*))) from AvgWeatherEvent#length_batch(5)
...