我發現最近幾年的比較已經變成 Data Pipeline vs. ETL Pipeline。
這個系列讓我有機會再次更新自己資料領域的知識庫,總是在研究中發現,我想說的都已經被說盡,而且總有高人表達地更加精準,甚至圖文並茂。
關於 Data Pipeline 資料管線架構,有 30~60 分鐘的夥伴們可以閱讀下圖來源文章,內容紮實且全面,一次講完前世今生與各種場景。
圖片來源:https://www.montecarlodata.com/blog-data-pipeline-architecture-explained/
資料生命週期主要有 7 個階段:
早年的硬體是很貴的,儲存成本很高,而且在單體(Monolith)架構系統中,資料快滿了只有 2 條路,不是資料導出就是刪除。資料導出且不是只為了封存的話,基本就是 ETL 了。
資料在 OLTP 線上交易系統中生成,紀錄各種企業中的內外活動。我們為了更瞭解客戶或管理企業,需要調出交易紀錄與內部活動紀錄去做分析,因此將資料移動到 OLAP 系統中,一方面希望能整合不同 OLTP 系統的資料,一方面避免資料分析造成 OLTP 系統的負擔,而產生了 ETL 的需求。
然而,在硬體很貴的年代,OLAP 系統也不便宜,所以我們把 T 放在外面,資料精煉過後再進入到 OLAP。
圖片來源:https://maestro-analytics.com/elt-vs-etl
圖片來源:https://www.javatpoint.com/difference-between-etl-and-elt
圖片來源:https://www.montecarlodata.com/blog-data-pipeline-architecture-explained/
/ | 層級 | 資料流型態 | 起迄點 |
---|---|---|---|
Data Pipeline | 母項目 | Batch Data, Streaming Data, Mixed | 「資料來源端」到「資料使用端」 |
ETL/ELT | 子項目 | Batch Data | 系統到系統 |
ETL Tools 或是 Gartner 稱為 Data Integration Tools 已經發展很長一段時間,然而每年仍有很高比例的資料管線客製化需求(不包含純 ETL 需求)。
我經常思考這是為什麼呢?
經過多年的實務經驗與觀察,我認為資料管線不易以套裝軟體實做所有需求的原因,可能是「資料來源端」到「資料使用端」涵蓋各式各樣多元的系統與處理邏輯,部署套裝軟體不見得比部署程式單純。實務上,資料管線中的站點涵蓋 ETL Tools 也是不罕見的。
我還發現幾個可能的原因,導致客製化開發資料管線仍有其必要性:
Data Engineer 們除了 ETL 套裝軟體外,也需要持續關注開源社區的各種資料整合工具。(太辛苦了~)
ETL工具裡通常會有自定 execute shell script 的 step. 這步就是通常用來整合外部程式用的。不過在資料進ODS前/後 ,只要分析師/顧問認為可用自定程式處理掉資料轉出/轉換/轉入/等問題也不是不可以。