У меня есть EventHub, который получает события с парами JSON K / V, которые могут различаться. Я хочу выполнить одно задание Stream Analytics и создать несколько предупреждений, сохранив все пары K / V в результате. Например, такие события можно увидеть:
{"temp1": 45, "temp2": 60, "source": "sensor-a"},
{"temp1": 37, "temp2": 50, "humidity": 17, "source": "new-sensor"}
Я использую влажность в качестве примера, но суть в том, что ключи различаются.
Один из способов это сработало бы, если бы я мог просто выполнить несколько операторов выбора с моими различными предложениями WHERE
.
SELECT *, ALERT='Temp LOW' FROM [input] WHERE temp1 < 15
UNION
SELECT *, ALERT='Humidity HIGH' FROM [input] WHERE humidity > 50
Но это не сработает, потому что SELECT *
в ASA не разрешено с UNION. Один из способов это может работать, если, например, исходные данные могут быть возвращены как дочерний элемент с именем raw_data. Я не уверен, как / если я смогу сделать это. Мне нужны другие пары K / V, но я не могу знать все названия ключей.
С необработанными данными в детстве, результат может выглядеть так:
{"ALERT": "Humidity HIGH", "raw_data":
{"temp1": 33, "temp2": 52, "humidity": 60, "source": "sensorname", "otherkey": "value"}
}
Я подумал, что может сработать то, что я могу использовать инструкцию WITH для генерации поля ALERT, а затем использовать JOIN для добавления в поток событий. Я мог бы сгенерировать UUID для каждого события, чтобы присоединиться. Я еще не смог понять это.
Есть ли способ сделать либо возврат исходного события как дочернего в JSON, либо метод JOIN для добавления поля ALERT?