DAG - концепция аналогичная в Luigi, ориентированный ациклический граф
import datetime from airflow import DAG from airflow.operators.empty import EmptyOperator with DAG( dag_id="my_dag_name", start_date=datetime.datetime(2021, 1, 1), schedule="@daily", ): EmptyOperator(task_id="task")
import datetime from airflow import DAG from airflow.operators.empty import EmptyOperator my_dag = DAG( dag_id="my_dag_name", start_date=datetime.datetime(2021, 1, 1), schedule="@daily", ) EmptyOperator(task_id="task", dag=my_dag)
import datetime from airflow.decorators import dag from airflow.operators.empty import EmptyOperator @dag(start_date=datetime.datetime(2021, 1, 1), schedule="@daily") def generate_dag(): EmptyOperator(task_id="task") # Operator that does literally nothing. generate_dag()
Список основных операторов и хуков в Airflow
Самые популярные операторы:
first_task >> [second_task, third_task] third_task << fourth_task
Можно задать зависимости еще одним способом.
first_task.set_downstream([second_task, third_task]) third_task.set_upstream(fourth_task)
Покажем как мог бы выглядеть тот же Tf-IDF пайплайн в Airflow
Плюсы
Минусы