2017-12-12 7 views
0

Azure IOTハブからAzure Stream Analytics(ASA)からPower BIへのイベントからデータを抽出する際に問題が発生しました。Azureストリームアナリティクスの電力BIのクエリ

SELECT * 
INTO PowerBI 
FROM PhotonEventData 

この結果に:私は、これは直接クエリでASAを介して電力BIに押し込まれ得ることができます

"data": "[{\"Temperature\":74.15750885,\"Humidity\":26.32574463}]", 
"device_id": "1e0037000d47353136383631", 
"event": "Photon_WeatherData", 
"published_at": "2017-12-12T16:52:18.405Z" 

:ここ

は、AzureのIOTハブに入ってくるフィードの例です。 : Screenshot of PBI Dataset

[{"Temperature":73.81002045,"Humidity":26.56988525}] 

しかし、私はOUの皮をむくように見えることはできませんASAのデータポイントを使用して、各キーと値のペアをPower BIに渡すことができます。データが配列され、複合型SELECT data.Temperateが動作しませんではないので

SELECT data.Temperature 
INTO PowerBI 
FROM PhotonEventData 

答えて

0

:私は、次のようないくつかの異なるものを試してみました。

GetArrayElementメソッドが必要です(the docsを参照)。

SELECT GetRecordPropertyValue(GetArrayElement(data, 0), 'Temperature') AS Temperature 
INTO PowerBI 
FROM PhotonEventData 

EDIT:配列が複合型で構成されているので、あなたはTemperatureプロパティの値を取得するGetRecordPropertyValueを必要とする他の答えが指摘するように、あなたのデータプロパティは、JSONの配列の代わりに文字列の配列が含まれていますオブジェクト。あなたはそれが適切にあなたが私のソリューションを使用することができます下のようなオブジェクトを表していることを修正することができた場合:

{ 
    "data": [{ "Temperature":74.15750885, "Humidity":26.32574463}], 
    "device_id": "1e0037000d47353136383631", 
    "event": "Photon_WeatherData", 
    "published_at": "2017-12-12T16:52:18.405Z" 
} 
0

を「データ」フィールドはJSONオブジェクトとして文字列ではなくとしてフォーマットされているようです。 JavaScriptのUDF関数を使用してJSONに解析することができます。あなたはAzureのストリーム解析では、この関数を作成することができます。このために :

function main(input, key) { 
    // return key 
    var myinput = String(input) 
    myinput = myinput.substring(1, myinput.length - 1); 
    values = JSON.parse(myinput); 
    return values[key] 
} 

を次に、あなたのクエリは次のようになります。

select udf.extract(data,'Temperature') as temp, udf.extract(data,'Humidity') as hmdt from PhotonEventData 

は、あなたがそれ以上の質問があるなら、私に教えてください。

関連する問題