资讯专栏INFORMATION COLUMN

[原]数据科学教程:如何使用Airflow调度数据科学工作流

v1 / 2509人阅读

摘要:概述是一个我们正在用的工作流调度器,相对于传统的任务管理,很好的为我们理清了复杂的任务依赖关系监控任务执行的情况。步骤三修改默认数据库找到配置文件修改配置注意到,之前使用的的方式是行不通的。微信号商业使用请联系作者。

概述

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

docker pull airflow

如果通过 pip

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 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 的所有.py文件都声明了 utf-8 字符集

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

如果需要显示中文,需要在extra选项中添加
{"charset":"utf8"}的配置

参考资料

Airflow 源码

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

Airflow实战

Advanced Airflow

CSDN: airflow详解

Work Flow Management for Big Data: Guide to Airflow

Airflow agari

Agari使用Airbnb的Airflow实现更智能计划任务的实践

工作流调研 oozie vs azkaban

Oozie Demo WorkFlow

招聘广告

mobike 招聘 BI数据产品经理

mobike 招聘 Data Scienctist

mobike 招聘 大数据平台架构师 Data Architect

更优阅读体验可直接访问原文地址:https://segmentfault.com/a/11...
作为分享主义者(sharism),本人所有互联网发布的图文均遵从CC版权,转载请保留作者信息并注明作者 Harry Zhu 的 FinanceR专栏:https://segmentfault.com/blog...,如果涉及源代码请注明GitHub地址:https://github.com/harryprince。微信号: harryzhustudio
商业使用请联系作者。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/38048.html

相关文章

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

    摘要:显然,这单独执行不起作用这将通过子操作符被作为像是自己的调度任务中那样运行。子也必须有个可用调度即使子作为其父的一部分被触发子也必须有一个调度如果他们的调度是设成,这个子操作符将不会触发任何任务。这两个例子都是缘起子操作符被当做了回填工作。 showImg(https://segmentfault.com/img/remote/1460000006768714); 前言 Airbnb的...

    zsy888 评论0 收藏0
  • 数据科学部门如何使用Python和R组合完成任务

    摘要:数据科学项目的完整流程通常是这样的五步骤需求定义数据获取数据治理数据分析数据可视化一需求定义需求定义是数据科学项目和数据科学比赛的最大不同之处,在真实情景下,我们往往对目标函数自变量约束条件都并不清晰。 概述 和那些数据科学比赛不同,在真实的数据科学中,我们可能更多的时间不是在做算法的开发,而是对需求的定义和数据的治理。所以,如何更好的结合现实业务,让数据真正产生价值成了一个更有意义的...

    Apollo 评论0 收藏0
  • [] 深入对比数据科学工具箱:Python 和 R 的异常处理机制

    摘要:对于异常机制的合理运用是直接关系到码农饭碗的事情所以,本文将具体介绍一下和的异常处理机制,阐明二者在异常处理机制上的异同。下面将具体介绍二者的异常处理机制。 概述 showImg(https://segmentfault.com/img/remote/1460000006760426); 异常处理,是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正...

    FreeZinG 评论0 收藏0
  • ApacheCN 学习资源汇总 2019.3

    摘要:主页暂时下线社区暂时下线知识库自媒体平台微博知乎简书博客园合作侵权,请联系请抄送一份到特色项目中文文档和教程与机器学习实用指南人工智能机器学习数据科学比赛系列项目实战教程文档代码视频数据科学比赛收集平台,,剑指,经典算法实现系列课本课本描述 【主页】 apachecn.org 【Github】@ApacheCN 暂时下线: 社区 暂时下线: cwiki 知识库 自媒体平台 ...

    array_huang 评论0 收藏0
  • ApacheCN 学习资源汇总 2019.3

    摘要:主页暂时下线社区暂时下线知识库自媒体平台微博知乎简书博客园合作侵权,请联系请抄送一份到特色项目中文文档和教程与机器学习实用指南人工智能机器学习数据科学比赛系列项目实战教程文档代码视频数据科学比赛收集平台,,剑指,经典算法实现系列课本课本描述 【主页】 apachecn.org 【Github】@ApacheCN 暂时下线: 社区 暂时下线: cwiki 知识库 自媒体平台 ...

    Prasanta 评论0 收藏0

发表评论

0条评论

v1

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<