Выбор технологии потоковой обработки в Azure
В этой статье сравниваются варианты технологий потоковой обработки в реальном времени в Azure.
При потоковой обработке в реальном времени система получает сообщения из очередей или файлового хранилища, затем обрабатывает сообщения и пересылает результат в другую очередь сообщений, файловое хранилище или базу данных. Процесс обработки может включать такие задачи, как запрашивание, фильтрация и агрегирование сообщений. Системы потоковой обработки должны иметь возможность получать неограниченное число потоков данных и выводить результаты с минимальной задержкой. Дополнительные сведения см. в статье об обработке в реальном времени.
Варианты при выборе технологии для обработки в реальном времени
Все следующие хранилища данных в Azure будут соответствовать основным требованиям к обработке в реальном времени:
- Azure Stream Analytics
- HDInsight с потоковой передачей Spark;
- Apache Spark в Azure Databricks
- Функции Azure
- веб-задания службы приложений Azure
- API потоков Apache Kafka
Основные критерии выбора
Для сценариев обработки в реальном времени сначала выберите службу, которая соответствует вашим требованиям, ответив на следующие вопросы:
Какой подход к созданию логики потоковой обработки вы предпочитаете использовать: декларативный или императивный?
Нужна ли встроенная поддержка для обработки темпоральной информации или обработки методом окна?
Вы получаете данные в форматах помимо Avro, JSON или CSV? Если да, выберите варианты, где поддерживаются все форматы, использующие пользовательский код.
Нужно ли масштабировать обработку за пределами 1 ГБИТ/с? Если да, выберите варианты с поддержкой масштабирования размера кластера.
Матрица возможностей
В следующих таблицах перечислены основные различия в возможностях.
Общие возможности
Возможность | Azure Stream Analytics | HDInsight с потоковой передачей Spark; | Apache Spark в Azure Databricks | Функции Azure | Веб-задания службы приложений Azure |
---|---|---|---|---|---|
Программируемость | SQL, JavaScript | C#/F#, Java, Python, Scala | C#/F#, Java, Python, R, Scala | C#, F#, Java, Node.js, Python | C#, Java, Node.js, PHP, Python |
Парадигма программирования | Декларативный | Сочетание декларативного и принудительного подхода | Сочетание декларативного и принудительного подхода | Императивный подход | Императивный подход |
Модель ценообразования | Единицы потоковой передачи | Стоимость узла в минуту | Единицы Databricks | За выполнение функции и использование ресурсов | За час плана Служба приложений |
Возможности интеграции
Возможность | Azure Stream Analytics | HDInsight с потоковой передачей Spark; | Apache Spark в Azure Databricks | Функции Azure | Веб-задания службы приложений Azure |
---|---|---|---|---|---|
Входные данные | Центры событий Azure, Центр Интернета вещей Azure, хранилище BLOB-объектов Azure или Data Lake Storage 2-го поколения | Центры событий, Центр Интернета вещей, Kafka, HDFS, BLOB-объекты хранилища, Azure Data Lake Storage | Центры событий, Центр Интернета вещей, Kafka, HDFS, BLOB-объекты хранилища, Azure Data Lake Storage | Поддерживаемые привязки | служебная шина, очереди хранилища, большие двоичные объекты хранилища, центры событий, веб-перехватчики, Azure Cosmos DB, файлы |
Приемники | Azure Data Lake Storage 1-го поколения, Azure Data Explorer, База данных Azure для PostgreSQL, База данных SQL Azure, Azure Synapse Analytics, хранилище BLOB-объектов и Azure Data Lake 2-го поколения, Центры событий Azure, Power BI, хранилище таблиц Azure, очереди Служебная шина Azure, разделы Служебная шина Azure, Azure Cosmos DB, Функции Azure | HDFS, Kafka, BLOB-объекты хранилища, Azure Data Lake Store, Azure Cosmos DB | HDFS, Kafka, BLOB-объекты хранилища, Azure Data Lake Store, Azure Cosmos DB | Поддерживаемые привязки | служебная шина, очереди хранилища, большие двоичные объекты хранилища, центры событий, веб-перехватчики, Azure Cosmos DB, файлы |
Возможности обработки
Возможность | Azure Stream Analytics | HDInsight с потоковой передачей Spark; | Apache Spark в Azure Databricks | Функции Azure | Веб-задания службы приложений Azure |
---|---|---|---|---|---|
Встроенная поддержка обработки темпоральной информации или обработки методом окна | Да | Да | Да | No | No |
Форматы входных данных | Avro, JSON или CSV, данные в кодировке UTF-8 | Любой формат с использованием пользовательского кода | Любой формат, использующий пользовательский код Любой формат с помощью пользовательского кода | Любой формат с использованием пользовательского кода | |
Масштабируемость | Секции запросов | Ограничивается размером кластера | Ограничивается конфигурацией масштабирования кластера Databricks | До 200 экземпляров приложений-функций, обрабатываемых одновременно | Ограничена емкостью плана Служба приложений |
Поддержка обработки событий, наступивших с задержкой, и неупорядоченных событий | Да | Да | Да | No | No |
Соавторы
Эта статья поддерживается корпорацией Майкрософт. Первоначально он был написан следующими участниками.
Автор субъекта:
- Зойнер Теджада | Генеральный директор и архитектор
Следующие шаги
- Обзор Службы приложений Azure
- Изучение Функции Azure
- Приступая к работе с Azure Stream Analytics: выявление мошенничества в режиме реального времени
- Выполнение расширенных преобразований потоковых данных
- Настройка кластеров в HDInsight
- Использование Apache Spark в Azure Databricks