Airflow DAG

Введение в Apache Airflow на Python

Mike Metzger

Data Engineer

Что такое DAG?

DAG, или направленный ациклический граф:

  • Directed — поток между компонентами отражает зависимости
  • Acyclic — без циклов и повторений
  • Graph — совокупность компонентов

Направленный ациклический граф с узлами, соединёнными однонаправленными стрелками без циклов

Введение в Apache Airflow на Python

DAG в Airflow

  • Пишется на Python (компоненты могут быть на других языках)
  • Состоит из задач: операторов, сенсоров и других
  • Содержит зависимости — явные или неявные
    • Например: скопировать файл на сервер, прежде чем импортировать его в базу данных.

  DAG Airflow из связанных задач с порядком зависимостей между ними

Введение в Apache Airflow на Python

Определение DAG

Пример DAG (Taskflow API):

from airflow.sdk import dag

from pendulum import datetime @dag( dag_id='etl_workflow', email='[email protected]', start_date=datetime(2026, 3, 15, tz="UTC") )
def etl_workflow(): ...
etl_workflow()
Введение в Apache Airflow на Python

DAG в командной строке

 

  • Команда airflow содержит множество подкоманд
  • airflow -h — справка и описание подкоманд

 

  • Подкоманды для DAG

    • airflow dags list — список всех распознанных DAG
    • airflow dags reserialize — принудительная перезагрузка файлов DAG
    • airflow tasks test — запуск отдельной задачи
Введение в Apache Airflow на Python

Командная строка и Python

Инструмент командной строки используется для:

  • Запуска процессов Airflow
  • Ручного запуска DAG и задач
  • Получения журналов Airflow

Терминал с запущенным инструментом командной строки Airflow

Python используется для:

  • Создания DAG
  • Настройки свойств DAG

Иллюстрация кода Python

Введение в Apache Airflow на Python

Давайте потренируемся!

Введение в Apache Airflow на Python

Preparing Video For Download...