转载

[原]数据流编程教程:如何使用Airflow构建数据科学工作流

概述

Airflow 是一个我们正在用的工作流调度器,相对于传统的crontab任务管理,Airflow很好的为我们理清了复杂的任务依赖关系、监控任务执行的情况。我们喜欢它是因为它写代码太容易了,也便于调试、维护和继承重用,而不是像xml那样的配置文件用来描述DAG。

通过SQL和HQL的临时查询,我们还可以快速生成前端图表,而且顺带连数据的API接口也都生成了,这几乎要让的Web开发工程师失业了。

功能总览

1. 任务调度系统:DAGs

  • 强大的任务调度与管理

[原]数据流编程教程:如何使用Airflow构建数据科学工作流

  • 调度代码一览无余

[原]数据流编程教程:如何使用Airflow构建数据科学工作流

2. 数据剖析

[原]数据流编程教程:如何使用Airflow构建数据科学工作流

  • 配置 SQL 语句,以及作图的option

[原]数据流编程教程:如何使用Airflow构建数据科学工作流

  • 图表自动生成

[原]数据流编程教程:如何使用Airflow构建数据科学工作流

  • API数据自动生成

将当前的图表地址 http://localhost:8080/admin/airflow/chart?chart_id=2&iteration_no=40
替换成 http://localhost:8080/admin/airflow/chart_data?chart_id=2&iteration_no=40 即可返回json数据

[原]数据流编程教程:如何使用Airflow构建数据科学工作流

如果对 API数据自动生成不够满意, 还可以轻松地对源代码自行定制。

3. 监控管理

  • 任务日志

[原]数据流编程教程:如何使用Airflow构建数据科学工作流

  • 任务监控

[原]数据流编程教程:如何使用Airflow构建数据科学工作流

  • 调度配置化

[原]数据流编程教程:如何使用Airflow构建数据科学工作流

4. 权限管理

  • 系统配置

[原]数据流编程教程:如何使用Airflow构建数据科学工作流

  • 用户管理

[原]数据流编程教程:如何使用Airflow构建数据科学工作流

  • 数据源管理

[原]数据流编程教程:如何使用Airflow构建数据科学工作流

实战

步骤一:安装Airflow

docker pull airflow

步骤二:修改默认路径

这里如果不修改路径,默认的配置就是 ~/airflow

临时修改 AIRFLOW_HOME 环境变量, 这里的 /home/airflow 可以替换成你想要的文件夹目录

export AIRFLOW_HOME=/home/airflow

永久修改环境变量

echo "export AIRFLOW_HOME=/home/airflow" >> /etc/profile source /etc/profile

系统默认的配置文件是从 airflow包的 configuration.py 文件中获取的,在设置了路径和 airflow.cfg 之后,配置将由 airflow.cfg 所替代。

步骤三:修改默认数据库

找到配置文件

vi /home/airflow/airflow.cfg

修改sql配置

sql_alchemy_conn = mysql://root:FinanceR@localhost:3306/airflow

注意到,之前使用的 mysql+driver://root:FinanceR@localhost:3306/airflow 的方式是行不通的。

初始化服务器的数据库

airflow initdb
airflow webserver

就可以开启后台管理界面,默认访问 localhost:8080 即可。

步骤四:修改数据源配置

通过 create 按钮,添加相应的参数

[原]数据流编程教程:如何使用Airflow构建数据科学工作流

步骤五:解决中文字符集显示问题

注意到 airflow 的所有.py文件都声明了 utf-8 字符集

# -*- coding: utf-8 -*-

如果需要显示中文,需要在 extra 选项中添加

{"charset":"utf8"} 的配置

[原]数据流编程教程:如何使用Airflow构建数据科学工作流

参考资料

  • Airflow 源码

  • [译] 解密 Airbnb 的数据流编程神器:Airflow 中的技巧和陷阱

  • Airflow实战

原文  https://segmentfault.com/a/1190000005835242
正文到此结束
Loading...