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


Выбор технологии потоковой обработки в Azure

В этой статье сравниваются варианты технологий потоковой обработки в реальном времени в Azure.

Обзор потоковых данных

Организации часто имеют различные источники данных, которые одновременно выдают сообщения, записи или данные. Объем данных может варьироваться от нескольких байтов до нескольких мегабайт (МБ). Потоковые данные передаются в большом объеме непрерывно и инкрементально, что позволяет обрабатывать их практически в режиме реального времени. Этот тип данных включает сведения, используемые компаниями для аналитики в режиме реального времени и видимости различных аспектов их бизнеса, таких как журналы приложений, обновления геолокации, события и чтение датчиков.

Потоковая передача данных часто имеет следующие характеристики:

  • Несовершенная целостность данных: Временные ошибки в источнике могут привести к отсутствием элементов данных. Непрерывный характер потока может привести к несоответствию данных. Поэтому потоковые системы обработки и аналитики обычно включают логику проверки данных для устранения этих ошибок.

  • Непрерывный поток данных: Поток данных не имеет начала или конца, поэтому необходимо постоянно собирать данные. Например, журналы действий сервера накапливаются до тех пор, пока сервер работает.

  • Различные форматы данных: Вы можете передавать данные в нескольких форматах, таких как JSON, Avro и CSV. Он может включать различные типы данных, такие как строки, числа, даты и двоичные типы. Системы потоковой обработки должны обрабатывать эти вариации данных.

  • Временной порядок данных: Отдельные элементы в потоке данных содержат метки времени. И сам поток данных может быть чувствительным к времени и потерять значение после определенного времени. В некоторых случаях необходимо сохранить порядок обработки данных.

Технологии обработки в режиме реального времени

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

Поток обработки данных высокого уровня

Схема, показывающая поток данных для комплексного решения для обработки данных.

Процесс начинается с мобильных и клиентских приложений. Этап 1 обозначен как «Производители потоков». Он включает три подраздела. В подразделе под заголовком «Телеметрия конечных точек устройств» содержатся Azure IoT Hub и Azure IoT Edge. Подраздел с меткой CDC, созданный из баз данных, содержит Azure Cosmos DB и Базу данных SQL Azure. Эти два подраздела указывают на шаг 2. Подраздел, помеченный телеметрией и событиями из пользовательских приложений, содержит Службу Azure Kubernetes (AKS) и Функции Azure. Этот подраздел указывает на строку, которая переходит от первых двух подразделов к шагу 2. Шаг 2 обозначен как поглощение данных потоков. Он содержит Центры событий Azure, сетку событий Azure, Kafka в HDInsight и Kafka в Confluent. Этот шаг указывает на шаг 3, который помечен как потоковая обработка. Он содержит Azure Stream Analytics, поток событий Fabric и Функции Azure. В нём содержится подраздел, обозначенный как "структурированная потоковая передача Spark", включающий Microsoft Fabric, Azure Synapse Analytics и Azure Databricks. Шаг 3 указывает на шаг 4, который помечен приемниками потоковой передачи. Этот шаг содержит Azure Data Explorer, Azure Cosmos DB, хранилище BLOB-объектов Azure, One Lake и хранилище событий Fabric.

Скачайте файл Visio для этой архитектуры.

Производители потоков

Производители потоков создают и передают данные в службы приема Azure. Они постоянно создают данные из источников, таких как устройства Интернета вещей (IoT), журналы приложений или базы данных.

Производители потоков предоставляют следующие преимущества:

  • Захват данных почти в режиме реального времени. Производители могут постоянно собирать данные из таких источников, как устройства Интернета вещей, взаимодействие пользователей и журналы приложений. Они передают данные в службы Azure, такие как Центры событий Azure или Центр Интернета вещей Azure.

  • Оптимизируйте пропускную способность с помощью пакетной обработки и сжатия. Производители могут объединять сообщения в пакеты и применять сжатие, чтобы свести к минимуму размер данных во время передачи. Эти возможности повышают эффективность.

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

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

