Общие сведения об обработке событий

Завершено

Azure Stream Analytics — это служба обработки сложных событий и анализа потоковых данных. Stream Analytics используется для:

  • Приема данных из ввода, например из Центров событий Azure, Центра Интернета вещей Azure или контейнера BLOB-объектов службы хранилища Azure.
  • Обработки данных с помощью запроса для выбора, проецирования и агрегирования значений данных.
  • Записи результатов в вывод, например Azure Data Lake 2-го поколения, Базу данных Azure SQL, Azure Synapse Analytics, Функции Azure, Центры событий Azure, Microsoft Power BI и т. д.

Схема задания Stream Analytics с входными данными, запросом и выходными данными

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

Stream Analytics гарантирует обработку событий только один раз и доставку событий по крайней мере один раз. Таким образом, события не теряются. Служба имеет встроенные возможности восстановления в случае сбоя доставки события. Кроме того, Stream Analytics предоставляет встроенные контрольные точки для поддержания состояния задания и воспроизводимые результаты. Так как Azure Stream Analytics — это решение PaaS (платформа как услуга), оно полностью управляемое и высоконадежное. Его встроенная интеграция с различными источниками и назначениями обеспечивает гибкую модель программирования. Подсистема Stream Analytics обеспечивает вычислительные ресурсы в памяти, поэтому обеспечивает высокую производительность.

Задания и кластеры Azure Stream Analytics

Самый простой способ использовать Azure Stream Analytics — создать задание Stream Analytics в подписке Azure, настроить его ввод и вывод и определить запрос, который задание будет использовать для обработки данных. Запрос выражается с использованием синтаксиса языка SQL и может включать статические эталонные данные из нескольких источников данных для предоставления значений поиска, которые можно комбинировать с потоковыми данными, полученными из ввода.

Если ваши требования к потоковому процессу сложны или ресурсоемки, можно создать кластер Stream Analysis, который использует такой же базовый механизм обработки, что и задание Stream Analytics, но в выделенном арендаторе (поэтому ваша обработка не зависит от других клиентов) и с настраиваемой масштабируемостью, которая позволяет вам определить правильный баланс пропускной способности и стоимости для конкретного сценария.

Входные данные

Azure Stream Analytics может принимать данные из следующих типов входных данных:

  • Центры событий Azure
  • Центр Интернета вещей Azure
  • Хранилище BLOB-объектов Azure
  • Azure Data Lake Storage 2-го поколения

Входные данные обычно используются для ссылки на источник потоковых данных, который обрабатывается при добавлении новых записей событий. Кроме того, можно определить ссылочные входные данные, которые используются для приема статических данных, чтобы дополнить данные потока событий в режиме реального времени. Например, можно принять поток данных наблюдения за погодой в режиме реального времени, который включает уникальный идентификатор для каждой метеостанции, и дополнить эти данные статическими входными данными, которые соответствуют идентификатору метеостанции с более понятным именем.

Выходные данные

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

  • Сохранять результаты потоковой обработки для дальнейшего анализа; например, загрузив их в озеро данных или хранилище данных.
  • Отображение визуализации потока данных в режиме реального времени; например, путем добавления данных в набор данных в Microsoft Power BI.
  • Создавать отфильтрованные или суммированные события для последующей обработки; например, путем записи результатов потоковой обработки в концентратор событий.

Запросы

Логика потоковой обработки инкапсулируется в запросе. Запросы определяются с помощью инструкций SQL, которые select поля данных FROM одного или нескольких входных данных, фильтруют или агрегируют данные, а также записывают результаты в выходные данные. Например, следующий запрос фильтрует события из входных данных погоды , чтобы включить только данные из событий со значением температуры меньше 0, и записывает результаты в выходные данные холодных времен :

SELECT observation_time, weather_station, temperature
INTO cold-temps
FROM weather-events TIMESTAMP BY observation_time
WHERE temperature < 0

Поле с именем EventProcessedUtcTime создается автоматически, чтобы определить время обработки события запросом Azure Stream Analytics. Это поле можно использовать для определения метки времени события или явно указать другое поле DateTime с помощью предложения TIMESTAMP BY , как показано в этом примере. В зависимости от входных данных, из которых считываются данные потоковой передачи, одно или несколько потенциальных полей меток времени могут создаваться автоматически; Например, при использовании входных данных Центров событий создается поле с именем EventQueuedUtcTime для записи времени получения события в очереди концентратора событий.

Поле, используемое в качестве метки времени, важно при агрегации данных по темпоральным окнам, что рассматривается далее.