Мы уже писали про преимущества разделения пакетов в Apache AirFlow 2.0. Сегодня рассмотрим, как открытый реестр Python-пакетов от компании Astronomer облегчает разработку конвейеров обработки данных, чем провайдеры отличаются от модулей и насколько удобно дата-инженеру всем этим пользоваться.
От монолита к мульти-пакетной архитектуре в Apache Airflow 2.0
Напомним, во 2-ой версии Apache AirFlow ранее существовавшая монолитная архитектура фреймворка разделена на пакеты:
- core – которые относятся к ядру системы;
- отделенные от ядра операторы Google, Amazon, AWS, Postgres, HTTP и прочие провайдеры (provider), каждый из которых упакован в отдельный пакет с полностью контролируемыми и задокументированными зависимостями. Например, apache-airflow-provider-amazon или apache-airflow-provider-google.
Такое отделение тематических провайдеров от ядра упрощает развертывание, тестирование и обновление как точечных компонентов, так и всей системы в целом. Таким образом, теперь разработчику data pipeline’а совсем необязательно полностью писать собственный конвейер, а можно воспользоваться готовыми решениями, по необходимости адаптировав их к особенностям своей инфраструктуры. Некоторые пакеты провайдеров поставляются автоматически при обновлении Airflow или установке дополнений, а что-то требуется искать [1]. Чтобы облегчить работу-дата-инженера в этом отношении, компания Astronomer, которая популяризирует и коммерциализирует Apache AirFlow, в марте 2021 года собрала все пакеты провайдеров в одном месте – реестре Astronomer Registry [2]. Что именно представляет собой этот реестр и как им пользоваться, мы рассмотрим далее. А как написать собственный провайдер, читайте здесь.
Data Pipeline на Apache Airflow
Код курса
AIRF
Ближайшая дата курса
2 июня, 2025
Продолжительность
24 ак.часов
Стоимость обучения
72 000 руб.
Что такое Astronomer Registry и зачем он нужен дата-инженеру
Реестр провайдеров AirFlow от Astronomer – это открытый каталог пакетов для решения конкретных задач средствами этого фреймворка. Например, SnowflakeOperator выполняет SQL-код в базе данных Snowflake, VaultBackend — извлекает связи и переменные из Hashicorp Vault для надежного управления секретами, а EmrJobFlowSensor от AWS запрашивает состояние потока заданий EMR-кластера до достижения целевого состояния. Это примеры модулей, которые могут быть объединены в более крупные компоненты – провайдеры. В частности, apache-airflow-providers-google для всех сервисов Google содержит пространства имен и модули Google Cloud, Google Ads, GSuite и прочих облачных служб этого поставщика. Чтобы облегчить навигацию по всем этим компонентам, в Astronomer Registry они разделены следующим образом [2, 3]:
- провайдеры – Python-пакеты верхнего уровня, которые пользователи загружают для взаимодействия с конкретным сервисом, включающие все необходимые модули внешней службы, например, Google, AWS, MS Azure.
- модули – определенные части пакетов провайдеров, которые можно импортировать и использовать в DAG или в файле конфигурации Airflow: операторы, датчики (сенсоры), хуки (hooks) и прочие элементы, расширяющие возможности фреймворка.
На начало августа 2021 года в Astronomer Registry представлено 76 провайдеров, почти 800 модулей и 200 DAG’ов. Модули каждого провайдера маркированы по типу: операторы, хуки, трансферы, датчики, логи и секреты. По каждому модулю можно посмотреть следующую информацию:
- краткое описание;
- сведения о поставщике;
- дата последнего обновления;
- ссылка на Github;
- примеры кода;
- графическое отображением DAG;
- инструкция по запуску DAG;
- параметры и их рекомендуемые значения;
- команда развертывания в локальной среде, например, pip install apache-airflow-providers-hashicorp.
Поскольку все модули представляют собой Python-пакеты, они устанавливаются через всем знакомый менеджер pip. В Astronomer Registry для удобства пользователя команда установки вынесена в отдельное поле.
Таким образом, открытый реестр консолидирует всю информацию для начала работы с пакетом провайдера и его модулями, включая инструкции доступа, позволяя пользователям быстро понять, как это применяется в контексте DAG. Это дает следующие преимущества:
- развитие Airflow через упрощение взаимодействия с сообществом — любая компания или отдельно взятый разработчик DAG может опубликовать свой пакет провайдера или модуля в открытом доступе;
- ускорение разработки data pipeline’ов – благодаря удобному структурированию информации и поиску по поставщикам и модулям находить и внедрять нужные решения можно практически мгновенно, не тратя часы на чтение исходного кода.
- популяризация продуктов от провайдеров – представление их возможностей в контексте ETL/ELT и других batch-процессов, которые поддерживает AirFlow, расширяет известность поставщика услуги, информируя дата-инженеров о способах решения прикладных задач с помощью предлагаемых продуктов.
Компания Astronomer планирует и дальше развивать этот открытый и бесплатный реестр. Для enterprise-сценариев будет выпущена его приватная версия для отдельных команд. Ожидается, что Private Registry будет поддерживать аутентификацию, чтобы пользователи могли публиковать внутренние пакеты и делиться ими только с командой [3]. Читайте в нашей новой статье, как можно скачать из этого открытого реестра пакет для профилирования данных Great Expectations и использовать его совместно с Apache AirFlow в конвейерах обеспечения Data Quality.
Data Pipeline на Apache Airflow
Код курса
AIRF
Ближайшая дата курса
2 июня, 2025
Продолжительность
24 ак.часов
Стоимость обучения
72 000 руб.
Узнайте больше подробностей про практическое использование Apache AirFlow для разработки сложных конвейеров аналитики больших данных с Hadoop и Spark на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве: