【发布时间】:2022-07-05 17:45:25
【问题描述】:
给定以下输入:
[
{ "DeviceId" : "AA" : "Date": "2022-04-25 00:00:00", "Event" : 1}
{ "DeviceId" : "AA" : "Date": "2022-04-25 00:01:00", "Event" : 1}
{ "DeviceId" : "AA" : "Date": "2022-04-25 00:05:00", "Event" : 1}
{ "DeviceId" : "AA" : "Date": "2022-04-25 00:10:00", "Event" : 1}
{ "DeviceId" : "AA" : "Date": "2022-04-25 00:15:00", "Event" : 1}
]
我想创建输出:
[
{ "DeviceId" : "AA" : "Date": "2022-04-25 00:00:00", "Event" : 1, "Value": 1}
{ "DeviceId" : "AA" : "Date": "2022-04-25 00:05:00", "Event" : 1, "Value": 0}
{ "DeviceId" : "AA" : "Date": "2022-04-25 00:10:00", "Event" : 1, "Value": 1}
{ "DeviceId" : "AA" : "Date": "2022-04-25 00:11:00", "Event" : 1, "Value": 0}
{ "DeviceId" : "AA" : "Date": "2022-04-25 00:15:00", "Event" : 1, "Value": 1}
{ "DeviceId" : "AA" : "Date": "2022-04-25 00:16:00", "Event" : 1, "Value": 0}
]
当第一次收到事件 1 时,需要开始一个周期(输出事件中的值 = 1)。当在 5 秒内收到下一个事件时,周期会延长,直到 5 秒内没有收到任何事件,然后周期需要停止(输出事件中的值 = 0)。周期不能小于 1 秒。
我怎样才能实现这种行为?我正在考虑在结果上使用HoppingWindow 和Lag,但无法正常工作。你有什么线索吗?
我还想让每个设备的规则“5 秒内的下一个事件”灵活。不确定这是否可能,因为 Window 函数具有编译持续时间。
谢谢你的帮助!
【问题讨论】:
标签: azure azure-stream-analytics stream-analytics