【问题标题】:Azure Streaming Analytics, constant flow of output eventsAzure Streaming Analytics,输​​出事件源源不断
【发布时间】:2017-10-26 13:37:33
【问题描述】:

我有一个传感器,它仅按脉冲而不是定期将数据从 IOT Hub 发送到 Streaming Analytics。

我想计算脉冲在特定时间范围内发送的时间,即过去 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 报告上显示“最后一个值”,其中显示:过去 10 分钟内有 X 个脉冲。但是,当没有脉冲时,该值停留在最后一个结果,这是不正确的。

是否可以每分钟从流分析发送常规数据流,即使没有传入消息?

【问题讨论】:

    标签: azure-stream-analytics


    【解决方案1】:

    目前无法在没有输入事件的情况下生成输出。为了实现上述场景,您可以发出“心跳”事件,这些事件保证在同一流中每分钟都存在 [或者] 具有不同的心跳流并与该流左连接。在这两种情况下,我们都强制每分钟都有一个输入事件。

    如果支持,另一个选项是在输出数据源中处理它。例如,如果您知道到达率,您可以编写一个查询,在一定时间后将缺少行视为“零”。

    【讨论】:

      猜你喜欢
      • 2012-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-04
      • 2019-08-09
      • 2021-11-18
      • 1970-01-01
      相关资源
      最近更新 更多