airflow入门

这是个啥?

“一个平台,一个管理任务流程的任务调度工具。”

使用python编写的一个平台,用来author、schedule和monitor workflows.
Airflow is a platform to programmatically author, schedule and monitor workflows.

Airflow 是通过 DAG(Directed acyclic graph 有向无环图)来管理任务流程的任务调度工具,不需要知道业务数据的具体内容,设置任务的依赖关系即可实现任务调度。

装一下官网上的东西试试

https://airflow.apache.org/docs/apache-airflow/stable/start/local.html

  • 用的是pip install装
  • 默认端口是8080,修改配置在$AIRFLOW_HOME/airflow.cfg
  • 本地启动时,用的命令是airflow standalone, 在生产环境中,不要带standalone

DAG是啥

DAG (Directed acyclic graph )中的每个节点都是一个任务,DAG 中的边表示的是任务之间的依赖(强制为有向无环,因此不会出现循环依赖,从而导致无限执行循环)。

Airflow 在 ETL 上的实践

(ETL的介绍见另一篇)ETL 一词较常用在数据仓库,Airflow 在解决 ETL 任务各种依赖问题上的能力恰恰是我们所需要的。

airflow pipeline的本质是什么?

a Python script that happens to define an Airflow DAG object.

代码里的体现:from airflow import DAG

Airflow 核心概念

  • DAGs:即有向无环图(Directed Acyclic Graph),将所有需要运行的tasks按照依赖关系组织起来,描述的是所有tasks执行顺序。
  • Operators:(我感觉就是一些内置方法。。)可以简单理解为一个class,描述了DAG中某个的task具体要做的事。
  • Tasks:Task 是 Operator的一个实例,也就是DAGs中的一个node。
  • Task Instance:task的一次运行。Web 界面中可以看到task instance 有自己的状态,包括"running", “success”, “failed”, “skipped”, "up for retry"等。
  • Task Relationships:DAGs中的不同Tasks之间可以有依赖关系,如 Task1 >> Task2,表明Task2依赖于Task2。
    通过将DAGs和Operators结合起来,用户就可以创建各种复杂的 工作流(workflow)。

operators

  • BashOperator - 执行 bash 命令或脚本。
  • SSHOperator - 执行远程 bash 命令或脚本(原理同 paramiko 模块)。
  • PythonOperator - 执行 Python 函数。
  • EmailOperator - 发送 Email。
  • HTTPOperator - 发送一个 HTTP 请求。
  • MySqlOperator, SqliteOperator, PostgresOperator, MsSqlOperator, OracleOperator, JdbcOperator, 等,执行 SQL 任务。
  • DockerOperator, HiveOperator, S3FileTransferOperator, PrestoToMysqlOperator, SlackOperator 你懂得。
  • 除了以上这些 Operators 还可以方便的自定义 Operators 满足个性化的任务需求。

使用时区时注意

Creating a time zone aware DAG is quite simple. Just make sure to supply a time zone aware dates using pendulum. Don’t try to use standard library timezone as they are known to have limitations and we deliberately disallow using them in DAGs.

import pendulum
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值