DAGS
DAG是一个由n( n ⩾ 1 n\geqslant1 n⩾1)个task构成的有向无环图。它记录了任务之间的逻辑关系,调度时间,任务状态等等。
Default Arguments
以字典的形式将参数传入DAG中。官方文档1中将参数统一放置于default_args中,其适用于任意实例化运算符。
DAG Runs
它是DAG的实例化,是具有特性执行时间(execution_date)的任务实例,通过airflow scheduler来创建。
execution_date
execution_date是DAG运行及其任务实例运行的逻辑时间。该时间可以是过去也可以是将来的某一个时间。
Operators
operators决定了每个任务的完成情况,它定义了每一个task执行的具体内容。
常见的operators有如下:
- BashOperator: 执行Bash命令
- PythonOperator: 执行Python脚本
- EmailOperator: 发送电子邮件
- SimpleHttpOperator: 发送简单的Http请求
- SqliteOperator: sqlite数据库操作
Tasks
Tasks作为DAGs中的一个节点,它是operators中的一个实例。可以执行某段Pyhon代码,也可以执行某个Bash命令。每个任务之间都有相应的依赖关系。例如:
t1 >> [t2, t3]
# 等同于
t2.set_upstream(t1)
t3.set_upstream(t1)
or
t1.set_downstream(t2)
t1.set_downstream(t3)
上述示例中表明,任务2依赖于任务1;任务3依赖于任务1。
Task Instances
它是tasks的实例。每个实例都有指示性状态,有 “运行”, “成功”, “失败”, “跳过”, “等待重试”等。