iT邦幫忙

2023 iThome 鐵人賽

DAY 7
0

在建立Data pipeline 時我們常會碰到類似的場景。這邊帶大家了解一些常見的Data pipeline 類型,我們在開發Data pipeline 的時候如果有遇到相同的場景,可以參考這些架構之上進行設計開發。

常見的 Data pipeline 種類

ETL

ETL 算是很常聽到一個名詞,很多人會有一個問題,ETL 就是 Data pipeline 嗎?其實 ETL算是 Data pipeline 諸多種類的其中一種,這種 Data pipeline 算是非常常見的,所以才會讓人以為 ETL 就是 Data pipeline。接下來我們好好的介紹一下大名鼎鼎的ETL:

  • E - Extract
    擷取,將資料從 Data source 中進行擷取的動作。
  • T - Transform
    轉換,將擷取的資料進行轉換。
  • L - Load
    載入,將轉換過後的資料載入目標的資料儲存位置。

ETL 將來源資料進行擷取(Extract)、轉換(Transform)之後載入(Load)到目標位置,提供資料的使用者所期望看到的整理後的數據並做出相對應決策。
https://ithelp.ithome.com.tw/upload/images/20230921/20140477wvEDhJEUEI.png

ELT

這邊的E,L,T代表的英文字以及其意義都與上述的 ETL一模一樣,唯一的差別就是排列的順序不同。在ELT pipeline的流程是從Data source 擷取資料之後就直接把資料存放至目的資料位置,之後再隨著使用情境進行轉換(Transform)。
https://ithelp.ithome.com.tw/upload/images/20230921/20140477glCsf1GSS3.png

  • ETL 與 ELT 不同的使用情境
    這兩種 Data pipeline 上面上有本質上思維的不同。過去的資料分析的想法是,很明確的知道要看到的報表以及數字,並把相關資料及欄位進行建模,之後透過ETL pipeline把資料輸入至Data warehouse。然而在雲端服務大量的產生以及機器學習研究逐漸興起的狀況之下,儲存成本變得越來越低,儲存資料也變得越來越方便,因此許多企業就算還不知道資料未來的用途,就直接將資料放上雲端。也因為有大量的資料被儲存下來之後,機器學習才有資料進行學習。
    我們可以看成是Top-Down思維以及 Bottom-Up兩種不同的思維。Top-Down思維是確定基本的答案取得方式進行的設計,Bottom-Up 思維則是還未確定如何整合出答案,但是先將資料先全部儲存,再透過機器學習或是統計等方式進行資料價值的萃取。

https://ithelp.ithome.com.tw/upload/images/20230921/20140477IOvHY6hp9f.png
圖片來源:Data Lakehouse, Data Mesh, and Data Fabric - James Serra - Calgary Azure Analytics UG - June 2022

Batch

按照Data pipeline執行的方式我們常見的方式是Batch 或是 Streaming,Batch Data pipeline是按照排程批次處理相關的資料處理。

Streaming

而Streaming 處理的是串流的資料,這樣的Data pipeline應用場景往往是需要即時資料的取得,並需要在即時作出判斷及應對的動作。

CDC Change Data Capture

此類型 Data pipeline 的機制會去偵測 Data Source 的資料狀態,如果有更改的時候就會啟動執行 pipeline 流程,CDC 根據Data source 的狀態提供即時獲近乎即時的數據移動。

現在許多行業中,數據以驚人的速度在增加,CDC 可以在快速變動的場景當中提供有效率的資料複製及資料移動。並藉此提供資訊供以決策。在搬動雲端資料時候,CDC 也是一個很適合的方式。
https://ithelp.ithome.com.tw/upload/images/20230921/20140477d3MVpOHR03.png

CDC啟動的依據大致上可以分為以下幾種方式:

  • log-based CDC
    根據log 偵測資料的異動狀態並執行後續程式運作。
  • query-based
    透過 query 查詢數據,並進行後續動作流程。
  • trigger-based
    資料存入或是變動時觸發trigger進行後續動作。

Reference:
https://cloud.google.com/blog/topics/developers-practitioners/what-data-pipeline-architecture-should-i-use/
https://www.qlik.com/us/data-integration/data-pipeline
https://hevodata.com/learn/data-pipeline/
https://mile.cloud/zh/resources/blog/understand-data-pipeline-automation-etl-data-analytics_610?utm_source=google&utm_medium=cpc&utm_campaign=SEM_TW
https://www.qlik.com/us/change-data-capture/cdc-change-data-capture
https://www.youtube.com/watch?v=4IsIV7Uvr9w

Data pipeline 的種類非常的多,未來隨著科技持續演進,相信會有更多的種類以及流程出現,我們了解這些Data pipeline 的做法之後,可以讓裝填我們腦袋中的武器庫,在處理不同的場景可以拿出不同的武器。另外也透過瞭解各種 Data pipeline 做法,未來若要進行服務的設計,我們也可以從中獲取靈感。


上一篇
『Day6』 Data pipeline 介紹
下一篇
『Day8』 資料處理
系列文
Data pipeline 建起來!用 Airflow 開發你的 Data pipeline30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言