999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

面向數(shù)據(jù)倉庫的ETL工具的研究與實現(xiàn)

2018-04-12 04:23:30林昆
計算技術(shù)與自動化 2018年1期

林昆

摘 要:闡述了ETL工具在數(shù)據(jù)倉庫系統(tǒng)的建設(shè)過程中所處的重要地位,提出了一個基于工作流引擎的ETL系統(tǒng)設(shè)計。系統(tǒng)實現(xiàn)一個輕量級的工作流引擎作為ETL流程的調(diào)度中心,利用元數(shù)據(jù)保存記錄ETL流程的信息,創(chuàng)建基于數(shù)據(jù)庫引擎的ETL操作組件庫來完成從數(shù)據(jù)源到數(shù)據(jù)目標(biāo)的數(shù)據(jù)映射,并初步實現(xiàn)了對大數(shù)據(jù)環(huán)境數(shù)據(jù)抽取的支持,從而構(gòu)建了一個具有良好可擴展性和開放性的ETL系統(tǒng)。

關(guān)鍵詞:數(shù)據(jù)倉庫;ETL;工作流引擎;元數(shù)據(jù)管理

中圖分類號:TP311.1

文獻標(biāo)志碼:A

1 引 言

數(shù)據(jù)倉庫是面向主題的、集成的、相對穩(wěn)定的、反映歷史變化的數(shù)據(jù)集合,用于支持經(jīng)營管理中的決策制定過程[1]。服務(wù)于商業(yè)智能的數(shù)據(jù)倉庫的成功實施,體現(xiàn)著對新的觀念和解決方案日益增長的需求[2-4]。數(shù)據(jù)倉庫的數(shù)據(jù)源自于不同的業(yè)務(wù)系統(tǒng),這些數(shù)據(jù)的異構(gòu)性、空缺或冗余等問題是制約數(shù)據(jù)倉庫數(shù)據(jù)質(zhì)量的重要因素[5]。此外,供決策使用的數(shù)據(jù)倉庫的數(shù)據(jù)是統(tǒng)計性數(shù)據(jù),而來自日常系統(tǒng)的細(xì)節(jié)數(shù)據(jù)的簡單堆砌無法滿足商業(yè)智能的要求。

數(shù)據(jù)倉庫化建設(shè)作為建立數(shù)據(jù)倉庫的必要步驟,通常需要建立從數(shù)據(jù)源到數(shù)據(jù)目標(biāo)的多對一的映射關(guān)系,ETL(Extraction-TransformatiorrLoad,抽取一轉(zhuǎn)換一加載)工具提供一個方便使用的倉庫化建設(shè)方法,使用戶可以有效的構(gòu)建從異構(gòu)數(shù)據(jù)源到數(shù)據(jù)目標(biāo)的映射關(guān)系。

2 ETL相關(guān)概念

ETL,即數(shù)據(jù)抽取(Extraction)、轉(zhuǎn)換(Trans-formation)和加載(Load),是構(gòu)建數(shù)據(jù)倉庫的必要步驟。數(shù)據(jù)管理員根據(jù)實際需求,定義特定的映射關(guān)系,實現(xiàn)從業(yè)務(wù)系統(tǒng)數(shù)據(jù)源到目標(biāo)數(shù)據(jù)倉庫的遷移,并在遷移過程數(shù)據(jù)完成了必要的轉(zhuǎn)換和清洗,如圖1所示。

2.1 ETL的具體步驟

數(shù)據(jù)倉庫建設(shè)的一個重要環(huán)節(jié)是將數(shù)據(jù)從各個具體的業(yè)務(wù)系統(tǒng)中抽取出來,清除數(shù)據(jù)存在的缺陷和不一致性,完成必須的加工處理,最后將數(shù)據(jù)加載到數(shù)據(jù)倉庫中[6]。這一過程形成了一個模塊化、流程化和易修改的模型。下面詳細(xì)介紹各個步驟的細(xì)節(jié)。

1)數(shù)據(jù)抽取( Extraction)

ETL過程的第一個環(huán)節(jié),從數(shù)據(jù)源中抽取數(shù)據(jù),為后續(xù)各個處理操作提供數(shù)據(jù)準(zhǔn)備。

業(yè)務(wù)數(shù)據(jù)源中包含了大量的細(xì)節(jié)數(shù)據(jù),抽取需要根據(jù)數(shù)據(jù)倉庫的預(yù)定義模型,挑選對倉庫主題有貢獻的部分,再將其抽取進入ETL系統(tǒng)。這一過程中需要考慮到:

