Airflow核心概念理解

Airflow中的DAG是有向无环图,定义了任务的依赖关系和调度规则。Task是执行的具体任务脚本,Task Instances表示任务的特定运行状态。Operators如BashOperator和PythonOperator负责执行操作,而Workflow通过组合DAG和Operators构建复杂工作流。default_args用于设置DAG中运算符的默认参数,位运算符(如>>、<<)定义任务间的依赖顺序。
摘要由CSDN通过智能技术生成

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

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值