[原]数据流编程教程:如何使用Airflow构建数据科学工作流
概述
Airflow 是一个我们正在用的工作流调度器,相对于传统的crontab任务管理,Airflow很好的为我们理清了复杂的任务依赖关系、监控任务执行的情况。我们喜欢它是因为它写代码太容易了,也便于调试、维护和继承重用,而不是像xml那样的配置文件用来描述DAG。
通过SQL和HQL的临时查询,我们还可以快速生成前端图表,而且顺带连数据的API接口也都生成了,这几乎要让的Web开发工程师失业了。
当然Airflow还支持移动端显示,只要收藏页面,我们就可以实现"移动监控"。
功能总览
1. 任务调度系统:DAGs
强大的任务调度与管理
调度代码一览无余
2. 数据剖析
配置 SQL 语句,以及作图的option
图表自动生成
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数据
如果对 API数据自动生成不够满意,还可以轻松地对源代码自行定制。
3. 监控管理
任务日志
任务监控
调度配置化
4. 权限管理
系统配置
用户管理
数据源管理
实战
步骤一:安装Airflow
docker pull airflow
步骤二:修改默认路径
这里如果不修改路径,默认的配置就是 ~/airflow
临时修改 AIRFLOW_HOME 环境变量, 这里的 /home/airflow 可以替换成你想要的文件夹目录
export AIRFLOW_HOME=/home/airflow
永久修改环境变量
echo "export AIRFLOW_HOME=/home/airflow" >> /etc/profilesource /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 的所有.py文件都声明了 utf-8 字符集
# -*- coding: utf-8 -*-
如果需要显示中文,需要在extra选项中添加
{"charset":"utf8"}的配置
参考资料
Airflow 源码
[译] 解密 Airbnb 的数据流编程神器:Airflow 中的技巧和陷阱
Airflow实战
更优阅读体验可直接访问原文地址:https://segmentfault.com/a/1190000005835242
作为分享主义者(sharism),本人所有互联网发布的图文均遵从CC版权,转载请保留作者信息并注明作者 Harry Zhu 的 FinanceR专栏:https://segmentfault.com/blog/harryprince,如果涉及源代码请注明GitHub地址:https://github.com/harryprince。微信号: harryzhustudio
商业使用请联系作者。
关键字:airflow, Python, flask
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!