Azure流分析中的代码转换

时间:2017-04-21 14:48:48

标签: json azure azure-stream-analytics

假设我有以下JSON数据结构进入Stream Analytics(由IoT设备生成):

{
    "user":"bob",
    "messages":[
    {
        "mac":"AA:BB:CC:DD:EE:FF",
        "data":[
            {
                "messagetype1":{
                    "param1":83,
                    "param2":82
                },
                "messagetype2":{
                    "param3":83,
                    "param4":82
                }
            }
        ]
    }]
}

上面你可以看到数据数组包含命名对象。我需要存储对象名称以及其他参数。是否有内置函数来访问数组元素的对象名称? messagetype1和messagetype2就是例子。

例如,我想存储:

{ "user":"bob", "mac":"AA:BB:CC:DD:EE:FF", "type":"messagetype1", "param1":83}
{ "user":"bob", "mac":"AA:BB:CC:DD:EE:FF", "type":"messagetype1", "param2":82}
{ "user":"bob", "mac":"AA:BB:CC:DD:EE:FF", "type":"messagetype2", "param3":83}
{ "user":"bob", "mac":"AA:BB:CC:DD:EE:FF", "type":"messagetype2", "param4":82}

1 个答案:

答案 0 :(得分:0)

处理此问题的最佳方法可能是使用JavaScript UDFs

虽然通常可以通过Array绑定的RecordCROSS APPLY函数组合起来,但在您的情况下,并发症是解开不同的std::array记录。您需要知道所有可能的messagetype*名称的集合才能进行正确的查询。或者,您可以使用param*,但不会使用所需的GetRecordProperties结构,而是使用{ ... "param1":83}结构。