У меня возникла проблема синтаксиса с моим запросом аналитики потока. Ниже мой поток Analytics запрос, где я пытаюсь получить следующие поля из событий:Проблема синтаксиса в потоковой аналитике Запрос в Azure: Недопустимое имя столбца: 'полезная нагрузка'
- Id автомобиля
- Diff предыдущего и текущего уровня топлива (для каждого транспортного средства),
- Diff тока и предыдущее значение одометра (для каждого автомобиля ).
нерабочими QUERY
SELECT input.vehicleId,
FUEL_DIFF = LAG(input.Payload.FuelLevel) OVER (PARTITION BY vehicleId LIMIT DURATION(minute, 1)) - input.Payload.FuelLevel,
ODO_DIFF = input.Payload.OdometerValue - LAG(input.Payload.OdometerValue) OVER (PARTITION BY input.vehicleId LIMIT DURATION(minute, 1))
from input
Ниже один входной образец событие, на котором вышеупомянутый запрос/работа побежал на ряд событий:
{
"IoTDeviceId":"DeviceId_1",
"MessageId":"03494607-3aaa-4a82-8e2e-149f1261ebbb",
"Payload":{
"TimeStamp":"2017-01-23T11:16:02.2019077-08:00",
"FuelLevel":19.9,
"OdometerValue":10002
},
"Priority":1,
"Time":"2017-01-23T11:16:02.2019077-08:00",
"VehicleId":"MyCar_1"
}
После синтаксической ошибки бросается при запуске задания Stream Analytics:
Недопустимое имя столбца: «полезная нагрузка». Столбец с таким именем не существует.
Как ни странно, следующий запрос работает просто отлично:
РАБОЧЕЙ QUERY
SELECT input.vehicleId,
FUEL_DIFF = LAG(input.Payload.FuelLevel) OVER (PARTITION BY vehicleId LIMIT DURATION(second, 1)) - input.Payload.FuelLevel
from input
Единственные разностным между РАБОЧЕЙ QUERY и нерабочим QUERY является количеством LAG используемых конструкций. В НЕВЕРНОМ ЗАПРОСЕ есть две конструкции LAG, а WORKING QUERY имеет только одну конструкцию LAG.
Я ссылался на язык запросов Analytics Analytics, у них есть только базовые примеры. Также попытался изучить несколько блогов. Кроме того, я пробовал использовать функцию GetRecordPropertyValue(), но не повезло. Пожалуйста, предложите.
Заранее спасибо!