Общие сведения об обработке событий
Azure Stream Analytics — это служба для сложной обработки событий и анализа потоковых данных. Stream Analytics используется для:
- Получение данных из источника данных, такого как концентратор событий Azure, концентратор Интернета вещей Azure или контейнер BLOB-объектов службы хранилища Azure.
- Обрабатывайте данные с помощью запроса для выбора, проекции и агрегирования значений данных.
- Напишите результаты в вывод, например, Azure Data Lake Storage 2-го поколения, Azure SQL Database, Azure Cosmos DB, Функции Azure, Центры событий Azure, Microsoft Power BI или другие.
После запуска запрос 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
- Хранилище блочных объектов Azure
- Azure Data Lake Storage 2-го поколения
- Apache Kafka
Входные данные обычно используются для ссылки на источник потоковых данных, который обрабатывается при добавлении новых записей событий. Кроме того, можно определить ссылочные входные данные, которые используются для приема статических данных для расширения данных потока событий в режиме реального времени. Например, вы можете принять поток данных о метеоусловиях в режиме реального времени, которые включают уникальный идентификатор для каждой метеорологической станции, и дополнить эти данные статическими справочными данными, связывающими идентификатор метеорологической станции с более значимым именем.
Выходы
Выходные данные — это назначения, в которые отправляются результаты потоковой обработки. Azure Stream Analytics поддерживает широкий спектр приемников выходных данных, которые можно использовать для:
- Сохраните результаты для дальнейшего анализа; например, записав во хранилище данных Azure Data Lake Storage второго поколения, Azure SQL Database или Azure Cosmos DB.
- Анализ данных журнала и телеметрии в масштабе; например, отправляя результаты в Azure Data Explorer.
- Отображение визуализации потока данных в режиме реального времени; Например, добавляя данные в набор данных в Microsoft Power BI.
- Создание отфильтрованных или суммированных событий для последующей обработки; Например, записывая результаты в Центры событий Azure.
Запросы
Логика потоковой обработки инкапсулируется в запросе. Запросы определяются с помощью инструкций SQL, которые SELECT поля данных FROM одного или нескольких входных источников, фильтруют или агрегируют данные, а также записывают результаты в выход. Например, следующий запрос фильтрует события из входного потока weather-events, чтобы включить только данные из событий со значением температуры менее 0, и записывает результаты в выход cold-temps.
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 создается для записи времени получения события в очереди концентратора событий.
Поле, используемое в качестве метки времени, важно при агрегации данных по темпоральным окнам, которые обсуждаются далее.
Редактор без кода
Если вы предпочитаете создавать задание потоковой обработки без написания SQL, Azure Stream Analytics включает редактор без кода. Доступ к нему можно получить на портале Azure Stream Analytics или на портале Центров событий Azure. Редактор без кода предоставляет холст с функцией перетаскивания, на котором вы подключаете входные источники, добавляете преобразования (включая оконные функции и агрегаты) и настраиваете выходные данные — без написания кода.
Редактор без кода можно использовать для быстрого создания прототипа, а затем при необходимости просматривать или настраивать созданный SQL-запрос для более сложных сценариев.