iT邦幫忙

2023 iThome 鐵人賽

DAY 1
1

前言

Who am I?

我是 Alvin,目前在一間 EdTech 公司擔任資料工程師。

Why am I writing?

在 2023 年初,我們開始決定將 ETL pipeline,從單純使用 Apache Airflow,慢慢開始導入 dbt 來構築更穩固的資料處理架構。這次鐵人賽的系列文章,除了希望讓中文的 dbt 文章更普及之外,也期許能凝鍊自己這半年來的開發經驗,初步窺探自己對 data engineering 的哲學。
因此,整個三十天的架構,會分成:

  • 在 dbt 之前的 Airflow 系統,有什麼問題?
  • 導入 dbt 之後,用什麼方法解決上述問題?
  • 除了原本的問題之外,有什麼額外的收穫?
  • dbt 在 ETL 生態中,角色 & 站位是什麼?

四個部分,分享在資料治理(data governance)的世界中,資料工程師是如何將「資料作為資產」(data as an asset)的概念,在 data pipeline 的開發過程中逐一落地的。

Who to read?

這篇文期待主要的讀者,是完全不認識 data 的夥伴,因此在書寫的過程中,也會儘量將一些咒語(ETL, orchestration tool, pipeline)做類比化的處理。

開賽第一天輕鬆一點,今天就先來介紹 ETL & ELT 吧!

ETL 是什麼?

讓我們從一家麵店,「阿華炒麵」開始思考生產過程(data pipeline)的建置。

  1. 進貨:麵粉、水、油、鹽(data from everywhere: 客戶 VIP 資料、行銷資料、公司財報)
  2. 存貨:把原料存放在地下室(save data in data lake)
  3. 備料:在做生意的前一天,先做準備(ETL: extract; transform; load)
    1. 從地下室取出原料(extract data from data lake)
    2. 對原物料加工,製作麵團(transform data: masking, cleaning, aggregating...)
    3. 把麵團存在冰箱,讓明天方便取用(load data into data warehouse)
  4. 賣麵:開始針對不同的客戶訂單,生產不同口味的炒麵
    1. 咖哩炒麵(provide data to data scientists, for their DS projects)
    2. 羊肉炒麵(update data for BI dashbaords)
    3. 牛肉湯麵(generate reports for specific use case)

ELT 的優勢

附帶一提,在當代 cloud-based 的資料治理中,也會考慮改變生產流程,直接「把地下室變成冷凍加工廠」(combine data lake and data warehouse into data lakehouse),流程也會被稱之為 ELT 模式。

想像一下,為什麼每天要辛辛苦苦的把貨物,從地下室搬到一樓,再加工處理呢?如果我們可以有一個超~大的工作台 & 機械手臂,在相同的時間裡處理 100 顆麵團(parallel computing),那能不能直接把地下室改建成冷凍庫(build data lakehouse),工作平台也直接搬到地下室,當我有任何需要的時候,直接到地下室拿我需要的麵團就好了。

這樣操作有兩個主要的優勢:

  • 彈性更大:由於資料被完整的儲存在同一個 location,因此在出問題的時候,追查資料上游(追查原料問題) / 重新設計 pipeline 後 backfill 資料(開發新的麵團配方)等等,都會變得更輕鬆
  • 槓桿雲端:由於 cloud-base 的資料倉儲服務,通常具備相當強大的平行運算優化,所以對於大量資料的處理有巨大優勢,因此可以協助節省許多時間。

說穿了,dbt 其實就是一隻很酷的生產管理系統,可以讓我們在一樓的房間,透過漂亮的監控介面,觀察機械手臂的排程狀況(scheduling)、有沒有好好工作(monitoring)、確認麵團的品質(data quality test)。這個就明天繼續聊吧!


下一篇
Day 2: Using Apache Airflow to schedule BigQuery (stored-procedure)
系列文
從 Airflow 走到 dbt 的 30 天9
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言