ТОП-7 практик работы с DAG в Apache AirFlow для дата-инженера

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

Чтобы сделать наши курсы для дата-инженеров еще более интересными, сегодня рассмотрим несколько лучших практик разработки DAG в Apache AirFlow, а также поговорим про операторы, которые обеспечивают повторное использование и настраиваемый запуск задач в конвейере обработки данных.

Еще 7 полезных практик работы с Apache AirFlow для дата-инженера

В дополнению к тегированию DAG, о чем мы говорили прошлый раз, следующие рекомендации помогут дата-инженеру более эффективно эксплуатировать Apache AirFlow при проектировании конвейеров обработки данных:

  • использование словаря default_args позволяет указать аргументы по умолчанию для DAG, включая дату начала и частоту запуска, чтобы избежать жесткого кодирования этих значений и упростить их изменение в будущем;
  • шаблонизация DAG может сделать их разработку более гибкой, позволяя избежать повторного написания одинакового кода;
  • встроенные операторы AirFlow отлично подходят для выполнения общих задач, таких как выполнение SQL-запроса или передача данных между системами. Это позволяет избежать написания пользовательского кода и сделать DAG более удобными в сопровождении;
  • функции ветвления и запуска AirFlow упрощают создание сложных рабочих процессов, позволяя создавать DAG с несколькими ветвями и зависимостями без усложнения управления этим конвейером;
  • встроенная интеграция AirFlow с Git помогает отслеживать изменения в DAG и реализует совместную работу дата-инженеров в разных командах;
  • встроенные функции ведения журналов и мониторинга AirFlow пригодятся, чтобы отслеживать DAG, устранять возникающие проблемы с конвейером обработки данных и быстро их исправлять.

Отдельно стоит сказать про некоторые операторы AirFlow, которые также пригодятся дата-инженеру. Это рассмотрим далее.

10 полезных операторов для дата-инженера

В Apache AirFlow есть множество операторов, которые реализуют задачи в DAG. Использование этих операторов позволяет быстро реализовать нужный конвейер обработки данных из готовых блоков, подобно конструктору. В частности, оператор ShortCircuitOperator может предотвратить выполнение нижестоящих задач, если вышестоящие задачи не завершились успешно. Это поможет избежать проблем с неполными данными, а также сэкономить время и ресурсы. Подробнее про ShortCircuitOperator читайте в нашей новой статье. Оператор BranchPythonOperator пригодится для создания условного ветвления в DAG, позволяя указать разные пути для конвейера в зависимости от результатов определенных задач.

Чтобы разбить DAG на более мелкие части, которые можно использовать повторно, дата-инженер может использовать SubDagOperator, а для запуска нижестоящих задач на основе выполнения задач в других DAG — CrossDownstreamTriggerOperator.

Аргумент пула поможет указать, на каких рабочих узлах должна выполняться задача, чтобы оптимизировать производительность DAG, обеспечив выполнение задач на соответствующих ресурсах. А аргумент on_failure_callback пригодится, чтобы указать функцию, которая должна вызываться при сбое задачи, например, чтобы генерировать и рассылать оповещения дата-инженерам, когда в конвейере обработки данных что-то пойдет не так. Здесь же следует упомянуть EmailOperator, который нужен для отправки уведомлений о статусе DAG. Если нужно отправлять уведомления не по электронной почте, а в канал корпоративного мессенджера Slack, подойдет SlackOperator.

SimpleHttpOperator используется для отправки HTTP-запросов к DAG, что полезно для взаимодействия с внешними API или службами в рамках конвейера. Оператор MySqlOperator пригодится для выполнения SQL-запросов к популярной реляционной СУБД MySQL, а S3KeySensor поможет дождаться записи определенного файла в облачное объектное хранилище AWS S3 перед запуском последующих задач в зависимости от наличия новых данных. Здесь же стоит упомянуть про S3PrefixSensor, который нужен, чтобы дождаться появления определенного префикса в S3, прежде чем приступить к последующим задачам. Это тоже полезно для запуска задач на основе доступности группы связанных файлов.

В заключение отметим BranchDateTimeOperator, который может запустить DAG по разным путям в зависимости от пользовательских условий с привязкой ко времени, датам а также успешности выполнения задач, используя параметры follow_task_ids_if_true и follow_task_ids_if_false. Читайте в нашей новой статье про управление задачами в DAG AirFlow. А здесь мы разбираем пример создания своего пользовательского оператора.

Про мой личный топ советов для начинающих дата-инженеров по работе с Apache AirFlow  я рассказываю здесь.

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

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

Источники

  1. https://blog.brilliantprogrammer.com/best-way-to-write-airflow-dags-e81d6a959806
  2. https://medium.com/@jasdevxsingh/delegating-decisions-to-your-dag-with-the-branchdatetimeoperator-a-light-hearted-guide-c7309b2044aa
  3. https://airflow.apache.org/docs/apache-airflow/stable/howto/operator/datetime.html

Поиск по сайту