主要内容
搭建 airflow 的目的还是为了使用,使用离不开各种 Operators,本文主要介绍以下几点
1. Operators 简介
Operators 允许生成特定类型的任务,这些任务在实例化时成为 DAG 中的任务节点。所有的 Operator 均派生自 BaseOperator,并以这种方式继承许多属性和方法。
Operator 主要有三种类型:
- 执行一项操作或在远程机器上执行一项操作。
- 将数据从一个系统移动到另一个系统
- 类似传感器,是一种特定类型 Operator,它将持续运行,直到满足某种条件。例如在 HDFS 或 S3 中等待特定文件到达,在 Hive 中出现特定的分区或一天中的特定时间,继承自 BaseSensorOperator。
2. BaseOperator 简介
所有的 Operator 都是从 BaseOperator 派生而来,并通过继承获得更多功能。这也是引擎的核心,所以有必要花些时间来理解 BaseOperator 的参数,以了解 Operator 基本特性。
先看一下构造函数的原型:
class airflow.models.BaseOperator(task_id, owner='Airflow', email=None, email_on_retry=True, email_on_failure=True, retries=0, retry_delay=datetime.timedelta(0, 300), retry_exponential_backoff=False, max_retry_delay=None, start_date=None, end_date=None, schedule_interval=None, depends_on_past=False, wait_for_downstream=False, dag=None, params=None, default_args=None, adhoc=False, priority_weight=1, weight_rule=u'downstream', queue='default', pool=None, sla=None, execution_timeout=None, on_failure_callback=None, on_success_callback=None, on_retry_callback=None, trigger_rule=u'all_success', resources=None, run_as_user=None, task_concurrency=None, executor_config=None, inlets=None, outlets=None