【问题标题】:Azure Stream Analytics - JSON Array, windowing and previous valueAzure 流分析 - JSON 数组、窗口和先前值
【发布时间】:2023-01-30 06:38:07
【问题描述】:

我收到传感器数据容器作为 ASA 的输入。容器看起来像这样。

{
"data": [
  {
    "sensor_id": 55,
    "timestamp": 1663075725000,
    "value" : 32.12
  },
  {
    "sensor_id": 55,
    "timestamp": 1663075725025,
    "value" : 33.23
  },
  {
    "sensor_id": 12,
    "timestamp": 16630757255543,
    "value" : "on"
  },
  {
    "sensor_id": 458,
    "timestamp": 1663075725993,
    "value" : 102
  },...
}]

数据是从不同的车辆发送的。车辆标识符作为自定义属性发送。

我的目标是检测诸如“超速”(速度 > x km/h 至少 5 秒)或“驾驶时手刹”(速度 > x km/h 且手刹 =“开”至少 2 秒)之类的事情)

我不知道如何实现这一目标。

我的第一个想法是,将容器拆分为单个“行”并添加车辆标识符。我通过以下查询实现了这一点:

WITH Signals AS
(
   SELECT   
   arrayElement.ArrayValue as sig,
   GetMetadataPropertyValue(msg, '[User].[Vehicle]') as vehicle,
   FROM input as msg  
   CROSS APPLY GetArrayElements(msg.data) AS arrayElement
)
SELECT
    sig.sensor_id, sig."timestamp", sig.value, vehicle
INTO
    output
FROM
    Signals

这行得通,但不幸的是我在 Azure 门户的预览窗口中看不到车辆价值(但文档中提到了这一点)

但现在我不知道如何走得更远......

我应该将输出发送到新的事件中心并创建一个单独的 ASA 作业并进行其他计算,还是可以在此查询中执行此操作? 查询如何获得诸如“超速”(一辆车的传感器 x > x 持续 y 秒)或“手刹驾驶”(传感器 y =“开”并且一辆车的传感器 x > x 持续 y 秒)之类的查询)?

任何帮助表示赞赏!

更新正如这里提到的 (In Azure Stream Analytics Query I am getting an error when using Timestamp by) 我想,我需要将我的工作分成多个 ASA 工作。第一个执行交叉应用并推送到单独的事件中心,第二个工作可以进行计算。
所以,请帮我查询“手刹驾驶”(sensor_id 12 =“on”和 sensor 55 > 10 持续 3 秒)。
非常感谢!

【问题讨论】:

    标签: azure-stream-analytics stream-processing


    【解决方案1】:

    您可以在单个流分析作业中执行此操作。步骤是

    1. 使用cross apply、项目车辆 ID 以及输入属性扩展数组。您的查询涵盖了这一点。这是with步骤
    2. 超速:速度 > x km/h 至少 5 秒.按车辆分组,执行 1 秒的 hopping window,窗口大小为 5 秒,并过滤 min(speed) > x km/h 的行。
    3. 驾驶时手刹:传感器 y = "on" 并且一辆车的传感器 x > x 持续 y 秒.相近2个, 计算两个聚合。一个用于最小速度,另一个用于 number of distinct 使用count(distinct) when (sensor name = y) 的手刹传感器值。
    4. 使用此 query pattern 将这些每个输出发送到不同的目的地。
    5. 如果您想将单个车辆的输出合并到单个对象中,您还可以使用 union + group by + collect。

    【讨论】:

      猜你喜欢
      • 2017-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多