Компоненты

  • IoT-хаб принимает данные из Интернета вещей. Он предоставляет такие функции, как двунаправленное взаимодействие, проверка подлинности устройства и автономное буферизация сообщений. Это идеально подходит для управления устройствами Интернета вещей и их потоками данных.

  • Производители отслеживания измененных данных (CDC) включают такие базы данных Azure, как База данных SQL Azure и Azure Cosmos DB.

    Для доступа к данным CDC можно использовать соединители, такие как Debezium для базы данных SQL или механизм отслеживания изменений Azure Cosmos DB. Эти соединители часто размещаются в средах "Функции Azure" или "Служба приложений Azure". Если вы используете функцию потоков событий Microsoft Fabric, вам не нужны отдельные приложения, такие как Debezium, для подключения производителей CDC к подчиненным потребителям.

  • Пользовательские приложения , такие как Debezium, также могут размещаться как автономные приложения в управляемых службах, таких как Служба Azure Kubernetes (AKS) или среды службы приложений. Этот подход обеспечивает больший контроль или настройку.

Общие возможности

Возможность Центр Интернета вещей Производители Центров по контролю и профилактике заболеваний (CDC) Кастомные приложения
Данные телеметрии устройства Да Нет Нет
Управляемая служба Да Нет Нет
Масштабируемость Да Да Да

Прием потоковых данных

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

Обратите внимание на следующие факторы:

  • Скорость данных: Определите способ обработки данных высокой частоты из нескольких источников, которые часто различаются в формате и размере.

  • Масштабируемость: Убедитесь, что уровень обработки данных может динамически масштабироваться по мере увеличения объема, разнообразия и скорости данных.

  • Целостность данных и надежность: Предотвращение потери или дублирования данных во время передачи.

Компоненты

  • Центры событий — это служба приема данных в режиме реального времени, которая может обрабатывать миллионы событий в секунду, что делает его идеальным для сценариев высокой пропускной способности. Он может динамически масштабироваться и обрабатывать большие объемы данных с низкой задержкой.

    Центры событий поддерживают такие функции, как секционирование для параллельной обработки и политик хранения данных. Он интегрируется со службами Azure, такими как Azure Stream Analytics, Fabric, Azure Databricks и Функции Azure. Центры событий также интегрируются с Apache Kafka, и вы можете запускать существующие рабочие нагрузки Kafka без каких-либо изменений кода.

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

  • Kafka в Azure HDInsight — это управляемая служба Apache Kafka для приема и обработки данных в реальном времени. Эта служба используется для записи и хранения потоковых данных из различных источников, таких как устройства Интернета вещей, журналы приложений и веб-каналы социальных сетей. Эта служба обеспечивает дополнительный контроль конфигурации Kafka в управляемой инфраструктуре.

  • Apache Kafka в Confluent Cloud — это полностью управляемая служба Apache Kafka для приема данных в режиме реального времени. Она интегрируется с Azure для упрощения развертывания и масштабирования. Это решение включает такие функции, как реестр схем, ksqlDB для потоковых запросов и безопасность корпоративного уровня. Используйте этот параметр, если вы используете расширенную экосистему соединителей Confluent и средства потоковой обработки.

Общие возможности

Возможность Центры событий Kafka в HDInsight Kafka на Confluent
Хранение сообщений Да Да Да
Ограничение размера сообщения 1 МБ Конфигурируемый Конфигурируемый
Управляемая служба Да Управляемая инфраструктура как услуга Да
Автомасштабирование Да Да Да
Предложение партнера Нет Нет Да
Модель ценообразования На основе ранга За кластеро-час Модели потребления

Потоковая обработка

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

Обратите внимание на следующие факторы:

  • Обработка с отслеживанием состояния и без отслеживания состояния: Определите, зависит ли обработка от ранее видимых данных (с отслеживанием состояния) или независимых событий (без отслеживания состояния).

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

  • Оконная обработка: Используйте скользящие или фиксированные окна для управления агрегацией по времени и анализа.

  • Отказоустойчивость: Убедитесь, что система может восстановиться после сбоев без потери данных или повторной обработки ошибок.

