2017-04-21 68 views
0

比方說,我有以下的JSON數據結構進入流分析(通過物聯網設備產生的):轉碼陣列

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

上面可以看到數據數組包含命名對象。我需要存儲對象名稱以及其他參數。是否有內置的函數來訪問數組元素的對象名稱? messagetype1和messagetype2只是例子。

E.g.I想用來存儲:

{ "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} 

回答

0

處理這個可能是使用JavaScript UDFs的最佳方式。

雖然人們通常可以逃脫的ArrayRecord功能通過CROSS APPLY捆綁起來的某種組合,你的情況複雜的是與不同的解包記錄messagetype*。您需要知道所有可能的param*名稱的集合才能創建正確的查詢。或者,您可以使用GetRecordProperties,但不是所需的{ ... "param1":83}結構,您將以{... "field_name":"param1", "field_value":83}結構結束。

+0

嗨,我不知道Azure中的用戶定義函數。我認爲這應該起作用。非常感謝你。 –