Azure Data Factory
Azure Data Factory — это облачный сервис корпорации Microsoft для интеграции данных, предназначенный для создания, планирования и управления конвейерами (пайплайнами) извлечения, преобразования и загрузки данных (ETL/ELT). Сервис позволяет оркестрировать перемещение и трансформацию данных между различными источниками и хранилищами, как локальными, так и облачными, без необходимости написания сложного кода. Azure Data Factory является частью платформы Microsoft Azure и входит в категорию «Интеграция как услуга» (iPaaS).
История
Azure Data Factory был анонсирован компанией Microsoft в 2014 году на конференции //Build/ как инструмент для облачной интеграции данных. Первая публичная предварительная версия (public preview) стала доступна в марте 2015 года, а общая доступность (GA) наступила в июле 2015 года. Изначально сервис был ориентирован на простые сценарии перемещения данных между Azure Blob Storage, Azure SQL Database и локальными SQL Server.
В 2018 году Microsoft выпустила вторую версию сервиса — Azure Data Factory V2, которая принесла значительные изменения: поддержку управления потоком управления (control flow), включая условные операторы, циклы и параллельное выполнение действий, а также возможность размещения вычислительных мощностей для трансформации данных в среде Azure Databricks и Azure HDInsight. В 2019 году была добавлена интеграция с Azure Synapse Analytics, а в 2020 году — поддержка Git-репозиториев для управления версиями кода конвейеров.
На 2025 год Azure Data Factory продолжает развиваться, интегрируясь с новыми источниками данных и сервисами машинного обучения, а также получая функции автоматического масштабирования и повышения производительности.
Архитектура и основные компоненты
Azure Data Factory построен на метаданных, которые описывают конвейеры, действия, наборы данных и связанные службы. Архитектура включает несколько ключевых элементов:
Конвейеры (Pipelines)
Конвейер — это логическая группа действий, выполняемых в определённом порядке. Конвейер может содержать одно или несколько действий (activities), которые могут выполняться последовательно, параллельно или по условию. Конвейеры являются основной единицей оркестрации в ADF.
Действия (Activities)
Действия представляют собой отдельные шаги в конвейере. Они делятся на три категории:
- Действия перемещения данных — копирование данных из источника в приёмник с помощью действия Copy.
- Действия преобразования данных — выполнение трансформаций с использованием вычислительных сервисов (например, Azure Databricks, HDInsight, Azure Synapse Spark).
- Действия управления потоком — управление логикой выполнения: условные операторы (If Condition), циклы (ForEach, Until), ожидание (Wait), вызов других конвейеров (Execute Pipeline).
Наборы данных (Datasets)
Наборы данных — это именованные представления структуры данных, которые используются в действиях. Они указывают, откуда и куда перемещать данные, а также их формат (CSV, JSON, Parquet, Avro и др.). Наборы данных ссылаются на связанные службы.
Связанные службы (Linked Services)
Связанные службы определяют строки подключения к внешним ресурсам: базам данных (SQL Server, Oracle, PostgreSQL, MySQL), файловым хранилищам (Azure Blob Storage, Amazon S3, Google Cloud Storage), веб-сервисам (REST API, HTTP) и другим источникам. Каждая связанная служба содержит учётные данные и параметры подключения.
Триггеры (Triggers)
Триггеры определяют, когда конвейер должен быть запущен. Поддерживаются три типа триггеров:
- По расписанию (Schedule) — запуск в определённое время с заданной периодичностью.
- По событию (Event) — запуск при возникновении события в Azure Blob Storage (например, создание или удаление файла).
- По запросу (Tumbling Window) — запуск с учётом временных окон для обработки потоковых данных.
Интеграционные рантаймы (Integration Runtimes, IR)
Integration Runtime — это вычислительная среда, в которой выполняются действия. Существует три типа IR:
- Azure IR — полностью управляемый облачный рантайм для выполнения копирования и преобразования данных в облаке.
- Self-hosted IR — локальный рантайм, устанавливаемый на сервере в корпоративной сети для доступа к локальным источникам данных.
- Azure-SSIS IR — специальный рантайм для выполнения пакетов SQL Server Integration Services (SSIS) в облаке.
Возможности и функции
Перемещение данных
Azure Data Factory поддерживает копирование данных из более чем 90 встроенных соединителей (connectors), включая реляционные базы данных (SQL Server, Oracle, MySQL, PostgreSQL), облачные хранилища (Azure Blob, Amazon S3, Google Cloud Storage), веб-сервисы (Salesforce, Dynamics 365, SAP) и файловые системы (FTP, SFTP). Действие Copy может работать в режиме полной загрузки, инкрементальной загрузки или с использованием промежуточного хранилища (staging).
Преобразование данных
Трансформация данных может выполняться несколькими способами:
- С помощью Azure Databricks — запуск записных книжек (notebooks) на языке Python, Scala или SQL.
- С помощью Azure HDInsight — выполнение заданий Hive, Pig, MapReduce или Spark.
- С помощью Azure Synapse Analytics — использование бессерверных пулов Spark для трансформации.
- С помощью Mapping Data Flows — визуальный инструмент для создания преобразований без написания кода, работающий на масштабируемых кластерах Spark.
Оркестрация и управление потоком
ADF поддерживает сложные сценарии оркестрации: ветвление, циклы, параллельное выполнение, обработку ошибок и повторные попытки. Это позволяет строить конвейеры, которые адаптируются к различным условиям выполнения.
Мониторинг и журналирование
Сервис предоставляет встроенные средства мониторинга: панель управления с отображением статусов выполнения конвейеров, длительности операций, количества обработанных строк и ошибок. Журналы выполнения могут быть экспортированы в Azure Monitor или Azure Log Analytics для дальнейшего анализа.
Интеграция с Git и DevOps
Azure Data Factory поддерживает интеграцию с Git-репозиториями (Azure Repos, GitHub) для управления версиями конвейеров, наборов данных и связанных служб. Это позволяет командам разработчиков использовать стандартные практики CI/CD: ветвление, слияние, ревью кода и автоматическое развертывание через Azure DevOps.
Применение
Azure Data Factory используется в различных сценариях обработки данных:
Построение хранилищ данных (Data Warehousing)
Организации используют ADF для загрузки данных из операционных систем (ERP, CRM, транзакционные базы данных) в облачные хранилища данных, такие как Azure Synapse Analytics, Snowflake или Google BigQuery. Сервис позволяет выполнять инкрементальную загрузку, дедупликацию и очистку данных.
Создание озёр данных (Data Lakes)
ADF часто применяется для перемещения неструктурированных и полуструктурированных данных (логи, файлы, изображения) в Azure Data Lake Storage. Конвейеры могут автоматически преобразовывать форматы (например, из CSV в Parquet) для оптимизации запросов.
Интеграция данных для аналитики
Сервис используется для подготовки данных для отчётов и панелей мониторинга в Power BI, Tableau или Qlik. Конвейеры могут объединять данные из нескольких источников, выполнять агрегации и загружать готовые наборы в аналитические базы данных.
Миграция данных в облако
При переходе с локальной инфраструктуры на облачную Azure Data Factory помогает перенести исторические данные из SQL Server, Oracle или других систем в Azure. Self-hosted IR обеспечивает безопасное соединение с локальными источниками.
Обработка потоковых данных
Хотя ADF не является потоковым движком в реальном времени, он может интегрироваться с Azure Stream Analytics, Azure Event Hubs и Azure IoT Hub для периодической загрузки и обработки потоковых данных в пакетном режиме.
Ограничения и критика
Несмотря на широкие возможности, Azure Data Factory имеет ряд ограничений:
- Сложность отладки — визуальные конвейеры могут быть трудны для отладки, особенно при большом количестве действий и ветвлений. Ошибки часто требуют анализа JSON-представления конвейера.
- Зависимость от экосистемы Azure — хотя ADF поддерживает сторонние источники, глубокая интеграция с другими облачными провайдерами (AWS, GCP) может быть менее эффективной по сравнению с нативными сервисами.
- Стоимость — затраты на выполнение конвейеров могут быстро расти при большом объёме данных, особенно при использовании Mapping Data Flows, которые требуют выделенных кластеров Spark.
- Ограничения по времени выполнения — максимальное время выполнения одного конвейера составляет 7 дней, что может быть недостаточно для очень больших задач.
- Отсутствие поддержки некоторых форматов — хотя ADF поддерживает большинство популярных форматов, работа с некоторыми специализированными форматами (например, Avro с пользовательскими схемами) может потребовать дополнительных настроек.
Сравнение с альтернативами
Azure Data Factory конкурирует с другими облачными сервисами интеграции данных:
- AWS Glue — сервис Amazon для ETL, предлагает аналогичные возможности, но с более глубокой интеграцией с экосистемой AWS и поддержкой Apache Spark.
- Google Cloud Data Fusion — сервис Google, основанный на проекте с открытым исходным кодом CDAP, предоставляет визуальный интерфейс для построения конвейеров.
- Apache NiFi — инструмент с открытым исходным кодом для автоматизации потоков данных, более гибкий, но требующий самостоятельного развёртывания и администрирования.
- Talend Cloud — коммерческая платформа интеграции данных с поддержкой более 1000 соединителей и возможностью работы в гибридных средах.
Интересные факты
- Azure Data Factory изначально разрабатывался как замена локальному SQL Server Integration Services (SSIS) в облаке. Microsoft предоставляет Azure-SSIS Integration Runtime для миграции существующих пакетов SSIS без изменений.
- Сервис поддерживает более 90 встроенных соединителей, включая такие экзотические, как SAP HANA, Teradata, MongoDB, Cassandra и HDFS.
- Mapping Data Flows, добавленные в ADF V2, позволяют выполнять преобразования данных без написания кода, используя визуальный интерфейс на основе Spark.
- Azure Data Factory может обрабатывать до 10 000 одновременных запусков конвейеров в одной учётной записи, что делает его пригодным для крупных корпоративных сценариев.
Источники
- Microsoft Learn: Azure Data Factory documentation
- Документация Microsoft: What is Azure Data Factory?
- Статья Microsoft Research: «Azure Data Factory: A Cloud Data Integration Service» (2016)
- Книга: «Azure Data Factory by Example» by Richard Swinbank (2020)
- Блог Microsoft Azure: «Announcing Azure Data Factory V2» (2018)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →