面向數據倉庫的ETL工具的實現與優化

2020-12-17 北京天耀宏圖

(Extract-Transform-Load)技術是目前採用較多的數據交換技術之一,ETL實際上是數據抽取,數據轉換和數據加載三種操作的總稱。通常ETL操作發生在數據倉庫中,通過ETL工具從數據源中抽取需要的數據,根據需要的格式對數據進行格式轉換、清洗,去除冗餘數據,將不同格式存儲的數據進行格式統一,然後將加工處理後的數據加載到新的資料庫中進行存儲。

ETL技術也就是數據抽取,數據轉換和數據加載三種操作。通常ETL操作發生在數據倉庫中,通過ETL工具從數據源中抽取需要的數據,根據實際需要的數據格式,對原有數據進行數據格式轉換、數據清洗,剔除冗餘數據等操作,以使得不同格式存儲的數據能夠實現格式統一。這樣處理之後的數據會被加載到另外的新資料庫中進行存儲。

圖 ETL基本流程

1、數據抽取

數據抽取部分的主要功能是負責從數據源中抽取待加工的數據。數據抽取過程根據抽取方式的不同可以分為全量抽取和增量抽取兩種方式。全量抽取是指從源資料庫中一次性將數據抽取出來,集成到目標資料庫中去。這種抽取方式可以滿足對數據傳輸過程中一致性的要求,保證源資料庫中數據與目標資料庫中存儲數據的一致性。增量抽取方式所操作的數據對象都是數據規模較小的數據,這樣的數據對伺服器需求不高,因此採用增量抽取方式可以減輕伺服器和網絡帶寬的壓力。增量抽取方式一般會使用於在數據倉庫搭建之後的日常維護操作中。

2、數據轉換

數據轉換的過程是將上一步驟中抽取的數據進行清洗,並按照預先設定的一定規則轉換成目標資料庫能夠接受的同一標準格式。由於數據抽取步驟中得到的數據從不同的數據源產生,這些數據根據採用的資料庫不同也就會以不同的格式存儲。此外,不同來源的數據進行整合的過程中可能會產生衝突數據和冗餘數據等問題。這就需要在載入目標資料庫之前對數據進行清洗處理,使待載入的數據從格式和內容上實現正確和統一。

3、數據加載

數據加載的過程主要是將已經清洗過的數據裝載到目標數據倉庫的指定位置上去。根據數據規模的大小,處理方式也不同。對於少量的資料庫update操作,直接使用sql語句操作的方式實現,然而,對於批量數據載入請求需要使用專門的加載工具來實現,通過使用加載工具加載實現對數據的分割和異步載入。

ETL系統的設計思想是以工作流為控制調度中心,利用元數據信息保存和記錄ETL過程信息,定義ETL過程中各種轉換規則的工作以組件的形式存在,並提供可視化界面供用戶定義、修改ETL的流程,系統通過數據訪問模塊訪問數據源和數據目標。

將工作流技術和元數據技術應用到ETL工具中已經是目前ETL工具發展的一種趨勢。利用這兩種技術,ETL流程的靈活性和可控制性將大大提高,用戶可以根據需要自由的選擇數據清洗和數據轉換操作,並按照數據處理的流程靈活的編排所選擇的操作;同時ETL工具的可擴展性也得到增強,在工作流技術的支持下,所有的數據清洗和轉換操作都成為工作流活動的資源,因此工具可以根據需要靈活的添加清洗和轉換操作,從而擴展相應的處理能力。

圖 ETL體系架構

1、元數據管理

元數據是對ETL過程的形式化定義,它包括ETL流程信息的定義和ETL操作規則的定義兩個主要部分。流程信息主要記錄了ETL過程中包含的各種操作,以及操作之間的先後順序關係,操作規則信息主要記錄了每個操作的具體轉換規則設置,如過濾器的過濾條件,投影操作的欄位列表選擇等等。

圖 元數據管理

2、工作流引擎

為了提供靈活的控制調度能力,本系統構建輕量級工作流引擎,調度中心接收到由元數據管理模塊解析生成的流程定義數據,檢查ETL任務之間的依賴關係、轉發控制等關聯,從而確定任務執行的實際流程,並按照這個流程調度活動進行執行。

