?

基于ETL的異構數據集成框架研究

2020-12-23 04:53馬竹根林晶于述春李森林
西部論叢 2020年16期
關鍵詞:數據集成數據倉庫

馬竹根 林晶 于述春 李森林

摘 要:介紹了ETL原理及Kettle的使用方法,以 ETL技術為核心設計了ETL驅動的數據倉庫技術的數據集成框架,制定了跨平臺數據集成解決方案,利用Kettle工具驗證和實現了多源異構數據的集成,簡化了數據整合的過程,實現了信息系統間數據共享,能有效地完成特定的數據處理任務。

關鍵詞:數據集成;數據倉庫;ETL;Kettle

1引言

數據在當今社會的重要性是毋庸置疑的,通過執行數據分析,幾乎任何領域的可用數據都為用戶創造了價值并獲得競爭優勢,數據集成需求變得日益緊迫。數據集成是一個迭代的過程,由來自多個異構源系統的數據合并組成提供數據的統一視圖。集成來自多個異構來源的數據以支持分析報告通常被稱為數據倉庫。為了構建數據倉庫,必要的預處理步驟通常被稱為提取、轉換和加載。ETL(Extract-Transform- Load)即數據抽取、轉換和裝載的過程,是用于解決多源異構數據集成的一系列過程,是一種多源數據集成的有效方法[1]。Kettle 是一款國外開源的 ETL 工具,能夠高效穩定地對數據進行抽取,可以提供面向不同行業的數據集成解決方案[2]。本文設計和實現一個異構數據集成框架,該框架采用數據倉庫技術,使用Kettle ETL驅動的方法從多個數據源提取和集成數據。

2 相關技術介紹

ETL 可以將結構化或非結構化的數據進行抽取,然后采用一定的規則進行清洗轉換形成符合要求的標準數據,最后將其裝載進中心數據庫或數據倉庫。ETL處理分為3步,分別是:數據抽取、數據清洗和轉換、數據裝載。數據抽取通常從數據源中提取一部分信息并提供給轉換,這些數據源可以由具有不同數據格式和數據結構。數據清洗可以使用各種專門的方法來消除集成多個數據源時的錯誤,把不合規則的數據進行處理和過濾,包括不完整數據、錯誤數據、重復數據和缺省值等[3]。數據轉換將經過清洗的數據轉換到目標模式中,可以在ETL工具的幫助下進行可視化操作的方式實現各種復雜的轉換。數據裝載主要是將經過轉換后的統一格式的數據批量導入到數據倉庫中進行存儲[4],數據裝載可以通過直接連接到數據庫來執行。

Kettle是一款國外開源的ETL工具,可以跨平臺運行。Kettle包括4個產品:Spoon、Pan、Kitchen、Carte。Spoon 通過圖形界面來設計ETL轉換過程(Transformation),Pan 可以批量運行由Spoon設計的ETL轉換,Kitchen調用作業流程,Carte實現ETL集群處理。 Kettle 的 ETL 過程主要由轉換(transformation)和作業(job)兩大部分完成[5]。轉換是ETL解決方法中最主要的部分,它負責處理抽取、轉換和加載各階段對數據行的操作。轉換包括一個或多個步驟,步驟之間通過跳(hop)來連接。作業主要是控制轉換或使多個轉換按照固有的順序運行,完成整個工作流的控制。

3 異構數據集成框架

異構數據集成框架由數據源、ETL過程、數據倉庫和最終用戶層組成,如圖1所示。ETL是建立數據倉庫的重要的一環,將來自不同源系統的數據傳輸到其他數據存儲系統并適應新的需求,為數據挖掘系統、商務智能軟件等決策支持系統產生更加有效的結果提供數據支持。

數據可以有多種來源,如關系數據庫、XML文件、文本文件等,這些異構數據源具有一些獨特的特征,應該對其進行管理,以便為ETL過程有效地檢索數據。ETL將不同來源的數據提取到暫存區,然后數據被轉換并加載到數據倉庫。要執行這樣的過程,可以使用一個開源的ETL工具來處理不同性質的數據源。在識別的數據被提取之后,下一步是改變提取的數據的形式以適應目標數據倉庫的結構。轉換是對數據執行的一些活動,按照相關的規則將多源異構數據進行格式和結構統一。最后,轉換后的數據存儲在數據倉庫中,供最終用戶和最終用戶層的應用程序訪問。最終用戶可以使用各種工具來處理數據,如報表、電子表格和其他圖表。

4、基于ETL-Kettle模式的數據集成實現

