什麼是 ETL?

ETL (提取、轉換、載入)是一個資料整合過程,會從多個來源收集資料,對其進行標準化,再將其載入到資料倉儲中進行分析,或是儲存到資料庫或其他類型的資料來源。組織使用 ETL 將分佈在多個系統、使用不同語言的資料轉換為統一的格式和型態,以便更容易對其進行分析。隨著資訊爆炸,有大量資料可供組織使用。然而,許多組織在處理多樣性和海量的資料時會遇到困難。許多人難以將資料從來源系統中提取出來,將其翻譯成通用語言,再載入到另一個系統中,以便進行整體分析來全面瞭解該資料。ETL 可以跨各種系統進行資料的提取、轉換和載入,幫助組織有效地利用資料,以增強他們的商業情報

ETL圖

ETL 在多個領域有許多使用案例,其中之一是從客戶資料中獲取更多價值。客戶會以不同的方式與品牌互動,而 ETL 從各種來源整理所有這些客戶資料,轉換資料使其符合標準格式,然後將它載入到資料倉儲或其他資料來源中進行分析。由於公司可以使用相同語言、在相同位置輕鬆地分析所有資料,因此組織可以獲得準確的 360 度視圖,全盤掌握客戶與其品牌的互動情況。它使組織能夠深入瞭解客戶需求,進而為客戶提供更加個人化的體驗。

O'Reilly 報告:建立整合的數據基礎設施
O'Reilly 報告:建立整合的數據基礎設施
只有三分之一的企業已發展成為數據驅動的機構。解決辦法是什麼?在這電子書尋找答案!

為什麼組織需要 ETL?

資料是組織最大的資產之一,但是大多數有用的資料都是非結構化的,並且分散在多個來源。因此,組織需要以 ETL 形式進行資料整合,藉此收集和標準化資料,並準備好在單一位置進行分析。 ETL 有助於確保所有團隊都能輕鬆、統一地存取資料。由於已將資料標準化,因此團隊可以做出明智決策,並產生更好的商業情報。在當今世界中,即使是一小條資料,也可能對盈利能力帶來重大影響,因此想要充分發揮資料力量的組織都該考慮採用 ETL。

ETL 涉及哪些步驟?

顧名思義,ETL 包含三個主要步驟:提取 (extract)、轉換 (transform) 和載入 (load)。

第 1 步:提取資料

提取是從多個來源收集資料的過程,這些來源可能包括以下內容。

  • 客戶關係管理系統 (CRM)
  • 社交媒體和其他線上資源
  • 老舊資料庫和儲存設備
  • 銷售和行銷應用程式
  • 客戶交易資料
  • 企業資源規劃系統
  • 物聯網 (IoT) 的感應器資料

資料提取通常以三種方式執行。

基於變更通知的資料提取

當有任何資料更改時,一些資料來源會向 ETL 系統發出通知,此時 ETL 系統只需要提取新的資料即可。基於通知的資料提取是最簡單的方法,但許多資料來源並不提供通知。

增量資料提取

某些來源可能無法提供有關資料更改的通知,但是,它們可以識別並記錄哪些資料發生了變化。ETL 系統應定期檢查此類來源,以查看資料是否有任何更動。此方法會增量提取已更改的資料部分。增量提取比基於通知的提取更複雜。

完整資料提取

一些來源可能沒有任何識別資料變化的機制,在處理此類來源時,ETL 需要從來源中提取完整的資料。ETL 需要保留最後一個提取的副本,以便用它與新的副本進行比較。與任何其他方法相比,完整資料提取涉及更多的資料傳輸,因為每次都需要複製整個資料集。此外,它也會增加 ETL 系統的負載。

結構化和非結構化的資料

來自上述來源的資料可能是結構化或非結構化的資料。結構化資料已準備好可以立即提取,而非結構化資料還需要一些準備後才適合提取,包括清理資料(例如刪除空格或表情符號)。

第 2 步:轉換資料

來自不同來源的資料可能具有不同的結構和特徵,「轉換」步驟會運用幾種技術來標準化這些不同的資料,組織也經常在轉換資料時套用業務規則。資料轉換涉及的子過程有:

標準化

從各種來源提取的資料格式可能會有很大差異,標準化之後,資料將轉變成通用格式。例如,可能將原始資料中的所有零都轉換成 NULL。

清理

來自社交媒體或電子郵件通訊等來源的資料可能包含不相關的資訊。一般來說,資料可能存在不一致或缺失一些值,清理能夠幫助消除資料中的雜訊,並修復缺失值和不一致之處。

重複資料刪除

某個來源的原始資料可能具有重複和冗餘的資訊,此時重複資料刪除會去除所有這些多餘的部分。

格式修訂

根據組織的標準,從一種格式轉換為另一種格式,這可能包括測量單位轉換、日期時間轉換、字元集轉換。

驗證

此步驟用於檢查資料完整性。在此步驟中,ETL 系統會識別並標記資料異常。

轉換也包括一些進階資料庫操作,例如資料彙總、建立鍵值關係、拆分資料、過濾資料等。

第 3 步:載入資料

在 ETL 的最後一步中,轉換後的資料會被載入到資料倉儲或另一個資料來源。「載入」有兩種主要方式。

