You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Stream Analytics中对10分钟间隔数组Cross Apply生成对应时间戳

Azure Stream Analytics 数组展开与时间戳绑定解决方案

完整查询代码

SELECT
    Input.ID AS DeviceID,
    -- 按数组下标计算对应采样时间:起始时间 + 下标*10分钟
    DATEADD(minute, SamplingValues.ArrayIndex * 10, ThingItem.TMSDUTC) AS SamplingTimeUTC,
    DataItem.TAGID,
    SamplingValues.ArrayValue AS SensorValue
FROM
    Input
-- 展开第一层嵌套数组THING
CROSS APPLY GetArrayElements(Input.THING) AS ThingItem
-- 展开第二层嵌套数组DATA
CROSS APPLY GetArrayElements(ThingItem.DATA) AS DataItem
-- 展开TAGX对应的数值数组
CROSS APPLY GetArrayElements(DataItem.VALUE) AS SamplingValues
WHERE
    DataItem.TAGID = 'TAGX'

实现逻辑说明

  • 第一层CROSS APPLY调用内置函数GetArrayElements展开THING数组,获取每个上报批次的采样基准起始时间TMSDUTC
  • 第二层CROSS APPLY展开DATA数组,通过WHERE条件筛选出TAGID为TAGX的传感器数据行
  • 第三层CROSS APPLY展开TAGX对应的VALUE数值数组,返回的每行自动携带从0开始的ArrayIndex(数组下标)和对应的采样值ArrayValue
  • 时间戳生成直接通过DATEADD函数计算:以TMSDUTC为基准,每一行对应累加ArrayIndex * 10分钟,完美匹配10分钟一次的采样规则,无需硬编码时间序列

输出样例

DeviceIDSamplingTimeUTCTAGIDSensorValue
DEV-001-Test2021-10-14T13:00:00.000TAGX30.34
DEV-001-Test2021-10-14T13:10:00.000TAGX245.65
DEV-001-Test2021-10-14T13:20:00.000TAGX30.34
DEV-001-Test2021-10-14T13:30:00.000TAGX245.65
DEV-001-Test2021-10-14T13:40:00.000TAGX245.65
DEV-001-Test2021-10-14T13:50:00.000TAGX30.34

内容的提问来源于stack exchange,提问作者Ahmed Essam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 11:09:03