SQL 데이터베이스에 iothub 데이터를 푸시하기 위해 스트림 분석 쿼리를 작성하려고합니다.스트림 분석 쿼리가 장치 데이터에서 EnqueuedTime device_id를 가져옵니다.
MY IOTHUB 데이터는 다음과 같습니다.
{
"Device_Id":"P371602011",
"kWL1":11.683551775144204,
"EventProcessedUtcTime":"2017-12-28T07:21:14.3829760Z",
"PartitionId":0,
"EventEnqueuedUtcTime":"2017-12-28T07:21:04.6660000Z",
"IoTHub":
{
"MessageId":null,
"CorrelationId":null,
"ConnectionDeviceId":"iotclient",
"ConnectionDeviceGenerationId":"636500361000571958",
"EnqueuedTime":"2017-12-28T07:21:04.0540000Z",
"StreamId":null
}
}
지금 내가 SQL 데이터베이스에 DEVICE_ID, kWL1 및 EnqueuedTime를 작성하려합니다. 내 스트림 분석 검색어는 다음과 같습니다. 내가 스트림 분석 작업을 실행하면
SELECT
Device_Id AS PowerScout,
IoTHub.EnqueuedTime AS [ReadingTime],
kWL1 AS [kW L1]
INTO
[DataBase]
FROM
[IoTHub]
, 나는 DEVICE_ID 및 kWL1 값을 볼 수 있지만 EnqueuedTime는 NULL로 보이고있다. IOTHub 데이터에서 EnqueuedTime을 얻는 방법.
{
"DeviceData": [
{
"Device_Id": "5",
"AMPSL1": 1.2515641182178531E-38
}
],
"EventEnqueuedUtcTime": "2018-01-08T05:03:08.0840000Z",
"IoTHub": {
"MessageId": null,
"CorrelationId": null,
"ConnectionDeviceId": "VHW1",
"ConnectionDeviceGenerationId": "636509839893748612",
"EnqueuedTime": "2018-01-08T05:03:06.7460000Z",
"StreamId": null
}
}
위의 형식으로 Device_Id 및 AMPSL1을 어떻게 얻을 수 있습니까? 귀하의 제공 정보]에서 사전
{ "DeviceData"[ { "DEVICE_ID" "5", "AMPSL1"1.2515641182178531E 38 } ] "EventEnqueuedUtcTime": "2018-01-08T05 : 03 : 08.0840000Z " "IoTHub ": { "의 MessageID "널 (null), "CorrelationID를 "널 (null), "ConnectionDeviceId ":"VHW1 " "ConnectionDeviceGenerationId ":"636509839893748612 " "EnqueuedTime "" 2018-01-08T05 : 03 : 06.7460000Z ", "StreamId ": null } } 위의 포맷에서 Device_Id & AMPSL1을 어떻게 얻을 수 있습니까? –
@ krishnabh,이 블로그 ([Stream Analytics 쿼리의 Json 배열 처리] (https://blogs.msdn.microsoft.com/streamanalytics/2016/02/23/handling-json-array-in-stream- analytics-query /)). 나는 그것이 당신에게 도움이 될 것이라고 생각합니다. AS DeviceDataCollection 함께 –
안녕 마이클, DeviceDataCollection로부터 이 DeviceData.Device_Id을 선택 DeviceData.AMPSL1 ( 입력 FROM DeviceData 0) GetArrayElement (DeviceData를 선택) :이 쿼리 명령을 시도 할 수 있습니다 빠른 답장을 보내 주셔서 감사합니다, 내가 이것을 사용하여 Device_Id & AMPSL1을 얻을 수 있지만 이미 동일한 값으로 IoTHub.EnqueuedTime [TimeStamp] 같은 다른 값이 누락되었습니다. 내가 DEVICE_ID 및 AMPSL1 및 EnqueuedTime –