完整載入

如果是完整載入,則在「轉換」步驟中準備好的所有資料將會一整批同時載入到資料倉儲中。雖然「完整載入」需要很長時間,但它不像增量載入那麼複雜。完整載入可能會導致倉儲中的資料量呈指數增長,以至於變得難以管理。

增量載入

此方法會查找傳入資料中的更動處,只有找到獨一無二的資料時,它才會建立新的資料記錄。與完整載入相比,增量載入較易於管理。但是,如果出現系統故障,可能會導致資料不一致。

組織可以根據要對資料執行何種操作來選擇「載入」策略,載入的資料可能用於不同的需求。

  1. 在資料上建立一層分析或商業情報
  2. 將資料當做可搜尋的資料庫
  3. 做為機器學習演算法的訓練集
  4. 根據資料建立警報系統

此外,還需要考慮資料目的地(例如,資料倉儲)的特徵,目的地的速度、容量和資料介面,都可能影響載入過程。

現代化您的數據和分析架構
現代化您的數據和分析架構
查看這 13 個用例,以了解怎樣支援當今複雜的數據和分析環境。

ETL 工具有哪些類型?

根據需求,組織可以使用不同類型的 ETL 工具,組織可能會根據他們需要對資料執行的操作來選擇 ETL 類別。

手動編碼

一些組織選擇不使用任何特定的 ETL 工具,而是採用手動編碼方法。在手動編碼時,可以建立自訂指令碼來執行 ETL 工作流程。不過,手工編碼方法的管理和標準化會相當具有挑戰性。

批次處理工具

這些工具通常是在下班時間分批處理資料,以免干擾日常作業。不需要即時 ETL 功能的組織可以選擇批次處理工具。

開放原始碼工具

網路上可以找到幾種開放原始碼 ETL 工具,這是商業 ETL 工具的低成本替代方案。選擇使用開放原始碼版本的組織應該準備好自行操作和維護 ETL 工具,因為開放原始碼版本只有極少或根本沒有支援。

雲端型工具

如果組織負擔不起 ETL 基礎架構,他們可以尋找 ETL 平台即服務。許多公司在雲端上提供 ETL 服務,這些服務可確保提供全面支援、輕鬆整合和可擴充性。

即時工具

上面討論的大多數工具都不是即時運作。即時 ETL 系統會使用連續資料處理功能,從多個來源提取資料並將其儲存在倉儲中。這類 ETL 工具可用來處理串流資料,或是物聯網使用案例中來自感應器的資料。

ETL 有什麼好處?

合併資料

通常,組織都為了處理來自多個來源的資料而傷腦筋。來自不同來源的資料可能在數量、格式和複雜性方面各不相同,而 ETL 可將這些資料標準化並提供資料單一視角。ETL 使組織能夠快速檢索和分析資料,協助更快做出更好的決策。

歷史脈絡

許多組織將歷史資料儲存在老舊資料儲存系統中,ETL 可以從這些老舊系統中提取資料,並與目前資料一起統整起來。這就形成了一條歷史脈絡,組織可以用它來識別長期趨勢。歷史脈絡有助於公司獲得有用的見解,並增強商業情報能力。

效率和生產力

透過讓團隊輕鬆存取資料,ETL 可以大幅提高他們的工作效率。它消除了為資料移轉而編寫自訂程式碼的負擔,因此能提高生產力。一旦資料隨時可供使用,員工就能做出明智的決策,將更多時間花在分析上,減少從事價值較低的工作。

實施 ETL 工作流程有哪些挑戰?

海量資料

ETL 系統通常設計用於處理特定的傳入資料量,但在當今世界中,企業資料正在迅速增長,因此 ETL 系統可能無法勝任增加的資料量。

解決方案:在實施 ETL 工作流程 / 工具時,組織需要考慮可擴充性。除了選擇可擴充的解決方案之外,他們也應該避免完整載入資料。組織應識別關鍵資料並避免所有的非必要資料,他們還應該考慮並行資料處理技術。

更改資料格式

組織應考慮資料格式的動態特性,因為來自外部來源的資料可能格式不同或頻率不同,所以 ETL 系統應該能夠應付這種多樣性。

解決方案:在開始「轉換」步驟之前先妥善清理資料,對於因應格式更改至關重要。ETL 系統應該要能識別新的格式,並提示轉換工具相關資訊。此外,ETL 中的轉換過程應該足夠靈活,不能只是根據寫死的規則執行。

緊密耦合的 ETL 管道

ETL 是一個具有許多組件和子系統的複雜系統,而且這些組件中的每一個都應該具有可擴充性、功能性和靈活性。通常,組織傾向於使用類似的技術和系統來處理這些組件中的每一個,所以當組織實施 ETL 工作流程時,他們會傾向於對所有部分均採用類似的解決方案,這就產生了一個緊密耦合、不太靈活的系統。

解決方案:ETL 系統中的每個組件都應該被視為一個獨立組件,組織應該為每個步驟選擇正確的工具,而這些組件中的每一個都可能需要高度專業化的解決方案。解耦 ETL 組件有助於組織修復或更改任何部分,從而無需從頭開始重建整個系統。