iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0

不瞞大家,這幾天其實我在日本旅遊當中,所以鐵人賽對我來說真的是很鍛鍊啊!每天有很多行程之外,結束後還是要抓緊時間寫文章,真的是極度瘋狂!但是這過程中卻也覺得十分充實,我想這就是人性的奇妙之處吧。附上昨天去了很令我震撼的哈利波特園區裡面的餐廳照片,分享給大家。

https://ithelp.ithome.com.tw/upload/images/20230926/20140477wbroZskbeK.jpg

我覺得學習程式也像是在學習魔法一樣,透過不斷的學習和練習,讓自己的技能變得嫻熟,之後就已使用所學的幫助自己處理許多的事物,甚至是達成許多想做的事!那接下來我們在系列文章也進入第二階段,本系列的總主題叫做『Data pipeline 建起來!用 Airflow 開發你的 Data pipeline』,在上一階段當中有提到許多種 Data pipeline的工具,而這系列我們主要想要使用 Airflow 進行開發的相關介紹,不過希望透過了解 Airflow 的架構以及開發流程等知識,未來不論使用何種工具,都能把一些概念加入自己的開發當中!這個階段主要是要介紹Airflow以及帶領大家了解學習 Airflow 的基本概念。在今天我們首先來熟悉了解一下 Airflow !

https://ithelp.ithome.com.tw/upload/images/20230922/20140477Pnk77E7SOd.png

什麼是 Airflow

Apache Airflow 是一個開源的Data pipeline管理工具,最開始是由 Airbnb 公司開始發起。當時,Airbnb 面臨了資料處理和工作流管理的挑戰,因此開始開發內部工具以解決這些問題。透過建造Airflow,Airbnb能夠以編程方式編寫和安排工作流程,並通過內置的Airflow用戶界面進行監控。

從一開始 Airflow 項目就是開源的,並於2016年成為 Apache 孵化器項目,於2019年成為Apache軟件基金會的頂級項目。現今也廣泛被運用於Data pipeline 的開發及管理。

Airflow 使用 Python 進行開發,工作流程通過 Python 腳本創建。Airflow設計遵循 “Workflows as code” 的原則。Airflow 框架包含用於連接多種技術的操作器,並且易於擴展以連接新技術。如果工作流程有清晰的開始和結束點,並且以定期間隔運行,則可以編寫成為 Airflow DAG (會於明天講解DAG)執行。

為什麼要使用 Airflow

每種工具有它的特色和特性,在我們選用時會需要對工具進行一定程度的研究。因為對於開發團隊來說,選擇的工具會牽動著整個團隊的開發維運方式及節奏。Airflow 擁有以下的特性:

  • 可程式化的工作流定義: Airflow 允許用戶通過Python 程式定義工作流,使工作流程程式化且易於管理。
  • 豐富的資源庫: Airflow 提供了各種預先定義的模組,可以輕鬆的建立 Data pipeline。
  • 可擴展性和彈性: 支持高度可擴展的架構,可以應對不同規模的工作負載。
  • 可視化和監控: Airflow 提供了直觀的用戶界面,可以用於監控工作流執行情況,並支持日誌記錄和警報功能。
  • 強大的社區支持: 由於其開源性質,Airflow 擁有廣泛的用戶和貢獻者社區,也持續的在進行開發優化。

在下圖中有比較了許多 Data pipeline 工具,Airflow 的優勢在於其多元性,在平台中能做到排程、監控也擁有良好的使用者介面能夠供使用者使用。
https://ithelp.ithome.com.tw/upload/images/20230922/201404771LAPTrC4P8.png
圖片來源:

為什麼不要使用 Airflow

Airflow 主要是為了處理 Batch (批次) 工作而建的,如果遇到 Streaming 的需求,並不推薦使用 Airflow 開發 Data pipeline。
另外如果團隊不太喜歡開發程式,而更喜歡用點擊或見面處理任務的話,那 Airflow 也不會是最佳選擇,因為Airflow 的哲學是 "Workflows as code" ,因此基本上都會需要透過程式進行開發和操作。

Reference:
https://en.wikipedia.org/wiki/Apache_Airflow
https://airflow.apache.org/docs/apache-airflow/stable/index.html

今天的內容有沒有一點推銷的感覺呢?其實主要是說明Airflow 的的發展和他的優點讓大家參考。而了解之後讓我們之後帶著興奮的心情來上手這功能強大的框架吧!


上一篇
『Day10』 如何設計實作 Data pipeline
下一篇
『Day12』Airflow DAG 介紹
系列文
Data pipeline 建起來!用 Airflow 開發你的 Data pipeline30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言