Azure Streaming Analytics,输出事件的持续流
Azure Streaming Analytics, constant flow of output events
我有一个传感器,它仅按脉冲而不是定期将数据从物联网集线器发送到流式分析。
我想计算脉冲在特定时间范围内发送的次数,即最后 10 分钟。
我有这样非常简单的数据包:
{
"Timestamp": "2017-10-26T13:27:11.1103973",
"Pulses": 1
}
那些是发送,假设在 10 分钟的时间范围内发送 3 次。我使用以下流分析查询:
SELECT
SUM(Pulses) as Pulses,
System.Timestamp AS WindowEnd
INTO
[RawData-10-Minutes]
FROM
[Input]
GROUP BY
HoppingWindow(Duration(minute, 10), Hop(minute, 1))
这个效果很好。我每 1 分钟得到一个很好的数据流,最近 10 分钟的脉冲总数:
[
{
"pulses": 2.0,
"windowend": "1970-01-01T12:02:00.0000000Z"
},
{
"pulses": 2.0,
"windowend": "1970-01-01T12:03:00.0000000Z"
},
{
"pulses": 3.0,
"windowend": "1970-01-01T12:04:00.0000000Z"
}
]
然而,当 10 分钟没有脉冲时,我希望我仍然每分钟收到 0 个脉冲的总和值。然而事实并非如此。
问题在于,我在 Power BI 报告中显示 "Last Value",其中显示:过去 10 分钟内有 X 个脉冲。然而,当没有脉冲时,该值停留在最后一个结果,这是不正确的。
是否可以每分钟从流分析发送常规数据流,即使没有传入消息?
目前无法在没有输入事件的情况下生成输出。要实现上述场景,您可以发出 "heartbeat" 保证在同一流中每分钟都存在的事件 [或者] 使用不同的心跳流并与该流进行左连接。在这两种情况下,我们都强制每分钟出现一个输入事件。
另一个选项是在输出数据源中处理它(如果它支持的话)。例如,如果您知道到达率,您可以编写一个查询,将在一定时间后缺少行视为 "zero".
我有一个传感器,它仅按脉冲而不是定期将数据从物联网集线器发送到流式分析。
我想计算脉冲在特定时间范围内发送的次数,即最后 10 分钟。
我有这样非常简单的数据包:
{
"Timestamp": "2017-10-26T13:27:11.1103973",
"Pulses": 1
}
那些是发送,假设在 10 分钟的时间范围内发送 3 次。我使用以下流分析查询:
SELECT
SUM(Pulses) as Pulses,
System.Timestamp AS WindowEnd
INTO
[RawData-10-Minutes]
FROM
[Input]
GROUP BY
HoppingWindow(Duration(minute, 10), Hop(minute, 1))
这个效果很好。我每 1 分钟得到一个很好的数据流,最近 10 分钟的脉冲总数:
[
{
"pulses": 2.0,
"windowend": "1970-01-01T12:02:00.0000000Z"
},
{
"pulses": 2.0,
"windowend": "1970-01-01T12:03:00.0000000Z"
},
{
"pulses": 3.0,
"windowend": "1970-01-01T12:04:00.0000000Z"
}
]
然而,当 10 分钟没有脉冲时,我希望我仍然每分钟收到 0 个脉冲的总和值。然而事实并非如此。
问题在于,我在 Power BI 报告中显示 "Last Value",其中显示:过去 10 分钟内有 X 个脉冲。然而,当没有脉冲时,该值停留在最后一个结果,这是不正确的。
是否可以每分钟从流分析发送常规数据流,即使没有传入消息?
目前无法在没有输入事件的情况下生成输出。要实现上述场景,您可以发出 "heartbeat" 保证在同一流中每分钟都存在的事件 [或者] 使用不同的心跳流并与该流进行左连接。在这两种情况下,我们都强制每分钟出现一个输入事件。
另一个选项是在输出数据源中处理它(如果它支持的话)。例如,如果您知道到达率,您可以编写一个查询,将在一定时间后缺少行视为 "zero".