Компоненты

  • Stream Analytics — это управляемая служба, использующая язык запросов на основе SQL для включения аналитики в режиме реального времени. Используйте эту службу для простых задач обработки, таких как фильтрация, агрегирование и присоединение потоков данных. Он легко интегрируется с Центрами событий, Центром Интернета вещей и хранилищем BLOB-объектов Azure для ввода и вывода. Stream Analytics лучше всего подходит для задач с низкой сложностью, в режиме реального времени, где достаточно простого управляемого решения с запросами на основе SQL.

  • Структурированная потоковая передача Spark поддерживается такими службами, как Fabric, Azure Databricks и Azure Synapse Analytics. Эти службы предоставляют единую платформу аналитики, созданную на основе Apache Spark, и могут обрабатывать сложные преобразования данных, конвейеры машинного обучения и рабочие нагрузки больших данных. API потоковой передачи Spark поддерживают глубокую интеграцию с Delta Lake для управления версиями данных и согласованности.

  • Потоки событий Fabric — это возможность потоковой передачи данных в режиме реального времени в Fabric, которая является унифицированной платформой аналитики. Потоки событий обеспечивают простое прием, обработку и интеграцию потоковых данных для аналитики и приложений в режиме реального времени. Пользователи могут получать доступ к потокам событий с минимальным техническим опытом. Он предоставляет интерфейс с возможностью перетаскивания и сброса для настройки потоков данных.

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

Общие возможности

Возможность Потоковая аналитика Структурированная потоковая передача Spark (Fabric, Azure Databricks, Azure Synapse Analytics) Потоки событий Fabric Функции Azure
Микро пакетная обработка Да Да Да Нет
Обработка на основе событий Нет Нет Да Да
Состояниевая обработка Да Да Да Нет
Поддержка создания контрольных точек Да Да Да Нет
Интерфейс с низким кодом Да Нет Да Нет
Модель ценообразования Единицы потоковой передачи Да Fabric SKU Да

Приемники потоковой передачи

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

Обратите внимание на следующие факторы:

  • Потребление и использование данных: Используйте Power BI для аналитики в режиме реального времени или панелей мониторинга отчетов. Он хорошо интегрируется со службами Azure и предоставляет динамические визуализации потоков данных.

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

  • Масштабируемость и объем: Оцените необходимость рабочей нагрузки принимать большие объемы данных, поддерживать различные форматы данных и эффективно и экономически масштабироваться.

Компоненты

  • Azure Data Lake Storage — это масштабируемое, распределенное и экономичное решение для хранения неструктурированных и частично структурированных данных. Она поддерживает хранилище петабайтов и рабочие нагрузки с высокой пропускной способностью для хранения больших объемов потоковых данных. Она также обеспечивает быстрые операции чтения и записи, которые поддерживают аналитику потоковых данных и конвейеров данных в режиме реального времени.

  • Хранилище событий Fabric — это база данных KQL для аналитики в режиме реального времени и изучения данных на основе событий, таких как данные телеметрии и журналы, данные временных рядов и данные Интернета вещей. Она поддерживает прием миллионов событий в секунду с низкой задержкой. Эта функция обеспечивает практически мгновенный доступ к потоковым данным. Ивентхаус тесно интегрируется с экосистемой Fabric. Он позволяет пользователям запрашивать и анализировать потоковые данные немедленно с помощью таких средств, как Power BI.

  • Azure Cosmos DB — это база данных NoSQL для низкой задержки, глобально распределенного и высокомасштабируемого хранилища данных. Он совместим с несколькими API, такими как SQL, MongoDB, Cassandra, Table и Gremlin, который обеспечивает гибкость для различных приложений. Azure Cosmos DB обеспечивает высокую пропускную способность и может обрабатывать большие объемы потоковых данных с согласованной производительностью.

  • База данных SQL — это полностью управляемая облачная реляционная служба. Он основан на подсистеме SQL Server. Таким образом, он предоставляет возможности традиционной базы данных SQL Server с преимуществами облачной масштабируемости, надежности и снижения затрат на управление.

Общие возможности

Возможность Хранилище данных Data Lake Место для мероприятий Fabric Azure Cosmos DB (облачная база данных) База данных SQL
Хранилище объектов общего назначения Да Нет Нет Нет
Агрегирование данных потоковой передачи Нет Да Нет Нет
Низкая задержка операций чтения и записи для документов JSON Нет Да Да Нет
Структурированные агрегаты данных для Power BI Нет Да Нет Да
Модель ценообразования За ГБ или ТБ Fabric SKU Единицы запроса Единица транзакций базы данных (DTU) или vCore

Соавторы

Корпорация Майкрософт поддерживает эту статью. Следующие авторы написали эту статью.

Основной автор:

Чтобы просмотреть неопубликованные профили LinkedIn, войдите в LinkedIn.

Следующие шаги

Ознакомьтесь со следующими модулями обучения: