我是 Alvin,目前在一間 EdTech 公司擔任資料工程師。
在 2023 年初,我們開始決定將 ETL pipeline,從單純使用 Apache Airflow,慢慢開始導入 dbt 來構築更穩固的資料處理架構。這次鐵人賽的系列文章,除了希望讓中文的 dbt 文章更普及之外,也期許能凝鍊自己這半年來的開發經驗,初步窺探自己對 data engineering 的哲學。
因此,整個三十天的架構,會分成:
四個部分,分享在資料治理(data governance)的世界中,資料工程師是如何將「資料作為資產」(data as an asset)的概念,在 data pipeline 的開發過程中逐一落地的。
這篇文期待主要的讀者,是完全不認識 data 的夥伴,因此在書寫的過程中,也會儘量將一些咒語(ETL, orchestration tool, pipeline)做類比化的處理。
開賽第一天輕鬆一點,今天就先來介紹 ETL & ELT 吧!
讓我們從一家麵店,「阿華炒麵」開始思考生產過程(data pipeline)的建置。
附帶一提,在當代 cloud-based 的資料治理中,也會考慮改變生產流程,直接「把地下室變成冷凍加工廠」(combine data lake and data warehouse into data lakehouse),流程也會被稱之為 ELT 模式。
想像一下,為什麼每天要辛辛苦苦的把貨物,從地下室搬到一樓,再加工處理呢?如果我們可以有一個超~大的工作台 & 機械手臂,在相同的時間裡處理 100 顆麵團(parallel computing),那能不能直接把地下室改建成冷凍庫(build data lakehouse),工作平台也直接搬到地下室,當我有任何需要的時候,直接到地下室拿我需要的麵團就好了。
這樣操作有兩個主要的優勢:
說穿了,dbt 其實就是一隻很酷的生產管理系統,可以讓我們在一樓的房間,透過漂亮的監控介面,觀察機械手臂的排程狀況(scheduling)、有沒有好好工作(monitoring)、確認麵團的品質(data quality test)。這個就明天繼續聊吧!