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

Завершено

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

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

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

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

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

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

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

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

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

Следующие службы обычно используются для приема данных для потоковой обработки в 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: используется для создания визуализаций данных в режиме реального времени в отчетах и на информационных панелях.