Apache AirFlow 2.6: что нового?

Apache AirFlow, очереди задач Apache AirFlow, AirFlow executors, Apache Airflow для дата-инженера, Airflow 2.6 обзор, новинки Apache Airflow, KubernetesExecutor Apache Airflow, обучение Apache Airflow, курсы Airflow, как работает Apache Airflow, исполнители задач Airflow, Школа Больших Данных Учебный Центр Коммерсант

Недавно мы писали про устранение зависших в очереди задач в Apache AirFlow 2.6. Сегодня разберемся с другими новинками этого релиза, которые особенно важны для дата-инженера: настраиваемые поля DAG, добавление собственных уведомлений, управление ресурсами, кластеризация исполнителей Kubernetes и еще множество полезных возможностей.

Главные новинки и исправления весенних выпусков Apache AirFlow в 2023 году

30 апреля 2023 года состоялся официальный выпуск Apache AirFlow 2.6.0. А спустя 2 недели, 16 мая, вышло дополнение 2.6.1. Эти выпуски содержат более 500 коммитов, включая около 40 новых функций, 50 общих улучшений и примерно 50 исправлений ошибок.

Из наиболее значительных изменений этих релизов можно отметить следующие:

  • повышение стабильности и производительности фреймворка, включая снижение потребления памяти, улучшенную обработку ошибок и улучшенную поддержку Python 3.9;
  • настраиваемые поля DAG, что пригодится дата-инженеру, если нужно добавить дополнительную информацию или собственные поля метаданных. К примеру, можно создать настраиваемое поле DAG для хранения информации о том, какие данные используются в конвейере или параметры его запуска. Это пригодится для анализа результатов выполнения DAG и отладки. Настраиваемые поля DAG реализованы с помощью нового класса Python под названием DAGSchema.
  • добавлен новый объект, расширяющий слой добавления уведомлений в DAG. Пользователи могут создавать логику уведомлений из нового базового объекта и вызывать ее непосредственно из своих файлов DAG. Для этого используется абстрактный класс BaseNotifier, предоставляющий базовую структуру для отправки уведомлений в Airflow с использованием различных функций обратного вызова (on_*__callback). Чтобы расширить класс BaseNotifier, нужно создать новый класс-наследник и переопределить в нем метод notify()своей собственной реализацией, которая отправляет уведомление. Этот метод принимает единственный параметр — контекст AirFlow, который содержит информацию о текущей задаче и ее выполнении.
  • в версиях 2.6.0 и 2.6.1 добавлена возможность создания нового ресурса для управления заданиями, чтобы более гибко и эффективно ресурсами в системе. Ресурс для управления заданиями создается с помощью Python-класса BaseExecutor, который позволяет определить новый ресурс для выполнения задач в Apache AirFlow. После определения ресурса его можно использовать его в системе, чтобы контролировать, какие задачи выполняются и на каких ресурсах. Так можно более эффективно использовать ресурсы в системе, снижая нагрузку на каждый ресурс и улучшить общую производительность системы. Например, создать новый ресурс, который будет использовать только определенные типы хранилищ данных.

  • Исполнитель Kubernetes теперь поддерживает кластеризацию, что позволяет распределять задачи между его несколькими экземплярами. Это снижает нагрузку на каждый исполнитель Kubernetes и повышает надежность всей системы.
  • Теперь Kubernetes Pod Operator позволяет управлять ресурсами напрямую из DAG, что также позволяет более эффективно использовать ресурсы и улучшает производительность системы. Этот оператор AirFlow позволяет запускать Docker-контейнеры в Kubernetes-кластере и управлять ими напрямую из DAG. С помощью Kubernetes Pod Operator можно задавать параметры запуска контейнеров, такие как образ, ресурсы и переменные окружения, и контролировать их выполнение, используя стандартные механизмы Apache AirFlow, такие как триггеры и зависимости. Одним из преимуществ использования Kubernetes Pod Operator возможность масштабировать выполнение задач в Kubernetes-кластере. Например, запустить несколько экземпляров контейнеров на разных узлах кластера, чтобы увеличить производительность и обеспечить отказоустойчивость. Также Kubernetes Pod Operator позволяет использовать Kubernetes-ресурсы (Persistent Volume Claims и ConfigMaps) в DAG, упрощая работу с данными и конфигурацией. Для использования Kubernetes Pod Operator необходимо настроить подключение к Kubernetes-кластеру в Apache AirFlow и задать параметры для запуска контейнера в DAG. После этого можно использовать этот оператор в DAG, чтобы запускать контейнеры в Kubernetes-кластере и управлять ими напрямую из DAG.
  • Также в Apache AirFlow 2.6.0 и 2.6.1 улучшена поддержка для Databricks и Snowflake. В частности, была добавлена поддержка для Databricks Delta Lake и Databricks SQL Analytics. Теперь дата-инженер может использовать эти инструменты в DAG для анализа данных и машинного обучения. Также добавлена поддержка для Snowflake External Tables, чтобы работать с данными, которые хранятся во внешних таблицах. А улучшенная поддержка Snowflake OAuth позволяет более безопасно работать с данными в AirFlow.

В заключение отметим наиболее значимые исправления ошибок в Apache AirFlow 2.6.0 и 2.6.1. В частности, исправлена проблема с отображением метаданных в пользовательском интерфейсе. Ранее некоторые метаданные, такие как даты создания и изменения DAG, не корректно отображались в пользовательском интерфейсе фреймворка. Также исправлены проблемы с отображением логов в GUI. Наконец, устранены ошибки с планированием и выполнением задач, включая проблемы с зависимостями, планированием и выполнением задач по расписанию. Для улучшения проверки зависимостей задач исправлены проблемы с циклическими зависимостями, которые могли приводить к зацикливанию и невозможности запуска задач. Теперь зависимости задач определяются более точно, снижая вероятность ошибок при их планировании. Также внесены изменения в код планирования задач, чтобы они не запускались преждевременно или с опозданием.

А что нового появилось в AirFlow версии 2.7, читайте здесь.

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

Я даю свое согласие на обработку персональных данных и соглашаюсь с политикой конфиденциальности.

Источники

  1. https://airflow.apache.org/docs/apache-airflow/2.6.0/release_notes.html
  2. https://airflow.apache.org/blog/airflow-2.6.0/
  3. https://www.astronomer.io/blog/introducing-airflow-2-6/
Поиск по сайту