·數(shù)據(jù)源來自哪些表或文件。

·數(shù)據(jù)庫模型的一致性。

·需要抽取哪些字段,是否設(shè)置抽取條件。

2)數(shù)據(jù)轉(zhuǎn)換( Transformation)

通過抽取操作進入ETL系統(tǒng)的數(shù)據(jù),往往存在著嚴(yán)重的異構(gòu)性。這些數(shù)據(jù)雖然都是數(shù)據(jù)倉庫必需的,但是由于來源于異構(gòu)數(shù)據(jù)源,數(shù)據(jù)在格式、命名方式、值范圍表示方式等方面都存在著差異。

針對這些差異,數(shù)據(jù)轉(zhuǎn)換主要完成兩方面的任務(wù):一是把不同數(shù)據(jù)源、格式不一致的“臟數(shù)據(jù)”清洗成一致的數(shù)據(jù);二是對原始數(shù)據(jù)進行必要的轉(zhuǎn)換處理以滿足數(shù)據(jù)倉庫的要求[7]。

3)數(shù)據(jù)加載(Load)

數(shù)據(jù)加載的任務(wù)就是將前面兩個步驟處理完成的數(shù)據(jù),加載到數(shù)據(jù)目標(biāo)中,完成數(shù)據(jù)倉庫的數(shù)據(jù)準(zhǔn)備[8]。

3 ETL系統(tǒng)的架構(gòu)設(shè)計

如圖2所示,ETL系統(tǒng)的設(shè)計思想是以工作流為控制調(diào)度中心,利用元數(shù)據(jù)信息保存和記錄ETL過程信息,定義ETL過程中各種轉(zhuǎn)換規(guī)則的工作以組件的形式存在,并提供可視化界面供用戶定義、修改ETL的流程,系統(tǒng)通過數(shù)據(jù)訪問模塊訪問數(shù)據(jù)源和數(shù)據(jù)目標(biāo)。

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

3.1 元數(shù)據(jù)管理

元數(shù)據(jù)是對ETL過程的形式化定義,它包括ETL流程信息的定義和ETL操作規(guī)則的定義兩個主要部分。流程信息主要記錄了ETL過程中包含的各種操作,以及操作之間的先后順序關(guān)系;操作規(guī)則信息主要記錄了每個操作的具體轉(zhuǎn)換規(guī)則設(shè)置,如過濾器的過濾條件,投影操作的字段列表選擇等等。

如圖3所示,ETL系統(tǒng)的元數(shù)據(jù)呈樹形的層次關(guān)系,ETL流程包含了若干任務(wù)和轉(zhuǎn)移信息,轉(zhuǎn)移信息用來標(biāo)識任務(wù)先后順序,從而確定ETL流程中各任務(wù)的關(guān)系圖;在ETL系統(tǒng)中,操作組件被指派給工作流任務(wù),作為任務(wù)的執(zhí)行應(yīng)用程序;每個操作組件包含著特定的轉(zhuǎn)換規(guī)則設(shè)置和操作屬性,轉(zhuǎn)換規(guī)則是指操作中處理的各個字段的映射關(guān)系,如源表A的year,month,day三個字段映射到目標(biāo)表B的date字段,操作屬性是指針對數(shù)據(jù)行記錄的處理屬性,如只處理源表中工齡字段值大于10年的記錄。

ETL系統(tǒng)的元數(shù)據(jù)的樹形關(guān)系特點使得元數(shù)據(jù)信息很適合用XML文件來記錄。XML樹結(jié)構(gòu)直觀地表現(xiàn)出元數(shù)據(jù)的關(guān)系,并提供方便的操作方法。

3.2 工作流引擎

為了提供靈活的控制調(diào)度能力,本系統(tǒng)構(gòu)建輕量級工作流引擎,調(diào)度中心接收到由元數(shù)據(jù)管理模塊解析生成的流程定義數(shù)據(jù),檢查ETL任務(wù)之間的依賴關(guān)系、轉(zhuǎn)發(fā)控制等關(guān)聯(lián),從而確定任務(wù)執(zhí)行的實際流程,并按照這個流程調(diào)度活動進行執(zhí)行,工作流調(diào)度流程如圖4所示:

3.3

ETL操作組件庫

ETL系統(tǒng)中,最終完成從數(shù)據(jù)源到數(shù)據(jù)目標(biāo)的映射轉(zhuǎn)換的工作是由ETL操作組件來承擔(dān)的。一個功能健全的ETL操作組件庫,是ETL系統(tǒng)必備的部分。