圖 ETL工作流引擎

3、ETL操作組件庫

ETL系統中,最終完成從數據源到數據目標的映射轉換的工作是由ETL操作組件來承擔的。一個功能健全的ETL操作組件庫,是ETL系統必備的部分。ETL系統操作部件以組件庫的形式發布,供工作流引擎調度執行,同時,操作組件遵循統一的接口開發,並添加到組件庫中,從而大大增強了系統的可擴展性。

三、ETL系統的實現

1、基於XML的元數據管理

在ETL系統中,元資料庫是一個基礎元素,它保存記錄了ETL過程中所需的各種輔助信息,是ETL過程正確執行的關鍵。元數據管理實現中,元數據信息以XML文件的形式保存,元數據中各種對象信息用一個節點表示,對象之間的關係,則在樹形層次關係中得以體現。元數據管理包括了內存對象到文件信息的編輯、更新以及文件信息到內存對象的解析、構造兩個部分。

2、輕量級的工作流引擎

工作流引擎對ETL流程的執行進行總體控制,是ETL系統的調度中心。工作流引擎負責從ETL流程定義形成的圖結構中,分析出各個階段中處於就緒狀態的任務,分配相應的資源,並啟動任務執行。

圖 工作流引擎對ETL流程的調度過程

3、基於資料庫引擎的ETL操作組件

基本資料庫引擎的ETL操作組件實現中,資料庫管理系統(DBMS)在作為數據存儲介質的同時,扮演數據轉換引擎的角色。ETL系統中的各種轉換映射規則,以SQL查詢的形式體現,SQL查詢可以用於任何構造過程,包括數據抽取、直接存儲、清洗過程和整個流程的映射規則信息傳送。

從ETL映射規則到SQL查詢的產生過程,由SQL生成器完成。生成器可以從元資料庫中讀取必要的參數和映射規則來創建一個SQL轉換。具體來說,一個映射元數據作為生成器的參數輸入,從而生成操作的SQL查詢。在這個過程中,所有的控制和檢查都應用於數據,因此,這些查詢不僅僅是對數據的修飾;它裝載數據模式結構和有效的值集。使用SQL查詢是因為它們易於理解,而且在DBMS中非常高效。現有的工具大都創建一系列的程序來完成轉換過程,對這些工具進行優化是相當不容易的。相反,SQL生成器使用查詢優化來得到高性能。

4、ETL系統的可擴展性與開放性

ETL系統的實現形成了wfProcess-wfActivity-ETLLib三層管理模式,從而實 現了ETL流程管理與操作組件庫的解耦,同時ETLLib定義了簡明規範的接口,在面對不斷變化的數據處理需求時,一方面可以遵循ETLLib接口,開發新的內置操作組件,擴展系統的處理功能;另一方面,對於特殊的小眾需求,用戶可自行開發符合接口規範的外部組件,並通過相關參數設置,將外部組件依附到wfActivity中,成為ETL流程的一環;內置組件的簡易擴展和對外部組件的支持,使ETL系統具備良好的可擴展性和開放性。

5、ETL系統對大數據環境的支持

近年來,大數據技術發展迅猛,以Hadoop為代表的業界主流技術日趨成熟和穩定,越來越多的企業和單位開始將生產和管理數據存儲在大數據平臺上,ETL系統操作組件庫增加了兩個實驗性的操作組件。

四、ETL和數據集成

ETL是數據倉庫獲取高質量數據的關鍵環節,是對分散在各業務系統中的現有數據進行提取、轉換、清洗和加載的過程,使這些數據成為商業智能系統需要的有用數據。ETL是數據集成的第一步,也是構建數據倉庫最重要的步驟。

圖 商業智能系統架構

-The end-

作者|天耀宏圖解決方案中心

