Airflow DAG(有向无环图)是用于定义和调度工作流的一种方式。在Airflow中,DAG是由一组任务(task)和它们之间的依赖关系组成的。
在函数中使用Airflow DAG有以下几个步骤:
from airflow import DAG
from airflow.operators.python_operator import PythonOperator
from datetime import datetime
def my_function():
# 在这里编写任务的逻辑
print("Hello, Airflow!")
default_args = {
'owner': 'airflow',
'start_date': datetime(2021, 1, 1)
}
dag = DAG('my_dag', default_args=default_args, schedule_interval='@daily')
其中,default_args是一个包含DAG的默认参数的字典,start_date指定了DAG的开始日期,schedule_interval指定了DAG的调度间隔。
task = PythonOperator(
task_id='my_task',
python_callable=my_function,
dag=dag
)
其中,task_id是任务的唯一标识符,python_callable是要执行的函数,dag是要添加到的DAG对象。
dag.cli()
完整示例代码如下:
from airflow import DAG
from airflow.operators.python_operator import PythonOperator
from datetime import datetime
def my_function():
print("Hello, Airflow!")
default_args = {
'owner': 'airflow',
'start_date': datetime(2021, 1, 1)
}
dag = DAG('my_dag', default_args=default_args, schedule_interval='@daily')
task = PythonOperator(
task_id='my_task',
python_callable=my_function,
dag=dag
)
dag.cli()
当DAG被调度时,my_function函数将被执行,并输出"Hello, Airflow!"。