iT邦幫忙

2023 iThome 鐵人賽

DAY 6
1

Airflow 的基礎名詞

Hooks:鉤子/ 接口

Hooks 可以和第三方系統互動,第三方系統是什麼?就是非官方和運營方開發的系統,例如我們要把 Airflow 和 MySQL 溝通,就必須要用到 Hooks 幫助我們傳遞資料進到 Airflow,最後出去也需要 Hooks 才能送出。

和平常我們常常聽到的 webhook 不太一樣, webhook 比較像監聽的機制,如果xx事情發生記得通知我,像是「按讚、訂閱、開啟小鈴鐺」的小鈴鐺,就是youtuber發片的時候可以收到通知,如果對於 webhook 還是有點模糊,推薦看這篇文章 卡米狗:認識 Webhook

Relationship:節點關係

在任務之間,我們可以定義前後順序和相互關係,甚至將多個任務包再一起成為 task_group,定義上有多種不同方式,像這樣:

task1 >> task2 >> task3
task3(task2(task1))
task1.set_downstream(task2)
task3.set_upstream(task2)
  • 這三種都是代表先做 task1,接著 task2,再來 task3

task_group 會像這樣

[task1 ,task2] >> task3
  • 代表要先做完 task1、task2,接著才會做 task3
  • 而且 task1、task2 的執行是同時發生的
  • task_group 當中也可能會有更複雜有順序相依性的行為

Airflow 的四大組成元件(components)

Webserver:網頁伺服器 / 使用者介面

Airflow 的使用者介面,就是我們前幾天安裝完開啟的網頁 (http://localhost:8080) ,可以在上面讀取各項紀錄檔。

Scheduler:排程調度器

監控所有 DAGs 和相關的任務,調度目前該哪一個 task 執行,接下來又換哪一個。

Executor:執行器

專注在執行任務,有多種不同類型,例如:LocalExecutor、CeleryExecutor 和 KubernetsExecutor。

之後有機會再詳細介紹,這部分我也只熟悉 Local 和 Celery。

Metadata database:描述檔資料庫

Metadata before Metadata database

我們先來認識 metadata,這個詞也會常常看到,通常翻作「詮釋資料」或「後設資料」,意思就是「描述xx資料」的「資料」,好繞口,就像是一本書的序,就是描述文字的文字,這樣有類比到嗎(臨時想的XD)/images/emoticon/emoticon01.gif,反正通常網頁的 header 裡面有 meta tag,就是描述網頁的 summary,專門給搜尋引擎(google)看的,這樣就可以加快搜尋引擎認識你的網站,所以你看到各種 dataset (資料集),常常會看到 metadata,就是在介紹這個資料集的資料。

所以這裡的 Metadata database 是什麼,就是當你在運行 Airflow 時,Airflow 當中的預設值,和你接下來的所有行為都會被記錄在個資料庫,所以他並不是你實際在處理的資料庫,而是紀錄你是如何處理資料的資料庫,哈哈,也是好繞口,在這裡會儲存所有元件的互動方式和目前的狀態,每次開始運行 Airflow,也是從這邊讀取過去的運行資料出去。

千萬記得不要傻傻的把自己的資料也一起存進來,有時候 Airflow 整個壞掉需要重開,然後也一起清空資料庫,這時候就會很嚴重了,真的有看到有人在 stackoverflow 問,怎麼把資料救回來,幫他QQ。

其他類似工具

Ref: 參考來源


上一篇
[Day5] 超級蘑菇 Airflow 的食用說明書(1)
下一篇
[Day7] 30秒實作第一個 Airflow DAG
系列文
Airflow 是什麼? 能吃嗎 ? 數據水管工的超級蘑菇30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言