Azure Stream Analytics查询语言从键值对数组中按键获取值

时间:2016-08-08 14:49:39

标签: azure azure-stream-analytics

我正在尝试从Stream Analytics查询语言中的数组属性中提取特定值。

我的数据如下:

"context": {
    "custom": {
        "dimensions": [{
            "MacAddress": "ma"
        },
        {
            "IpAddress": "ipaddr"
        }]
    }

}

我试图获得一个结果,其中“MacAddress”,“IpAddress”为列标题,“ma”,“ipaddr”为行。

我目前通过此查询实现此目的:

SELECT
    GetRecordPropertyValue(GetArrayElement(MySource.context.custom.dimensions, 0), 'MacAddress') AS MacAddress,
    GetRecordPropertyValue(GetArrayElement(MySource.context.custom.dimensions, 1), 'IpAddress') AS IpAddress,

我正在尝试使用CROSS APPLY,但到目前为止还没有运气。在CROSS APPLY查询下面:

SELECT
    flat.ArrayValue.MacAddress as MacAddress,
    flat.ArrayValue.IpAddress as IpAddress
FROM
  [ffapi-track-events] as MySource
  CROSS APPLY GetArrayElements(MySource.context.custom.dimensions) as flat 

这个产生两行而不是一行:

MacAddress, IpAddress
ma        ,
          , ipaddr

所以当我这样写的时候,我很想念它。

我想绕过硬编码索引0,因为它不能保证MacAddress不会用“IpAddress”切换位置......所以我需要像条件一样的FindElementInArray,或者用维度数组连接的方法。 / p>

有这样的事吗?

谢谢。

0 个答案:

没有答案