Обзор общих элементов архитектуры потоковой обработки

Завершено

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

Общая архитектура для потоковой обработки

В самом простом виде высокоуровневая архитектура для потоковой обработки выглядит следующим образом:

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

  1. Событие генерирует некоторые данные. Это может быть сигнал, воспроизводимый датчиком, публикация сообщения в социальной сети, запись в файл журнала или любое другое событие, которое приводит к созданию цифровых данных.
  2. Созданные данные записываются в источник потоковой передачи для обработки. В обычных случаях источником может быть папка в облачном хранилище данных или таблица в базе данных. В более надежных решениях для потоковой передачи источником может быть "очередь", которая инкапсулирует логику, чтобы гарантировать обработку данных событий по порядку, а также одноразовую обработку каждого события.
  3. Данные о событии обрабатываются часто постоянным запросом, который работает с данными события для выбора данных для определенных типов событий, проектных значений данных или агрегированных значений данных за временные (основанные на времени) периоды (или окна) — например, подсчитывая количество излучений датчика в минуту.
  4. Результаты операции потоковой обработки записываются в выходные данные (или приемник), которые могут быть файлом, таблицей базы данных, визуальной панелью мониторинга в режиме реального времени или другой очередью для дальнейшей обработки последующим подчиненным запросом.

Службы аналитики в режиме реального времени

Корпорация Майкрософт поддерживает несколько технологий, которые можно использовать для реализации аналитики потоковых данных в режиме реального времени, в том числе:

  • Azure Stream Analytics: решение "платформа как услуга" (PaaS), которое можно использовать для определения заданий потоковой передачи, которые передают данные из источника потоковой передачи, применение постоянного запроса и запись результатов в выходные данные.
  • Структурированная потоковая передача Spark: библиотека с открытым кодом, которая позволяет разрабатывать сложные решения потоковой передачи в службах На основе Apache Spark, включая Microsoft Fabric и Azure Databricks.
  • Microsoft Fabric: высокопроизводительная база данных и платформа аналитики, которая включает в себя проектирование данных, фабрику данных, обработку и анализ данных, Real-Time аналитику, хранилище данных и базы данных.

Источники для потоковой обработки

Следующие службы обычно используются для приема данных для потоковой обработки в Azure:

  • Центры событий Azure. Служба приема данных, которую можно использовать для управления очередями данных событий, чтобы гарантировать, что каждое событие обрабатывается точно один раз.
  • Центр Интернета вещей Azure: служба приема данных, аналогичная Центрам событий Azure, но оптимизирована для управления данными событий с устройств Интернета вещей.
  • Azure Data Lake Store 2-го поколения: высокомасштабируемая служба хранения часто используется в сценариях пакетной обработки , но также может использоваться в качестве источника потоковых данных.
  • Apache Kafka: решение приема данных с открытым кодом, часто используемое вместе с Apache Spark.

Приемники для потоковой обработки

Вывод потоковой обработки часто отправляется в следующие службы:

  • Центры событий Azure: используется для постановки обработанных данных в очередь для дальнейшей передачи вниз по потоку.
  • Azure Data Lake Store 2-го поколения, Microsoft OneLake или хранилище BLOB-объектов Azure: используется для сохранения обработанных результатов в виде файла.
  • База данных SQL Azure, Azure Databricks или Microsoft Fabric: используется для сохранения обработанных результатов в таблице для запроса и анализа.
  • Microsoft Power BI: используется для создания визуализаций данных в режиме реального времени в отчетах и панелях мониторинга.