2017-10-20 1 views
0

jsonファイルから配列のテーブルを抽出するクエリを作成する際に問題が発生しました。 問題は配列 "データパケット"の情報を取得する方法です。配列の内容を取得し、それらをすべて通常のSQLテーブルに作成します。Azure Stream Analytics-配列のJSON配列のクエリ

「CrashNotification」と「CrashMaxModuleAccelerations」というハードな問題が1つありますが、それらを定義して使用する方法はわかりません。

ファイルは次のようになります。


{ "imei": { "imei": "351631044527130F", "imeiNotEncoded":       
"351631044527130" 
}, 
"dataPackets": [ [ "CrashNotification", { "version": 1, "id": 28 } ], [ 
"CrashMaxModuleAccelerations", { "version": 1, "module": [ -1243, -626, 
14048 ] } ] ]} 

Iは、配列要素法や他の方法を取得します使用しようとしましたが、私は「CrashNotification」の要素のような第二レベルアレイにアクセスすることが決して午前「dataPackets」の配列「CrashMaxModuleAccelerations」の「dataPackets」または「module」の要素

こちら(Select the first element in a JSON array in Microsoft stream analytics query)でも見ましたが動作しません。 が、私は任意の助けをいただければ幸いです:)あなたのスキーマに基づいて

答えて

0

、ここでは次の列を持つテーブルを抽出しますクエリの例です:峨眉山、crashNotification_version、crashNotification_id

WITH Datapackets AS 
(
SELECT imei.imei as imei, 
     GetArrayElement(Datapackets, 0) as CrashNotification 
FROM input 
) 
SELECT 
    imei, 
    GetRecordPropertyValue (GetArrayElement(CrashNotification, 1), 'version') as crashNotification_version, 
    GetRecordPropertyValue (GetArrayElement(CrashNotification, 1), 'id') as crashNotification_id 
FROM Datapackets 

は、あなたが持っているなら、私を知ってみましょうそれ以上の質問。

おかげで、

JS(アズールストリーム解析)

+0

ありがとうございました。 –

+0

親愛なるJS Azure、あなたはこの質問を一見していただけますか、あなたのフィードバックは非常に高く評価される:) https://stackoverflow.com/questions/47141061/azure-stream-analytics-error-with-customized-timestamp-by -while-apply-win –

+0

@AhmedEssam:ごめんなさい、あなたのメッセージを最初に拝見しました。私たちのチームメンバーの1人が既にスレッドに答えているのを見ました。今あなたがブロックされていないことを願っています。 –

0

は、私たちはSQLを使用して、リアルタイムに、増分更新のテーブルをストリーミングJSONデータを変換するためのStrideと呼ばれるHTTP APIを構築しました。

生のJSONデータをStride APIの/collectエンドポイントに書き込んで、/processエンドポイント経由で連続したSQLクエリを定義し、/analyzeエンドポイント経由でデータをプッシュまたはプルするだけです。

このアプローチでは、基礎となるデータインフラストラクチャを処理する必要がなくなり、このタイプのストリーミング分析の問題に対するSQLベースのアプローチが提供されます。