gpt4 book ai didi

azure-iot-hub - 如何使用流分析检测任何 IoTHub 设备中是否没有摄取数据?

转载 作者:行者123 更新时间:2023-12-04 07:31:14 25 4
gpt4 key购买 nike

基本上我在 IoTHub 中有多个设备,有 30 个分区。现在,我想使用 Stream Analytics 检测 10 分钟后是否没有数据被摄取到任何设备。一旦检测到,我想选择它是什么设备并将该信息发送到 Azure 功能以进行警报。
鉴于我是流分析的新手,该查询有点棘手。这是我到目前为止的想法,但似乎结果不是我所期望的。

SELECT 
t1.[IoTHub].[ConnectionDeviceId] as DeviceId
INTO
[NoDataAlertFunctionOutput]
FROM
[iot-hub-data-flow] t1 TIMESTAMP BY Timestamp
LEFT OUTER JOIN [iot-hub-data-flow] t2 TIMESTAMP BY Timestamp
ON
t1.[IoTHub].[ConnectionDeviceId]=t2.[IoTHub].[ConnectionDeviceId]
AND
DATEDIFF(minute,t1,t2) BETWEEN 1 and 10
WHERE t2.[IoTHub].[ConnectionDeviceId] IS NULL
我将不胜感激任何建议或评论。
以下是我试图遵循的引用:
  • Stream Analytics Common Query
  • Process real-time IoT Data

  • 另一方面,IoTHub 中是否有内置功能来检测在特定时间段内是否没有摄取数据?

    最佳答案

    从 ASA 的角度来看,我会尝试 this pattern反而。我不是 100% 确定它会检查您的所有要求,但我认为这是一个有趣的探索方向。

  • 使用 hopping window , 每分钟我们扫描最后 20
  • 首先我们去寻找那个窗口中的最后一个事件
  • 然后我们检查是否已经发送了 10 分钟以上
  • WITH CTE AS (
    SELECT
    System.Timestamp() AS Window_end,
    DATEADD(minute,-10,System.Timestamp()) AS Window_10,
    TopOne() OVER (ORDER BY Timestamp DESC) AS Last_event
    FROM
    [iot-hub-data-flow] t TIMESTAMP BY Timestamp
    GROUP BY
    HOPPINGWINDOW(minute, 20, 1)
    -- Every 1 minute, check the last 20 minutes
    )
    SELECT
    Last_event.DevideId
    FROM CTE
    WHERE Last_event.Timestamp < Window_10
    请注意,20 分钟后,警报停止发出。

    关于azure-iot-hub - 如何使用流分析检测任何 IoTHub 设备中是否没有摄取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67920749/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com