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

Azure Percept接入Stream Analytics到PowerBI DirectQuery表关系失效问题

疑问1解答:DirectQuery模式下字段类型修改限制

DirectQuery模式不支持修改源字段的存储数据类型,你此前修改的「仅日期」属性仅为前端展示格式,不会改变底层带时分秒的datetime存储值,而自定义日历表的日期字段底层是对应日期00:00:00的datetime值,二者值不匹配因此关联关系无法生效。

疑问2解答:Stream Analytics端生成日期匹配字段方案

虽然Stream Analytics不支持原生date类型,但可以通过日期函数将时间戳的时分秒清零,输出仅保留日期的datetime类型字段,值为对应日期的00:00:00,可直接和日历表字段匹配。
你可以修改现有Stream Analytics查询,新增DETECTION_DATE字段:

SELECT
    Percept.ArrayValue.label,
    Percept.ArrayValue.confidence,
    GetArrayElement(Percept.ArrayValue.bbox, 0) AS bbox0,
    GetArrayElement(Percept.ArrayValue.bbox, 1) AS bbox1,
    GetArrayElement(Percept.ArrayValue.bbox, 2) AS bbox2,
    GetArrayElement(Percept.ArrayValue.bbox, 3) AS bbox3,
    Percept.ArrayValue.bbox,
    CAST (udf.main(Percept.ArrayValue.timestamp) as Datetime) as DETECTION_TIMESTAMP,
    -- 新增仅保留日期的datetime字段
    CAST(DATEADD(day, DATEDIFF(day, 0, CAST(udf.main(Percept.ArrayValue.timestamp) as Datetime)), 0) AS Datetime) AS DETECTION_DATE,
    Percept.ArrayValue.timestamp
INTO
    "PowerBI Output"
FROM
    "IoT HUB Input" as event
    CROSS APPLY GetArrayElements(event.Neural_Network) AS Percept
WHERE
    CAST(Percept.ArrayValue.confidence as Float) > 0.6

修改后重启Stream Analytics作业,新推送的数据会携带该字段。在PowerBI中重新同步数据集结构后,使用DETECTION_DATE字段和自定义日历表的日期字段建立一对多关联,设置日历表为一端、可筛选检测数据表即可生效。

可选免改Stream Analytics的PowerBI端方案

如果不想修改上游作业,可以在DirectQuery模式下给检测数据表新增计算列,公式如下:

DETECTION_DATE = DATEVALUE('你的检测数据表名'[DETECTION_TIMESTAMP])

该计算列的转换逻辑会自动下推到数据源执行,返回值为对应日期零点的datetime值,用该列和日历表关联即可。注意该方案性能弱于上游预处理,适合数据量较小的场景。


内容的提问来源于stack exchange,提问作者Charles Elwood

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 12:36:01