Есть ли способ в Azure Stream Analytics для создания какого-либо агрегата с пользовательским состоянием, как это делает Sparks mapWithState?
Вот мой сценарий:
У меня есть данные с устройств IoT, содержащие следующиеполя:
- DeviceId
- Позиция
- Значение
Данные могут поступать не в порядке.
Всякий раз, когдановый пакет прибывает для данного DeviceId, я хочу вывести последние n позиций и значений для этого устройства.Как
Ввод: { "DeviceId": "A", "Position": 10, "Value": 100}
Выход: { "DeviceId": "A", "Positions": [10], "Value": [100]}
Следующий ввод: { "DeviceId": "A", "Position": 11, "Value": 101}
Выход: { "DeviceId": "A", "Positions": [10, 11], "Value": [100, 101]}
Следующий ввод: { "DeviceId": "A", "Position": 9, "Value": 99}
Вывод: { "DeviceId": "A", "Positions": [9, 10, 11], "Value": [9, 100, 101]}
В Spark Structured Streaming я бы реализовал это, используя groupBy
и mapWithState
.Есть ли способ реализовать это в ASA?