[原]數據科學教程:如何使用Airflow調度數據科學工做流

概述

Airflow 是一個咱們正在用的工做流調度器,相對於傳統的crontab任務管理,Airflow很好的爲咱們理清了複雜的任務依賴關係、監控任務執行的狀況。咱們喜歡它是由於它寫代碼太容易了,也便於調試、維護和繼承重用,而不是像xml那樣的配置文件用來描述DAG。html

clipboard.png

經過SQL和HQL的臨時查詢,咱們還能夠快速生成前端圖表,並且順帶連數據的API接口也都生成了,這幾乎要讓的Web開發工程師失業了。前端

固然Airflow還支持移動端顯示,只要收藏頁面,咱們就能夠實現"移動監控"。mysql

clipboard.png

功能總覽

1. 任務調度系統:DAGs

  • 強大的任務調度與管理git

clipboard.png

  • 調度代碼盡收眼底github

clipboard.png

2. 數據剖析

png

  • 配置 SQL 語句,以及做圖的optionweb

  • 圖表自動生成sql

  • API數據自動生成docker

將當前的圖表地址 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數據數據庫

clipboard.png

若是對 API數據自動生成不夠滿意,還能夠輕鬆地對源代碼自行定製。apache

3. 監控管理

  • 任務日誌

clipboard.png

  • 任務監控

clipboard.png

  • 調度配置化

clipboard.png

4. 權限管理

  • 系統配置

clipboard.png

  • 用戶管理

clipboard.png

  • 數據源管理

clipboard.png

實戰

步驟一:安裝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按鈕,添加相應的參數

clipboard.png

步驟五:解決中文字符集顯示問題

注意到 airflow 的全部.py文件都聲明瞭 utf-8 字符集

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

若是須要顯示中文,須要在extra選項中添加
{"charset":"utf8"}的配置

clipboard.png

參考資料

招聘廣告

更優閱讀體驗可直接訪問原文地址:https://segmentfault.com/a/11...
做爲分享主義者(sharism),本人全部互聯網發佈的圖文均聽從CC版權,轉載請保留做者信息並註明做者 Harry Zhu 的 FinanceR專欄:https://segmentfault.com/blog...,若是涉及源代碼請註明GitHub地址:https://github.com/harryprince。微信號: harryzhustudio商業使用請聯繫做者。

相關文章
相關標籤/搜索