1.DAG
DAG是Directed Acyclic Graph的缩写,即有向无环图。是所有要执行任务脚本(即task)的集合,这个DAG描述了各个Task的依赖关系,调度时间,失败重启机制等。每个DAG的唯一标识是DAGid。每个DAG由1到多个task组成。
官方解释:
DAGs是一个用户希望执行的所有作业的集合,它定义了所有作业的依赖关系。
例如:一个简单的包含3个任务的DAG:A,B,C。A必须在B执行完毕后才可以执行,C可以在任何时刻执行。任务A在5分钟后超时,并且B可以重新启动最多5次以防它失败。workflow工作流程将在每天晚上10点运行,但不应该在某个特定日期之前开始。
重要的是,DAG并不关心其组成任务的作用;它的工作是确保无论他们做什么在正确的时间,或正确的顺序,或正确处理任何意外的问题。
2.Task
task是具体执行的任务脚本,可以是一个命令行(BashOperator),也可以是python脚本等。
3.Task Instances
一个task实例代表一个task的特定运行,它的特征有:DAG、任务、和时间点。拥有的状态有:running、success、failed、skipped、up for retry等。
4.Operators
dags描述的是怎么去跑一个工作流,operators决定实际做什么,它定义了工作流中每一个task具体做什么事情。
airflow目前有一下几种operator:
BashOperator - 执行bash命令
PythonOperator - 调用任意Python函数
EmailOperator - 发送电子邮件
SimpleHttpOperator - 发送HTTP请求
MySqlOperator,SqliteOperator,PostgresOperator,MsSqlOperator,OracleOperator,JdbcOperator等 - 执行SQL命令
Sensor - 等待一定时间,文件,数据库行,S3键等...
5.Workflow
通过组合dags和operators,你会创建TaskInstances,你可以创建复杂的工作流。
6.default_args
default_args字典传递给DAG,它将把它们应用于任何运算符。这使得很容易将公共参数应用于许多运算符而无需多次键入。
default_args = {
'start_date': datetime(2016, 1, 1),
'owner': 'Airflow'
}
dag = DAG('my_dag', default_args=default_args)
op = DummyOperator(task_id='dummy', dag=dag)
print(op.owner) # Airflow
7.Bitshift Composition(位运算符)
利用>>,<<定义Operators的依赖关系。
op1 >> op2 表示:Op1先执行,Op2后执行。
参考:
1.官网:http://airflow.apache.org
2.gitthub://github.com/apachecn/airflow-doc-zh