在本系統(tǒng)中,完成這項工作的操作部件以組件庫的形式發(fā)布,供工作流引擎調(diào)度執(zhí)行;同時,操作組件遵循統(tǒng)一的接口開發(fā),并添加到組件庫中;從而大大增強了系統(tǒng)的可擴展性。系統(tǒng)現(xiàn)有的操作組件庫如表1所示:

4 ETL系統(tǒng)的實現(xiàn)

4.1 基于XML的元數(shù)據(jù)管理

在ETL系統(tǒng)中,元數(shù)據(jù)庫是一個基礎(chǔ)元素,它保存記錄了ETL過程中所需的各種輔助信息,是ETL過程正確執(zhí)行的關(guān)鍵。這些輔助信息主要包含了如下信息:

·映射元數(shù)據(jù)(mapping meta_data,MM):這一模型用于描述映射規(guī)則及其映射表達(dá)式。我們使用映射表達(dá)式來表示標(biāo)識目標(biāo)字段如何從一系列源字段映射而來所需要的信息。

·源模型( source model,SM):用于描述業(yè)務(wù)系統(tǒng)源數(shù)據(jù)的模型。

·目標(biāo)模型( target model,TM)和源模型類似,它描述一個目標(biāo)數(shù)據(jù)模型。

ETL系統(tǒng)中擁有一個豐富的ETL操作組件庫,這些組件是完成數(shù)據(jù)映射的最終實現(xiàn)者,為了保存記錄各種操作組件信息,為工作流引擎提供一個統(tǒng)一的使用接口,系統(tǒng)利用面向?qū)ο笤O(shè)計的思路,構(gòu)建元數(shù)據(jù)繼承體系,抽象得到一個統(tǒng)一的接口,屏蔽了復(fù)雜、相異的具體實現(xiàn)。

元數(shù)據(jù)管理實現(xiàn)中,元數(shù)據(jù)信息以XML文件的形式保存,元數(shù)據(jù)中各種對象信息用一個節(jié)點表示,對象之間的關(guān)系,則在樹形層次關(guān)系中得以體現(xiàn)。元數(shù)據(jù)管理包括了內(nèi)存對象到文件信息的編輯、更新以及文件信息到內(nèi)存對象的解析、構(gòu)造兩個部分。

4.2 輕量級的工作流引擎

工作流引擎對ETL流程的執(zhí)行進行總體控制,是ETL系統(tǒng)的調(diào)度中心。工作流引擎負(fù)責(zé)從ETL流程定義形成的圖結(jié)構(gòu)中,分析出各個階段中處于就緒狀態(tài)的任務(wù),分配相應(yīng)的資源,并啟動任務(wù)執(zhí)行,如圖5所示,工作流引擎的主要工作包括:

(1)解析流程定義文件,分析出流程中包含的任務(wù);

(2)分析流程圖中各任務(wù)的狀態(tài);

(3)為就緒狀態(tài)的任務(wù)分配系統(tǒng)資源;

(4)啟動得到資源的任務(wù);

(5)循環(huán)步驟2~步驟4,直到整個流程執(zhí)行完成。

在整個流程的調(diào)度過程中,工作流引擎維持著三個隊列一一未就緒任務(wù)隊列、就緒狀態(tài)任務(wù)隊列和已完成任務(wù)隊列,三個隊列的管理如下:

·流程剛啟動的時候,就緒狀態(tài)任務(wù)隊列包含了流程的啟動任務(wù);

·系統(tǒng)存在空閑資源時,引擎將處于就緒狀態(tài)任務(wù)隊列隊頭的任務(wù)出隊,為其分配資源,并啟動執(zhí)行;

·任務(wù)執(zhí)行成功后,引擎將任務(wù)被加入到已完成任務(wù)隊列中。

·當(dāng)有新任務(wù)進入已完成任務(wù)隊列時,啟動任務(wù)狀態(tài)分析工作,分析任務(wù)的轉(zhuǎn)移信息,更新狀態(tài)的就緒狀態(tài),并將已處于就緒狀態(tài)的任務(wù)加入到就緒隊列。

當(dāng)所有的任務(wù)均成功執(zhí)行后,引擎便完成對ETL流程的調(diào)度。

4.3 基于數(shù)據(jù)庫引擎的ETL操作組件

基本數(shù)據(jù)庫引擎的ETL操作組件實現(xiàn)中,我們允許數(shù)據(jù)庫管理系統(tǒng)(DBMS)在作為數(shù)據(jù)存儲介質(zhì)的同時,扮演數(shù)據(jù)轉(zhuǎn)換引擎的角色。ETL系統(tǒng)中的各種轉(zhuǎn)換映射規(guī)則,可以以soL查詢的形式體現(xiàn),soL查詢可以用于任何構(gòu)造過程,包括數(shù)據(jù)抽取、直接存儲、清洗過程和整個流程的映射規(guī)則信息傳送。

