Поделиться через


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

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

Подмножество синтаксиса T-SQL

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

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

Сценарий платных стендов

Платный вокзал является общим явлением - мы сталкиваемся с ними во многих скоростных дорогах, мостах и туннелях по всему миру. У каждой станции платных есть несколько платных стендов, которые могут быть вручную - это означает, что вы останавливаете платить платный участникам или автоматизированный - где датчик, размещенный на вершине стенда, сканирует КАРТОЧКУ СИП, прикрепленную к лобовому осилю вашего транспортного средства, как вы передаете платный стенд. Легко визуализировать прохождение транспортных средств через эти платные станции в виде потока событий, над которыми можно выполнять интересные операции.

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

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

МЕТКА ВРЕМЕНИ ПО

В Azure Stream Analytics все события имеют четко определенную метку времени. Если пользователь хочет использовать время приложения, он может использовать ключевое слово TIMESTAMP BY, чтобы указать столбец в полезных данных, который следует использовать для метки времени для каждого входящего события для выполнения любых временных вычислений, таких как окно, соединения и т. д. Мы рекомендуем использовать TIMESTAMP BY во время прибытия в качестве рекомендации. 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 см. в следующих разделах.

См. также