Cumulocity/Esper:每隔 day/week/month 汇总所有 day/week/month 的测量值
Cumulocity/Esper: Aggregate all day/week/month's measurements every day/week/month
我需要一些帮助来在 Esper 中建模我的问题:
我每天多次创建测量值,在每天结束时,我想汇总所有此类测量值,按当天创建的源分组,然后进行计数和求和,然后重新注入在新的测量中。我会在周末和月底做同样的事情。
问题是我不知道如何组合 cron 表达式(例如说每天午夜)、时间 window(说我想要过去一天的所有事件)和一个事件流(select 测量我想要的类型)。
感谢您的见解。
我认为最好的方法是为持续时间定义上下文:
create context DailyMeasurementAggregation
context DailySourcePartition
partition by measurement.source.value from MeasurementCreated,
context DailyTimerPartition
start (0,0,*,*,*,0)
end (59,23,*,*,*,59);
context DailyMeasurementAggregation
select
count(m) as count,
sum(getNumber(m, "myMeasurement.M.value")) as sum
from MeasurementCreated m
where getObject(m, "myMeasurement.M") is not null
output last when terminated;
其他范围的 cron 语法如下:
每周:开始 (0,0,,,0,0) 结束 (59,23,,,6,59)
每月:开始 (0,0,1,,,0) 结束 (59,23,last,,,59)
每周是周日到周六,所以您可能需要调整数字。这是 esper 文档中关于 cron 语法的部分:http://www.espertech.com/esper/release-5.2.0/esper-reference/html/event_patterns.html#pattern-timer-at
我尝试在 1 天后执行诸如结束之类的操作,但这似乎不起作用,因为这样每隔一天就有一个上下文。这就是我提前 1 秒结束上下文的原因。
我需要一些帮助来在 Esper 中建模我的问题:
我每天多次创建测量值,在每天结束时,我想汇总所有此类测量值,按当天创建的源分组,然后进行计数和求和,然后重新注入在新的测量中。我会在周末和月底做同样的事情。
问题是我不知道如何组合 cron 表达式(例如说每天午夜)、时间 window(说我想要过去一天的所有事件)和一个事件流(select 测量我想要的类型)。
感谢您的见解。
我认为最好的方法是为持续时间定义上下文:
create context DailyMeasurementAggregation
context DailySourcePartition
partition by measurement.source.value from MeasurementCreated,
context DailyTimerPartition
start (0,0,*,*,*,0)
end (59,23,*,*,*,59);
context DailyMeasurementAggregation
select
count(m) as count,
sum(getNumber(m, "myMeasurement.M.value")) as sum
from MeasurementCreated m
where getObject(m, "myMeasurement.M") is not null
output last when terminated;
其他范围的 cron 语法如下: 每周:开始 (0,0,,,0,0) 结束 (59,23,,,6,59) 每月:开始 (0,0,1,,,0) 结束 (59,23,last,,,59)
每周是周日到周六,所以您可能需要调整数字。这是 esper 文档中关于 cron 语法的部分:http://www.espertech.com/esper/release-5.2.0/esper-reference/html/event_patterns.html#pattern-timer-at
我尝试在 1 天后执行诸如结束之类的操作,但这似乎不起作用,因为这样每隔一天就有一个上下文。这就是我提前 1 秒结束上下文的原因。