從ETL映射規(guī)則到soL查詢的產(chǎn)生過程,由soL生成器完成。生成器可以從元數(shù)據(jù)庫中讀取必要的參數(shù)和映射規(guī)則來創(chuàng)建一個soL轉(zhuǎn)換。具體來說,一個映射元數(shù)據(jù)作為生成器的參數(shù)輸入,從而生成操作的soL查詢。在這個過程中,所有的控制和檢查都應(yīng)用于數(shù)據(jù),因此,這些查詢不僅僅是對數(shù)據(jù)的修飾;它裝載數(shù)據(jù)模式結(jié)構(gòu)和有效的值集。我們使用soL查詢是因為它們易于理解,而且在DBMS中非常高效。現(xiàn)有的工具大都創(chuàng)建一系列的程序來完成轉(zhuǎn)換過程,對這些工具進行優(yōu)化是相當(dāng)不容易的。相反,soL生成器使用查詢優(yōu)化來得到高性能。

4.4 ETL系統(tǒng)的可擴展性與開放性

ETL系統(tǒng)的核心實現(xiàn)包括了wfProcess(工作流流程)、wfActivity(工作流活動)、wfTransition(工作流轉(zhuǎn)移)、ETLLib(ETL操作組件庫)和Re-pository(元數(shù)據(jù)管理)五大部分,其中wfProcess、wfActivity和wfTransition組成了ETL系統(tǒng)的流程管理內(nèi)核,負(fù)責(zé)整個數(shù)據(jù)倉庫化過程編排和執(zhí)行;ETLLib是數(shù)據(jù)抽取、轉(zhuǎn)移、清洗和加載操作的具體實現(xiàn),包含了若干種具體操作組件,流程執(zhí)行時,ETLLib操作組件作為一種資源依附到wfAc-tivity中,從而得到執(zhí)行;Repository則負(fù)責(zé)整個ETL過程的記錄和持久化工作。

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

4.5 ETL系統(tǒng)對大數(shù)據(jù)環(huán)境的支持

近年來,大數(shù)據(jù)技術(shù)發(fā)展迅猛,以Hadoop為代表的業(yè)界主流技術(shù)日趨成熟和穩(wěn)定,越來越多的企業(yè)和單位開始將生產(chǎn)和管理數(shù)據(jù)存儲在大數(shù)據(jù)平臺上,ETL系統(tǒng)操作組件庫增加了兩個實驗性的操作組件,如表2所示,以增強ETL系統(tǒng)對大數(shù)據(jù)環(huán)境的支持。

5 結(jié)束語

面向數(shù)據(jù)倉庫的ETL工具從數(shù)據(jù)倉庫化建設(shè)的角度實現(xiàn)多平臺數(shù)據(jù)環(huán)境和異構(gòu)數(shù)據(jù)環(huán)境的數(shù)據(jù)集成,利用工作流技術(shù)和元數(shù)據(jù)管理技術(shù)實現(xiàn)ETL流程的靈活定義、更新和調(diào)度執(zhí)行已經(jīng)是ETL系統(tǒng)發(fā)展的一個趨勢。

本文闡述了ETL的過程及其在數(shù)據(jù)倉庫系統(tǒng)建設(shè)中所處的重要地位,展示了一個基于輕量級工作流引擎的ETL系統(tǒng)設(shè)計,并且以組件的形式定制ETL轉(zhuǎn)換規(guī)則操作,使系統(tǒng)具有較好的開放性和可擴展性;同時,系統(tǒng)初步實現(xiàn)了對大數(shù)據(jù)環(huán)境數(shù)據(jù)抽取的支持,使得ETL工具能夠更好的適應(yīng)大數(shù)據(jù)環(huán)境的數(shù)據(jù)處理需求。在后續(xù)的研究中,我們將以ETL流程優(yōu)化和對大數(shù)據(jù)環(huán)境的全面支持作為研究重點,通過對流程的分析,利用合理的交換、提取/分發(fā)、合并/分解等手段,將ETL流程中的選擇操作向前推、數(shù)據(jù)處理操作向后推,從而提高整個ETL流程的執(zhí)行效率,并提升ETL工具對大數(shù)據(jù)時代發(fā)展需求的支持。

參考文獻

