arrays - 将 json 从流分析发送到 Power Bi
问题描述
我正在尝试将模拟数据从 kepware 发送到 azure Hub,然后再发送到 Stream analytic。下一步将直接发送给 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
我尝试了很多不同的方式来编写采石场,但它们都给我的输出是空的。有人可以帮帮我吗
问候
解决方案
此处说明了使用GetArrayElements的语法。
请注意它如何为数组的每个项目/行返回一个记录/对象,在您的情况下,您命名sensordata
(event.
不再是)。该记录有 2 个属性:ArrayIndex和ArrayValue,它们是硬编码的(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
按照我们在评论中的对话进行编辑:
查看第一个屏幕截图,我们尝试展开的字段名称是[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
推荐阅读
- flutter - 以编程方式构建技术图纸
- java - 如何将随机数转换为字符
- css - SCSS Webfont (Font Awesome) 使用 Webpack 编译损坏
- python - 我无法理解以下代码中发生了什么...#Method Overloading
- python - 在 python 解释器中执行编码指令
- laravel - 在laravel中检索外键第一个值
- c# - 如何停止需要麦克风权限的 UWP 相机
- c++ - Xlib 快速有效地绘制像素
- java - Insert removed element in generic list
- kubernetes - 许多 kubernetes 机密与一个 k8s 机密中的许多密钥