活動主辦單位: Taiwan Data Science Meetup 台灣資料科學社群
在程式上線後,資料科學家會遇到很多自動化和維運的問題,因此國泰的資料工程師分享了可能遇到的幾個痛點,以及如何使用 Airflow 找到相應的解決辦法,了解自動排程工作,並學會如何處理數據的工作流,完成數據專案自動化。
講者曾晴為國泰的數據工程師,專精於資料處理,與自動化工程的開發和專案設計。
講者介紹
大部分的專案在部署上線後,重心就會放在自動化和維運,確保程式正常運行。像是,如果公司在每個月的月初會產生一張新的資料報表,就會需要確保程式也會在每個月的某個日期同時做更新。
專案流程圖
但在自動化和維運的過程中卻可能出現很多問題,以下分為四個痛點做說明。
因此 Airflow 變成資料科學家常使用的工具,幫助監控自動化的程式。
Airflow 是一個從 Airbnb 誕生並開源,以 Python 寫成的工作流程管理系統(Workflow Management System),被用來建構可靠的 ETL 以及定期處理批量資料。
在 Airflow Web UI 首頁,會顯示所有的工作流程的狀況,全名稱作有向無環圖(DAG)。「有向」代表它會由上游開始執行每個工作,「無環」代表上游工作做完會到下游,但下游做完不會回上游。簡言之,我們可以把 DAG 想成專案流程圖,描述不同任務間上下游的關係和啟動順序。而以下的燈號就代表了每個工作的運行狀態。
Airflow 介面
如果把 DAG 改成圖表示圖(Graph View),就可以看到工作們視覺化後的流程圖。只要把 Python 的檔案部署到 Airflow 就會產生以下流程圖,和每個工作的狀態。
Airflow 圖表圖示圖(Graph View)
我們也可以看跨時間看 DAG 樹狀圖(Tree View),了解每天執行的情況,如果看到紅燈,可以點進去查找任務產生的 log。
Airflow 樹狀圖(Tree View)& Log
另外,Airflow 也可以寄發工作執行成功、失敗的通知信,用 html 做設計。
Airflow 自動化通知信
以下是設定 DAG 的範例程式。我們可以看到工作流程為,先執行 t1,執行完後執行 t2 和 t3。
Airflow 範例程式
他們有 70–80 張來源表進行運算,讓所有功能全自動執行,像是可以用 Airflow 判斷-資料來源有沒有問題。金融業規定嚴格,不一定能讓工程師隨時進去系統查找問題,因此 Airflow 降低了維運的成本。
Airflow 案例應用
此外,Airflow 適合有步驟性或是執行邏輯複雜的專案,完成具有相依性的工作。譬如要完成 E 就得先完成 B 和 C,想完成 F 則是要完成 D 。
工作流程圖範例
Q1:在架設 Airflow 的過程有遇到哪些問題? 是否評估過使用其他自動化工具?
Q2:使用 Airflow 和團隊人數有關嗎?有沒有特別適合的團隊大小?
Q3:要怎麼開始使用 Airflow 呢?
筆手:Esther Yang
👉 歡迎加入台灣資料科學社群,有豐富的新知分享以及最新活動資訊喔!