Справочник по языку запросов Stream Analytics

Azure Stream Analytics предлагает язык запросов SQL для выполнения преобразований и вычислений над потоками событий.

Язык запросов Stream Analytics, подмножество синтаксиса T-SQL

В этом документе описывается синтаксис, использование и рекомендации для языка запросов Stream Analytics. Во всех примерах, применяемых в данном документе, используется сценарий пункта сбора оплаты, как описано ниже.

Язык запросов Stream Analytics является подмножеством стандартного синтаксиса T-SQL для выполнения вычислений потоковой передачи.

Сценарий пункта сбора оплаты

Пункты сбора оплаты можно встретить на многих скоростных автомагистралях, мостах и туннелях по всему миру. Каждый такой пункт имеет несколько кабинок, которые могут работать в ручном режиме, когда нужно остановиться и внести плату контроллеру, или в автоматическом, когда сенсор на крыше кабинки считывает RFID-карту, прикрепленную на ветровое стекло автомобиля, при проезде через кабинку. Проезд автомобилей через станции сбора платы можно легко представить в виде потока событий, в котором выполняются интересные операции.

Время прибытия и время применения

В любой временной системе наподобие Azure Stream Analytics важно понимать ход времени. Каждое событие, которое проходит через систему, сопровождается отметкой времени, к которой можно получить доступ через System. timestamp (). Иными словами, каждое событие в нашей системе описывает момент времени. Эта метка времени может либо указываться пользователем в запросе как время приложения, либо назначаться системой на основе времени прибытия. Время прибытия имеет различные значения, основанные на источниках входных данных. Для событий из концентратора событий Azure время поступления — это отметка времени, заданная концентратором событий. для хранилища BLOB-объектов это время последнего изменения большого двоичного объекта. Отметка времени — это момент времени, связанный с записью или анализом данных. Если пользователь хочет использовать время приложения, он может сделать это с помощью ключевого слова timestamp by . В вышеприведенном сценарии это момент входа автомобиля в кабинку сбора оплаты. Крайне важно определить метку времени во входящем потоке данных. Следует убедиться, что записанное время также подтверждает возникновение события. Например, если пользователь отслеживает кассы и необходимо подсчитать число оплативших клиентов, более подходящей меткой времени события будет время выполнения платежа, а не время выставления счета.

TIMESTAMP BY

В Azure Stream Analytics все события имеют четко определенные метки времени. Если пользователь хочет использовать время приложения, он может использовать ключевое слово TIMESTAMP BY для указания столбца в полезных данных, который должен использоваться для отметки времени каждого входящего события для выполнения любых временных вычислений, таких как окна, объединения и т. д. Рекомендуется использовать отметку времени при превышении времени прибытия. Отметку времени можно использовать для любого столбца типа DateTime, и поддерживаются все форматы ISO 8601. System. timestamp () можно использовать только в SELECT.

Ниже приведен пример TIMESTAMP BY, в котором используется столбец EntryTime в качестве времени приложения для события.

  
SELECT TollId, EntryTime AS VehicleEntryTime, LicensePlate, State, Make, Model, VehicleType, VehicleWeight, Toll, Tag   
FROM TollTagEntry TIMESTAMP BY EntryTime  
  

Чувствительность имени поля к регистру

Имена полей для задания, созданного с использованием уровня совместимости 1,0, заменяются на строчные (без учета регистра) при обработке подсистемой Azure Stream Analytics. Для входных форматов, поддерживающих схему с учетом регистра, например JSON, можно создавать события с повторяющимися полями, если имена полей сравниваются без учета регистра. Такие события считаются недопустимыми и удаляются во время обработки.

Чувствительность к регистру учитывается в именах полей при создании Stream Analytics задания с использованием уровня совместимости 1,1 или выше. Дополнительные сведения см. в разделе Настройка уровня совместимости .

Содержимое раздела

Рекомендации по использованию языка запросов Stream Analytics см. в следующих разделах.

См. также: