• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于ETL的異構(gòu)數(shù)據(jù)集成框架研究

      2020-12-23 04:53:25馬竹根林晶于述春李森林
      西部論叢 2020年16期
      關(guān)鍵詞:數(shù)據(jù)集成數(shù)據(jù)倉(cāng)庫(kù)

      馬竹根 林晶 于述春 李森林

      摘 要:介紹了ETL原理及Kettle的使用方法,以 ETL技術(shù)為核心設(shè)計(jì)了ETL驅(qū)動(dòng)的數(shù)據(jù)倉(cāng)庫(kù)技術(shù)的數(shù)據(jù)集成框架,制定了跨平臺(tái)數(shù)據(jù)集成解決方案,利用Kettle工具驗(yàn)證和實(shí)現(xiàn)了多源異構(gòu)數(shù)據(jù)的集成,簡(jiǎn)化了數(shù)據(jù)整合的過(guò)程,實(shí)現(xiàn)了信息系統(tǒng)間數(shù)據(jù)共享,能有效地完成特定的數(shù)據(jù)處理任務(wù)。

      關(guān)鍵詞:數(shù)據(jù)集成;數(shù)據(jù)倉(cāng)庫(kù);ETL;Kettle

      1引言

      數(shù)據(jù)在當(dāng)今社會(huì)的重要性是毋庸置疑的,通過(guò)執(zhí)行數(shù)據(jù)分析,幾乎任何領(lǐng)域的可用數(shù)據(jù)都為用戶創(chuàng)造了價(jià)值并獲得競(jìng)爭(zhēng)優(yōu)勢(shì),數(shù)據(jù)集成需求變得日益緊迫。數(shù)據(jù)集成是一個(gè)迭代的過(guò)程,由來(lái)自多個(gè)異構(gòu)源系統(tǒng)的數(shù)據(jù)合并組成提供數(shù)據(jù)的統(tǒng)一視圖。集成來(lái)自多個(gè)異構(gòu)來(lái)源的數(shù)據(jù)以支持分析報(bào)告通常被稱(chēng)為數(shù)據(jù)倉(cāng)庫(kù)。為了構(gòu)建數(shù)據(jù)倉(cāng)庫(kù),必要的預(yù)處理步驟通常被稱(chēng)為提取、轉(zhuǎn)換和加載。ETL(Extract-Transform- Load)即數(shù)據(jù)抽取、轉(zhuǎn)換和裝載的過(guò)程,是用于解決多源異構(gòu)數(shù)據(jù)集成的一系列過(guò)程,是一種多源數(shù)據(jù)集成的有效方法[1]。Kettle 是一款國(guó)外開(kāi)源的 ETL 工具,能夠高效穩(wěn)定地對(duì)數(shù)據(jù)進(jìn)行抽取,可以提供面向不同行業(yè)的數(shù)據(jù)集成解決方案[2]。本文設(shè)計(jì)和實(shí)現(xiàn)一個(gè)異構(gòu)數(shù)據(jù)集成框架,該框架采用數(shù)據(jù)倉(cāng)庫(kù)技術(shù),使用Kettle ETL驅(qū)動(dòng)的方法從多個(gè)數(shù)據(jù)源提取和集成數(shù)據(jù)。

      2 相關(guān)技術(shù)介紹

      ETL 可以將結(jié)構(gòu)化或非結(jié)構(gòu)化的數(shù)據(jù)進(jìn)行抽取,然后采用一定的規(guī)則進(jìn)行清洗轉(zhuǎn)換形成符合要求的標(biāo)準(zhǔn)數(shù)據(jù),最后將其裝載進(jìn)中心數(shù)據(jù)庫(kù)或數(shù)據(jù)倉(cāng)庫(kù)。ETL處理分為3步,分別是:數(shù)據(jù)抽取、數(shù)據(jù)清洗和轉(zhuǎn)換、數(shù)據(jù)裝載。數(shù)據(jù)抽取通常從數(shù)據(jù)源中提取一部分信息并提供給轉(zhuǎn)換,這些數(shù)據(jù)源可以由具有不同數(shù)據(jù)格式和數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)清洗可以使用各種專(zhuān)門(mén)的方法來(lái)消除集成多個(gè)數(shù)據(jù)源時(shí)的錯(cuò)誤,把不合規(guī)則的數(shù)據(jù)進(jìn)行處理和過(guò)濾,包括不完整數(shù)據(jù)、錯(cuò)誤數(shù)據(jù)、重復(fù)數(shù)據(jù)和缺省值等[3]。數(shù)據(jù)轉(zhuǎn)換將經(jīng)過(guò)清洗的數(shù)據(jù)轉(zhuǎn)換到目標(biāo)模式中,可以在ETL工具的幫助下進(jìn)行可視化操作的方式實(shí)現(xiàn)各種復(fù)雜的轉(zhuǎn)換。數(shù)據(jù)裝載主要是將經(jīng)過(guò)轉(zhuǎn)換后的統(tǒng)一格式的數(shù)據(jù)批量導(dǎo)入到數(shù)據(jù)倉(cāng)庫(kù)中進(jìn)行存儲(chǔ)[4],數(shù)據(jù)裝載可以通過(guò)直接連接到數(shù)據(jù)庫(kù)來(lái)執(zhí)行。

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

      3 異構(gòu)數(shù)據(jù)集成框架

      異構(gòu)數(shù)據(jù)集成框架由數(shù)據(jù)源、ETL過(guò)程、數(shù)據(jù)倉(cāng)庫(kù)和最終用戶層組成,如圖1所示。ETL是建立數(shù)據(jù)倉(cāng)庫(kù)的重要的一環(huán),將來(lái)自不同源系統(tǒng)的數(shù)據(jù)傳輸?shù)狡渌麛?shù)據(jù)存儲(chǔ)系統(tǒng)并適應(yīng)新的需求,為數(shù)據(jù)挖掘系統(tǒng)、商務(wù)智能軟件等決策支持系統(tǒng)產(chǎn)生更加有效的結(jié)果提供數(shù)據(jù)支持。

      數(shù)據(jù)可以有多種來(lái)源,如關(guān)系數(shù)據(jù)庫(kù)、XML文件、文本文件等,這些異構(gòu)數(shù)據(jù)源具有一些獨(dú)特的特征,應(yīng)該對(duì)其進(jìn)行管理,以便為ETL過(guò)程有效地檢索數(shù)據(jù)。ETL將不同來(lái)源的數(shù)據(jù)提取到暫存區(qū),然后數(shù)據(jù)被轉(zhuǎn)換并加載到數(shù)據(jù)倉(cāng)庫(kù)。要執(zhí)行這樣的過(guò)程,可以使用一個(gè)開(kāi)源的ETL工具來(lái)處理不同性質(zhì)的數(shù)據(jù)源。在識(shí)別的數(shù)據(jù)被提取之后,下一步是改變提取的數(shù)據(jù)的形式以適應(yīng)目標(biāo)數(shù)據(jù)倉(cāng)庫(kù)的結(jié)構(gòu)。轉(zhuǎn)換是對(duì)數(shù)據(jù)執(zhí)行的一些活動(dòng),按照相關(guān)的規(guī)則將多源異構(gòu)數(shù)據(jù)進(jìn)行格式和結(jié)構(gòu)統(tǒng)一。最后,轉(zhuǎn)換后的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)倉(cāng)庫(kù)中,供最終用戶和最終用戶層的應(yīng)用程序訪問(wèn)。最終用戶可以使用各種工具來(lái)處理數(shù)據(jù),如報(bào)表、電子表格和其他圖表。

      4、基于ETL-Kettle模式的數(shù)據(jù)集成實(shí)現(xiàn)

      ETL過(guò)程是使用Kettle中的Spoon應(yīng)用程序來(lái)執(zhí)行的。Spoon是一個(gè)用于創(chuàng)建轉(zhuǎn)換和作業(yè)的圖形界面工具,基于圖形化界面操作Kettle進(jìn)行數(shù)據(jù)處理,只需按照數(shù)據(jù)處理的流程配置相應(yīng)的步驟即可。通過(guò)構(gòu)建多個(gè)轉(zhuǎn)換對(duì)象來(lái)集成數(shù)據(jù),創(chuàng)建的各種轉(zhuǎn)換對(duì)象應(yīng)該以正確的順序執(zhí)行,因此這些轉(zhuǎn)換對(duì)象將被視為作業(yè)中的作業(yè)項(xiàng)。Spoon應(yīng)用程序中的作業(yè)用于執(zhí)行所有轉(zhuǎn)換對(duì)象,如初始化數(shù)據(jù)倉(cāng)庫(kù)表、從源中提取數(shù)據(jù)以及將轉(zhuǎn)換后的數(shù)據(jù)加載到數(shù)據(jù)倉(cāng)庫(kù)中等轉(zhuǎn)換依次執(zhí)行。下面介紹一種針對(duì)多平臺(tái)的數(shù)據(jù)加載到數(shù)據(jù)倉(cāng)庫(kù)的解決方案。

      整個(gè)數(shù)據(jù)抽取流程包括2個(gè)作業(yè)和7個(gè)轉(zhuǎn)換,總作業(yè)如圖2所示,抽取數(shù)據(jù)作業(yè)如圖3所示??傋鳂I(yè)包括一個(gè)轉(zhuǎn)換和一個(gè)作業(yè),獲取表名列表是要獲取到數(shù)據(jù)倉(cāng)庫(kù)中要抽取的表名,抽取數(shù)據(jù)作業(yè)包括了數(shù)據(jù)抽取、清洗、轉(zhuǎn)換的過(guò)程。

      在對(duì)數(shù)據(jù)表進(jìn)行匯總時(shí)要建立兩個(gè)日志表,一個(gè)用來(lái)記錄成功或失敗的記錄,另一個(gè)用來(lái)分配成功的抽取表以便進(jìn)行數(shù)據(jù)清洗、轉(zhuǎn)換等數(shù)據(jù)處理。為方便起見(jiàn),我們把需要抽取數(shù)據(jù)的表命名為基本表,記錄成功或失敗記錄的表命名為歷史表,分配清洗轉(zhuǎn)換任務(wù)的表命名為清洗表。數(shù)據(jù)抽取的基本思路是:對(duì)基本表進(jìn)行抽取,如果抽取成功,則將基本表中全部數(shù)據(jù)記錄到歷史表中,并標(biāo)記為“成功”;如果抽取失敗,則終止表的提取過(guò)程,并將失敗的記錄在歷史記錄表中進(jìn)行記錄。數(shù)據(jù)抽取具體流程如下:

      (1)設(shè)置表名變量。從上一步獲取表名列表的結(jié)果中獲取記錄,將表名設(shè)置為變量,方便后續(xù)表輸入和表輸出的使用。(2)統(tǒng)計(jì)表中記錄數(shù)。如果記錄數(shù)大于0就繼續(xù)進(jìn)行下一步,否則就指向“表不存或表中沒(méi)有數(shù)據(jù)”步驟,跳過(guò)后面的步驟,進(jìn)入下一個(gè)循環(huán)。(3)獲取PRIMARY_VALUE。獲取每個(gè)表的主鍵值并放在一個(gè)字段里。(4)設(shè)置平臺(tái)變量。為了區(qū)分不同的平臺(tái),可以通過(guò)語(yǔ)句獲取每個(gè)平臺(tái)對(duì)應(yīng)的平臺(tái)值。(5)抽取基本表。主要分為3步:獲取表名、表輸入、表輸出。如果出現(xiàn)錯(cuò)誤,就會(huì)停止抽取表并指向“失敗新增history”。(6)新增歷史表。基本的流程就是獲取變量(包括表名變量,主鍵值)、表輸入、增加序列(以序列號(hào)作為每條記錄的主鍵)、輸出到歷史表。(7)新增清洗表。從歷史表中獲取數(shù)據(jù)并加入條件判斷將數(shù)據(jù)合理分配給某個(gè)清洗服務(wù)器,可以使用平均表數(shù)量的分配方法,也可以使用固定平臺(tái)對(duì)應(yīng)固定清洗服務(wù)器的方法,還可以使用隨機(jī)抽取的方法。

      5 結(jié)語(yǔ)

      數(shù)據(jù)集成是建立數(shù)據(jù)倉(cāng)庫(kù)、進(jìn)行數(shù)據(jù)挖掘和決策分析的重要組成部分,KETTLE在多源異構(gòu)數(shù)據(jù)集成方面具有易于使用,開(kāi)發(fā)簡(jiǎn)單的優(yōu)勢(shì)。本研究設(shè)計(jì)了ETL驅(qū)動(dòng)的異構(gòu)數(shù)據(jù)集成框架,并制定了多平臺(tái)數(shù)據(jù)集成方案,實(shí)際完成了數(shù)據(jù)抽取、轉(zhuǎn)換和加載等過(guò)程的數(shù)據(jù)集成。利用KETTLE能夠快速高效地實(shí)現(xiàn)多源異構(gòu)數(shù)據(jù)集成,形成高質(zhì)量的數(shù)據(jù)為后期的數(shù)據(jù)挖掘與分析奠定數(shù)據(jù)基礎(chǔ)。

      參考文獻(xiàn)

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

      [2] 陳亞?wèn)|,鮮國(guó)建,趙瑞雪,劉現(xiàn)武,郭淑敏.基于ETL-KETTLE模式的蘋(píng)果產(chǎn)業(yè)數(shù)據(jù)整合[J].江蘇農(nóng)業(yè)科學(xué),2019,47(10):230-234.

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

      [4] 廉博. 數(shù)據(jù)倉(cāng)庫(kù)中ETL技術(shù)的研究與實(shí)現(xiàn)[D].沈陽(yáng)工業(yè)大學(xué),2006.

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

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

      作者簡(jiǎn)介:馬竹根(1971—),男,講師,碩士,研究方向?yàn)閿?shù)據(jù)庫(kù)、軟件工程。

      猜你喜歡
      數(shù)據(jù)集成數(shù)據(jù)倉(cāng)庫(kù)
      基于數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)傾斜解決方案研究
      基于數(shù)據(jù)倉(cāng)庫(kù)的住房城鄉(xiāng)建設(shè)信息系統(tǒng)整合研究
      頁(yè)巖氣工程大數(shù)據(jù)倉(cāng)庫(kù)建設(shè)與管理系統(tǒng)開(kāi)發(fā)
      錄井工程(2017年3期)2018-01-22 08:39:50
      分布式存儲(chǔ)系統(tǒng)在液晶面板制造數(shù)據(jù)倉(cāng)庫(kù)中的設(shè)計(jì)
      電子制作(2016年15期)2017-01-15 13:39:15
      探析電力系統(tǒng)調(diào)度中數(shù)據(jù)倉(cāng)庫(kù)技術(shù)的應(yīng)用
      成本與制造數(shù)據(jù)集成分析
      基于Biztalk的異構(gòu)醫(yī)療信息系統(tǒng)數(shù)據(jù)集成研究
      信息系統(tǒng)集成與數(shù)據(jù)集成策略研究
      XML數(shù)據(jù)交換技術(shù)在中醫(yī)智能化診斷數(shù)據(jù)集成中的應(yīng)用
      高校一表通系統(tǒng)建設(shè)探究
      宁阳县| 南雄市| 钦州市| 吉林市| 潮安县| 宿迁市| 湖口县| 新昌县| 永泰县| 昆山市| 阿拉善盟| 综艺| 日喀则市| 义马市| 南部县| 西宁市| 安龙县| 汕尾市| 纳雍县| 宝丰县| 常宁市| 涪陵区| 南乐县| 峡江县| 新晃| 浠水县| 瑞昌市| 延川县| 株洲县| 黄冈市| 松阳县| 丘北县| 静安区| 黎平县| 讷河市| 泸西县| 永修县| 永定县| 中江县| 弥渡县| 阳城县|