ETL過程是使用Kettle中的Spoon應用程序來執行的。Spoon是一個用于創建轉換和作業的圖形界面工具,基于圖形化界面操作Kettle進行數據處理,只需按照數據處理的流程配置相應的步驟即可。通過構建多個轉換對象來集成數據,創建的各種轉換對象應該以正確的順序執行,因此這些轉換對象將被視為作業中的作業項。Spoon應用程序中的作業用于執行所有轉換對象,如初始化數據倉庫表、從源中提取數據以及將轉換后的數據加載到數據倉庫中等轉換依次執行。下面介紹一種針對多平臺的數據加載到數據倉庫的解決方案。

整個數據抽取流程包括2個作業和7個轉換,總作業如圖2所示,抽取數據作業如圖3所示??傋鳂I包括一個轉換和一個作業,獲取表名列表是要獲取到數據倉庫中要抽取的表名,抽取數據作業包括了數據抽取、清洗、轉換的過程。

在對數據表進行匯總時要建立兩個日志表,一個用來記錄成功或失敗的記錄,另一個用來分配成功的抽取表以便進行數據清洗、轉換等數據處理。為方便起見,我們把需要抽取數據的表命名為基本表,記錄成功或失敗記錄的表命名為歷史表,分配清洗轉換任務的表命名為清洗表。數據抽取的基本思路是:對基本表進行抽取,如果抽取成功,則將基本表中全部數據記錄到歷史表中,并標記為“成功”;如果抽取失敗,則終止表的提取過程,并將失敗的記錄在歷史記錄表中進行記錄。數據抽取具體流程如下:

(1)設置表名變量。從上一步獲取表名列表的結果中獲取記錄,將表名設置為變量,方便后續表輸入和表輸出的使用。(2)統計表中記錄數。如果記錄數大于0就繼續進行下一步,否則就指向“表不存或表中沒有數據”步驟,跳過后面的步驟,進入下一個循環。(3)獲取PRIMARY_VALUE。獲取每個表的主鍵值并放在一個字段里。(4)設置平臺變量。為了區分不同的平臺,可以通過語句獲取每個平臺對應的平臺值。(5)抽取基本表。主要分為3步:獲取表名、表輸入、表輸出。如果出現錯誤,就會停止抽取表并指向“失敗新增history”。(6)新增歷史表?;镜牧鞒叹褪谦@取變量(包括表名變量,主鍵值)、表輸入、增加序列(以序列號作為每條記錄的主鍵)、輸出到歷史表。(7)新增清洗表。從歷史表中獲取數據并加入條件判斷將數據合理分配給某個清洗服務器,可以使用平均表數量的分配方法,也可以使用固定平臺對應固定清洗服務器的方法,還可以使用隨機抽取的方法。

5 結語

數據集成是建立數據倉庫、進行數據挖掘和決策分析的重要組成部分,KETTLE在多源異構數據集成方面具有易于使用,開發簡單的優勢。本研究設計了ETL驅動的異構數據集成框架,并制定了多平臺數據集成方案,實際完成了數據抽取、轉換和加載等過程的數據集成。利用KETTLE能夠快速高效地實現多源異構數據集成,形成高質量的數據為后期的數據挖掘與分析奠定數據基礎。

參考文獻

[1] 徐俊剛,裴瑩.數據ETL研究綜述[J].計算機科學,2011,38(04):15-20.

[2] 陳亞東,鮮國建,趙瑞雪,劉現武,郭淑敏.基于ETL-KETTLE模式的蘋果產業數據整合[J].江蘇農業科學,2019,47(10):230-234.

[3] 趙一凡,卞良,叢昕.數據清洗方法研究綜述[J].軟件導刊,2017,16(12):222-224.

[4] 廉博. 數據倉庫中ETL技術的研究與實現[D].沈陽工業大學,2006.

[5] 王軍.基于kettle的高職學生行為數據集成研究[J].信息與電腦(理論版),2020,32(03):225-227.

基金項目:湖南省教育廳科學研究項目(16C1276),湖南省懷化學院雙一流應用特色學科“控制科學與工程”資助

作者簡介:馬竹根(1971—),男,講師,碩士,研究方向為數據庫、軟件工程。

猜你喜歡
數據集成數據倉庫
基于數據倉庫的數據傾斜解決方案研究
七大云計算數據倉庫
數據倉庫系統設計與實現
成本與制造數據集成分析
基于Biztalk的異構醫療信息系統數據集成研究
信息系統集成與數據集成策略研究
XML數據交換技術在中醫智能化診斷數據集成中的應用
高校一表通系統建設探究
基于數據集成的水上項目國家隊數據庫網絡管理平臺的設計與開發
數據復用在存儲數據倉庫中的運用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合