В помощь дата-инженеру: 3 главных плюса реестра провайдеров Apache Airflow от Astronomer

Автор Категория ,
В помощь дата-инженеру: 3 главных плюса реестра провайдеров Apache Airflow от Astronomer

Мы уже писали про преимущества разделения пакетов в 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]. Что именно представляет собой этот реестр и как им пользоваться, мы рассмотрим далее.

Что такое 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].

Узнайте больше подробностей про практическое использование Apache AirFlow для разработки сложных конвейеров аналитики больших данных с Hadoop и Spark на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:

Источники

  1. http://airflow.apache.org/docs/apache-airflow-providers/
  2. https://registry.astronomer.io/
  3. https://www.astronomer.io/blog/astronomer-registry