2016-08-24 5 views
1

У меня есть данные, поступающие из концентратора iot, и их необходимо загрузить в таблицу SQL. В JSON данные ИТН ступице выглядит как this-Как получить вывод аналитики потока в несколько строк из одного JSON (IOT HUB)

[ { "DeviceId": "1",

"Parking1": 50, 
"Parking2": 49, 
"Parking3": 37, 
"Parking4": 35 

}, { "DeviceID": "2",

"Parking1": 45, 
"Parking2": 54, 
"Parking3": 37, 
"Parking4": 35 

} ]


И таблица выглядит так:


DeviceId | Desc | Значение


1 | Парковка1 | 10

1 | Парковка | 20

1 | Парковка3 | 30

1 | Парковка4 | 40

2 | Парковка1 | 10

2 | Парковка | 20


нужны ответы на floowing-

  1. Так что мне нужно, чтобы написать запрос в потоке аналитики так, что запрос анализирует данные JSON и помещает его в 4-х строк таблицы, как указано выше. Позвольте мне знать, какой запрос нужно записать, чтобы преобразовать каждый ключ в каждую строку таблицы.

  2. Кроме того, стоимость Стоянки1, Parking2, Parking3 и Parking4 должны быть вставлены в Таблицу, если Идентификатор устройства соответствует таблице.

  3. Также каждый раз, когда значения в таблице должны быть обновлены не вставлены.

Заранее благодарен!

+0

Есть ли у вас гибкость в способе отправки данных? Если вы можете отправить информацию о парковке в виде отдельной записи, вы можете использовать GetRecordProperties(), чтобы преобразовать ее в форму, необходимую https://msdn.microsoft.com/en-us/library/azure/mt270221.aspx.ASA не поддерживает обновление для вывода SQL, вы можете добавить столбец timestamp и написать представление, чтобы получить последнее значение для deviceId, parkingId, если сохранение всех данных является приемлемым. –

ответ

0

Пройдя через ваш JSON, «Parking1», «Parking2», «Parking3», «Parking4» должны быть столбиками.

Ваш запрос на выборку должны быть

SELECT DeviceID, Parking, Parkign2, Parking3, Parking4 
    INTO <SQLOutput> 
    FROM <InputStream> 

Кроме того, в качестве входных данных (ВГД хаба) и выход (SQL Azure) различны для работы ASA, данные могут быть вставлены только не обновляется.