[1]WILLIAN H I.數(shù)據(jù)倉庫[M].北京:機械工業(yè)出版社,2006.

[2]孟維一,基于數(shù)據(jù)倉庫的保險商業(yè)智能系統(tǒng)設(shè)計與實現(xiàn)[D].北京:北京交通大學(xué),2016.

[3]李娜.基于數(shù)據(jù)倉庫的商務(wù)智能經(jīng)營系統(tǒng)設(shè)計與實現(xiàn)[J].現(xiàn)代電子技術(shù),2016,39(15):140-144.

[4]王新蓓,謝文閣,王中權(quán),數(shù)據(jù)倉庫解決方案在電子商務(wù)中的應(yīng)用[J].數(shù)字技術(shù)與應(yīng)用,2015,(4):101-101.

[5] 李蕓,基于增強ETL過程的大數(shù)據(jù)策略研究[J].電腦知識與技術(shù),2014,(34):8081-8082.

[6] 曾志浩,姚貝,張瓊林,等.基于Hadoop平臺的用戶行為挖掘[J].計算技術(shù)與自動化,2015,(2):100-103.

[7] 張春亮.基于ETL的企業(yè)數(shù)據(jù)交換平臺的設(shè)計與實現(xiàn)[D].哈爾濱工業(yè)大學(xué),2016.

[8] 王彥慈,銀行業(yè)務(wù)數(shù)據(jù)倉庫數(shù)據(jù)導(dǎo)入的分析與設(shè)計[J].軟件,2012,33(9):147-148.

[9]徐俊剛,裴瑩,數(shù)據(jù)ETL研究綜述[J].計算機科學(xué),2011,38(4):15-20.

[10] 林建昌,電力行業(yè)分布式ETL數(shù)據(jù)集成系統(tǒng)研究與實現(xiàn)[D].成都:電子科技大學(xué),2015.

主站蜘蛛池模板: 在线观看网站国产| 99在线观看视频免费| 无码专区国产精品第一页| 久久窝窝国产精品午夜看片| 97国产精品视频人人做人人爱| 亚洲天堂首页| 欧美黑人欧美精品刺激| 久久鸭综合久久国产| 中文字幕乱妇无码AV在线| 婷婷亚洲天堂| 色婷婷成人| 在线色国产| 狠狠色成人综合首页| 中文字幕乱妇无码AV在线 | 爽爽影院十八禁在线观看| 亚洲成AV人手机在线观看网站| 亚洲美女AV免费一区| 2022精品国偷自产免费观看| 无码高清专区| 亚洲最大综合网| 成人毛片在线播放| 五月婷婷伊人网| 久久综合色88| 亚洲欧美另类久久久精品播放的| 国产精品综合久久久| 91久草视频| 国产不卡在线看| 久久一色本道亚洲| 亚洲人网站| 伊人久久大香线蕉aⅴ色| 天天做天天爱夜夜爽毛片毛片| 久久综合色天堂av| 婷婷色中文网| 高清不卡毛片| 经典三级久久| 欧美怡红院视频一区二区三区| 精品久久国产综合精麻豆| 国产在线98福利播放视频免费| 婷婷激情五月网| 色哟哟精品无码网站在线播放视频| 亚洲无码视频喷水| 99热线精品大全在线观看| 午夜精品区| 日韩少妇激情一区二区| 欧美亚洲一区二区三区在线| 日韩福利在线视频| 欧美一级黄片一区2区| 18禁黄无遮挡免费动漫网站| 国产99久久亚洲综合精品西瓜tv| 国产区在线观看视频| 中文字幕一区二区人妻电影| 五月婷婷亚洲综合| 香蕉伊思人视频| 亚洲一级毛片在线播放| 色AV色 综合网站| 亚洲制服丝袜第一页| 99国产精品国产| 欧美日韩午夜| 中文字幕乱码二三区免费| 国产尤物jk自慰制服喷水| 免费在线色| 中文字幕久久亚洲一区| 亚洲综合色在线| 在线免费不卡视频| 日本欧美中文字幕精品亚洲| 亚洲AⅤ无码国产精品| 国产喷水视频| 国产一级毛片yw| 国产精品不卡片视频免费观看| 国产性生交xxxxx免费| 亚洲成a∧人片在线观看无码| 日韩黄色精品| 久久不卡精品| 免费欧美一级| 伊人久久综在合线亚洲2019| 亚洲欧美综合在线观看| 福利小视频在线播放| 国产老女人精品免费视频| 首页亚洲国产丝袜长腿综合| 91青青视频| 欧美黄色a| 国产精品短篇二区|