相關焦點

  • 數據倉庫ETL工具那麼多,其實掌握一個就足夠了
    在維度建模中我們已經了解數據倉庫中的維度建模方法以及基本要素,在這篇文章中我們將學習了解數據倉庫的ETL過程以及實用的ETL工具。一、什麼是ETL?構建數據倉庫的核心是建模,在數據倉庫的構建中,ETL貫穿於項目始終,它是整個數據倉庫的生命線。
  • ETL工具(數據倉庫)
    資料庫也可以做數據倉庫,不過就是 專業的工具 寫起來效率更高,現成的工具直接調用。還有就是如果你是數據產品經理,開發人員 開發東西時間成本是很大的,不要覺得今天 提需求,2天就弄出來。站在外行的角度,想當然的覺得很簡單。你一個小的思維變動,人家可能改幾天。提出的需求要思考清楚,不要經常變動。提出需求以後,後面不要加需求。開發人員最討厭,因為你的思考不全面,謹慎導致重新開發,返工。
  • 面向CRM系統的數據倉庫的設計與實現
    1.2 在CRM中應用數據倉庫的必然性  數據倉庫是CRM的中心環節甚至是CRM的靈魂所在,它存儲了企業內部和外部的各種數據,並將這些源數據整理成一致的、隨時間變化的以及最大限度優化分析的客戶信息庫,通過OLAF分析和數據挖掘來發現大量客戶信息中所隱藏的規律,為企業進行經營決策提供支持。
  • ETL還是ELT?這個工具玩轉數據清洗實現高效率
    在此情況下,為了實現企業全局數據的系統化運作管理(信息孤島、數據統計、數據分析、數據挖掘) ,為DSS(決策支持系統)、BI(商務智能)、經營分析系統等深度開發應用奠定基礎,挖掘數據價值 ,企業會開始著手建立數據倉庫,數據中臺。將相互分離的業務系統的數據源整合在一起,建立一個統一的數據採集、處理、存儲、分發、共享中心。
  • 用於數據分析的各類主流ETL 工具比較,哪種最適合你
    Java CAPS的組件能夠整合現有應用程式,並能在面向服務的架構環境中提供新的業務服務。 12.SYBASE Sybase ETL包括Sybase ETL Development和Sybase ETL Server。 Sybase ETL Development是一款用於創建和設計數據轉換項目與作業的GUI工具。
  • 詳細的六款主流ETL工具介紹及功能對比
    etl工具的使用,必不可少。在如下Gartner魔力象限位於領導者地位:數據集成工具魔力象限、數據質量工具魔力象限 、元數據管理解決方案魔力象限 、主數據管理解決方案魔力象限 、企業級集成平臺即服務(EiPaaS)魔力象限。
  • Hive數據倉庫實戰
    它提供了一系列的工具,可以用來進行數據提取轉化加載(ETL),這是一種可以存儲、查詢和分析存儲在 Hadoop 中的大規模數據的機制。Hive是基於Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射為一張資料庫表,並提供簡單的SQL查詢功能, Hive 定義了簡單的類 SQL 查詢語言,稱為 HQL,它允許熟悉 SQL 的用戶查詢數據。
  • 數據倉庫模型設計與工具
    一、基本概念維度建模,是數據倉庫大師Ralph Kimball提出的,是數據倉庫工程領域最流行的數倉建模經典。維度建模以分析決策的需求出發構建模型,構建的數據模型為分析需求服務,因此它重點解決用戶如何更快速完成分析需求,同時還有較好的大規模複雜查詢的響應性能。它是面向分析的,為了提高查詢性能可以增加數據冗餘,反規範化的設計技術。
  • 數據科學家是如何不用ETL工具進行分析數據的?
    要進行分析,數據科學團隊首先需要訪問來自多個應用程式和業務流程的高質量數據,你要把數據從a點移到b點,通常通過自動化過程實現——抽取、轉換、加載或ETL。一般而言,ETL會將數據加載到某種形式的數據倉庫,以便於訪問。但是,ETL和數據倉庫存在一個主要問題。ETL需要大量的編碼,專門知識和維護。
  • BI大數據分析是什麼,大數據bi工具有哪些
    報告稱,在Gartner調研的機構中,僅8%的機構實際部署了大數據項目,57%的機構仍處於調研和規劃階段。這一水平已經影響到了大量企業的創新周期。大數據分析:指無法在可承受的時間範圍內用常規軟體工具進行捕捉、管理和處理的數據集合。是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力的海量、高增長率和多樣化的信息資產。
  • 2018年ETL工具比較
    Sun Java複合應用程式平臺套件Sun的ETL和數據集成工具是大型Java複合應用程式平臺套件(CAPS)的一部分。CAPS或Java CAPS是Oracle公司基於標準的企業服務總線軟體套件。Java CAPS有幾個組件可幫助整合現有應用程式並在面向服務的體系結構環境中提供新的業務服務。
  • 可視化ETL工具有多好用,企業用了愛不釋手!
    它的英文名是Extract-Transform-Load,直譯過來就是提取、轉換、加載,即將業務系統中的數據經過提取、清洗轉換之後加載至數據倉庫的過程。既然是和業務相關,那在企業中,ELT的目的就是將分散、零亂、標準不統一的數據整合到一起,為企業的決策提供分析依據。
  • 建設數據倉庫的八個步驟
    2.選擇滿足數據倉庫系統要求的軟體平臺    在數據倉庫所要解決的問題確定後,第二個步驟就是選擇合適的軟體平臺,包括資料庫、建模工具、分析工具等。    ·能否提供數據倉庫的建模工具,是否支持對元數據的管理。    ·能否提供支持大數據量的數據加載、轉換、傳輸工具(ETT)。    ·能否提供完整的決策支持工具集,滿足數據倉庫中各類用戶的需要。
  • 網站數據分析:數據倉庫相關的問題(三)
    但對於企業的長期發展來看,數據倉庫中存放細節數據有兩方面的好處:一方面從技術層面,數據倉庫存儲細節數據可以釋放前臺資料庫的查詢壓力,同時對於文本類數據和外部文檔類數據入庫之後管理更加規範,數據倉庫保留歷史和不可變更的特性可以讓信息不被丟失;另一方面就是從數據的使用上,數據倉庫讓數據的獲取和使用更加簡便,集成細節數據讓大量的文本型數據可查詢,可關聯,而面向主題的設計讓數據的展現和分析更有方向性和目的性
  • 一文讀懂數據倉庫、數據集市、資料庫的區別與關聯
    技術差別 - 查詢數據總量和查詢頻度差別 操作型查詢的數據量少而頻率多,分析型查詢則反過來,數據量大而頻率少。要想同時實現這兩種情況的配置優化是不可能的,這也是將兩類資料庫物理分隔的原因之一。 5.
  • 大數據之HIVE數倉工具
    隨著新基建的提出,數據中心建設已經是各大前沿技術建設的基石,我國的大數據,雲計算,人工智慧市場也將進一步繁榮。作為大數據平臺的基礎數據倉庫工具,Hive也將繼續發揮其重要作用和體現最大價值。一、Hive的定義Hive 是基於 Hadoop 大數據平臺的一個數據倉庫工具。
  • 【原創】-數據倉庫的由來?
    數據倉庫到底是什麼?資料庫通常追求業務交易的數據,交易數據的完整性,數據的一致性,在遵從三大範式的情況下,減少數據的冗餘性,使得在數據存儲性能上實現最優解。 2、數據分析的效率、複雜語句查詢的速度,數據之間的相互關聯,在數倉中,更偏向通過對業務源數據的理解,加工出適合開發的多維數據模型,從而提高數據分析的效率。
  • 關於數據分析,你需要知道的ETL基礎知識
    在此情況下,為了實現企業全局數據的系統化運作管理(信息孤島、數據統計、數據分析、數據挖掘) ,為DSS(決策支持系統)、BI(商務智能)、經營分析系統等深度開發應用奠定基礎,挖掘數據價值 ,企業會開始著手建立數據倉庫,數據中臺。
  • 數據可視化工具大集合
    所謂數據可視化是對大型資料庫或數據倉庫中的數據的可視化,它是可視化技術在非空間數據領域的應用,使人們不再局限於通過關係數據表來觀察和分析數據信息
  • 商務智能軟體FineBI的ETL數據集
    ETL數據集就是經過ETL處理之後添加進來的數據表,如:新增公式列,join,union等操作,這樣加進來的表前面會有「etl」符號作為標識。下面將通過商務智能軟體FineBI進行介紹。添加ETL數據集打開BIDemo業務包,點擊+ETL,進入添加ETL表界面從數據連接bidemo中選擇銷售活動數據表,點擊下一步進入表數據設置頁面,在該頁面可以對新加表進行ETL處理。經過ETL處理之後,點擊保存可以看到,一張新的銷售活動經過ETL處理的表被加進了業務包。