【问题标题】:Send json from Stream analytics to Power Bi将 json 从流分析发送到 Power Bi
【发布时间】:2021-11-22 16:03:33
【问题描述】:

我正在尝试将模拟数据从 kepware 发送到 azure Hub,然后再发送到 Stream 分析。下一步将直接发送给 Power Bi,但似乎流分析正在向 Power Bi 发送一个数组。 这是我来自 kepware 的数据:

SELECT 
   event.[values].id as id,
   event.[values].v as Measurements,
   event.[values].t as Time,
   event.[values].q as Quality

   INTO PowerBiVisualizationOutput
   FROM PowerBiVisualizationInput AS event
   CROSS APPLY GetArrayElements(event.[values]) AS sensordata

我尝试了很多不同的方式来编写采石场,但他们都给我的输出是 null。谁能帮帮我

问候

【问题讨论】:

    标签: arrays json powerbi azure-stream-analytics streamanalytix


    【解决方案1】:

    GetArrayElements 的使用语法如 here 所示。

    注意它如何为数组的每个项目/行返回一个记录/对象,在您的情况下,您命名为 sensordata(它不再是 event.)。该记录有 2 个属性:ArrayIndexArrayValue,它们是硬编码的(GetArrayElements 的一部分)。在这里,您想从 ArrayValue 中获取您的属性:

    SELECT 
       sensordata.ArrayValue.id as id,
       sensordata.ArrayValue.v as Measurements,
       sensordata.ArrayValue.t as Time,
       sensordata.ArrayValue.q as Quality
    
       INTO PowerBiVisualizationOutput
       FROM PowerBiVisualizationInput AS event
       CROSS APPLY GetArrayElements(event.[values]) AS sensordata
    

    按照我们在 cmets 中的对话进行编辑: 查看第一个屏幕截图,我们尝试展开的字段名称是 [value] 而不是 value,方括号 [] 在那里。

    要在查询中引用此类字段,我们可以使用双引号:"[value]":

    SELECT 
       sensordata.ArrayValue.id as id,
       sensordata.ArrayValue.v as Measurements,
       sensordata.ArrayValue.t as Time,
       sensordata.ArrayValue.q as Quality
    
       INTO PowerBiVisualizationOutput
       FROM PowerBiVisualizationInput AS event
       CROSS APPLY GetArrayElements("[values]") AS sensordata
    

    【讨论】:

    • 感谢您的回复弗洛里安,但它仍然给我空行:(
    • 这里是测试结果:显示来自 'PowerBiVisualizationOutput' 的 0 行。
    • 能否在您的问题中添加 SELECT * 的结果?您也可以分享一个示例文件,这会有所帮助。
    • 这是 SELECT* 的结果:显示来自“PowerBiVisualizationOutput”的 50 行。时间戳 1633067847169 [值] [{"id":"Channel1.Machine1.Pres","v":777,"q":1,"t":1633067842285},{"id":"Channel1.Machine1.Hum" ,"v":49,"q":1,"t":1633067842285},{"id":"Channel1.Machine1.Temp","v":227,"q":1,"t":1633067842285 }] EventProcessedUtcTime "2021-10-01T06:49:22.7379244Z" PartitionId 1 EventEnqueuedUtcTime "2021-10-01T05:57:27.1860000Z
    • 对不起弗洛里安我不知道如何在这里添加图像。我从 Kepware 获取数据,但没有结果文件
    猜你喜欢
    • 1970-01-01
    • 2019-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多