GetArrayElement
твой друг.См. документы
SELECT
time,
deviceId,
GetArrayElement(val, 0) AS FirstElement,
GetArrayElement(val, 1) AS SecondElement
… and so on
INTO
Output
FROM
IotHub
Вы указываете, что данные поступают из концентратора IOT каждые 10 секунд, и сохраненные данные должны быть "необработанными" данными.Но вы также хотите, чтобы данные записывались в базу данных каждую минуту.Затем вам придется агрегировать данные или сохранять их непосредственно в базе данных.
Нельзя использовать Azure Stream Analytics для буферизации входящих данных и последующей записи 6 записей в базу данных каждую минуту.
Вы можете применить windowing в минуту, но тогда данные будут агрегированы за время окна.Например, вы можете хранить средние значения массива каждую минуту.
Если вы хотите использовать необработанные значения, вы не можете применять управление окнами, и вам нужно записывать их в базу данных, когда поступают данные (то есть каждые 10секунд)
Запрос Windows может выглядеть примерно так:
SELECT
deviceId,
AVG(GetArrayElement(val, 0)) AS AvgFirstElement,
AVG(GetArrayElement(val, 1)) AS AvgSecondElement
… and so on
INTO
Output
FROM
IotHub
GROUP BY
deviceId,
TumblingWindow(minute, 1)