我正在使用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时,它应该只调用一次该函数。
有什么办法可以解决这个问题吗?
我认为你在寻找的是:
select transpose(compute_avg(window(*))) from AvgWeatherEvent#length_batch(5)