【正文】
相關(guān)研究現(xiàn)狀在用戶從越來越多、越來越復(fù)雜的數(shù)據(jù)中獲取有價值的信息的過程中,ETL扮演著非常重要的角色,ETL是后續(xù)數(shù)據(jù)挖掘的基石,一個好用且高效的ETL工具將幫助用戶更好地完成ETL工作以及更方便地搭建自己的數(shù)據(jù)處理平臺。還有就是,查詢計劃的優(yōu)化廣泛的應(yīng)用于ETL工具中,如何設(shè)計優(yōu)化規(guī)則才能使得優(yōu)化規(guī)則具有良好的可擴(kuò)展性值得深入研究。一般的ETL工具都會提供豐富的抽取、轉(zhuǎn)換和加載功能,以滿足實際應(yīng)用的需求,然而,由于應(yīng)用場景的多樣性和特定邏輯的復(fù)雜性,這些ETL工具提供的通用組件往往并不能滿足用戶的需求,這就要求ETL工具必須具有一定的可擴(kuò)展性,以滿足用戶多樣化、復(fù)雜化的需求。大數(shù)據(jù)技術(shù)離不開數(shù)據(jù)的收集整理,ETL工具負(fù)責(zé)從分布的、異構(gòu)數(shù)據(jù)源中抽取數(shù)據(jù)并對其進(jìn)行清洗和轉(zhuǎn)換,最后裝載到數(shù)據(jù)集市或數(shù)據(jù)倉庫中,是數(shù)據(jù)挖掘和聯(lián)機(jī)分析處理的基礎(chǔ)[1]。大數(shù)據(jù)可以被直觀的理解為規(guī)模巨大的異構(gòu)數(shù)據(jù),但是從更深一層來講,大數(shù)據(jù)還包括從海量數(shù)據(jù)中獲取價值的方法?;谶@種設(shè)計方式,可以很方便地擴(kuò)展優(yōu)化規(guī)則。通過分析開源ETL工具Hive和Pig的優(yōu)化規(guī)則實現(xiàn)機(jī)制,設(shè)計實現(xiàn)了自己的優(yōu)化規(guī)則實現(xiàn)機(jī)制。通過分析總結(jié)Hive和Pig腳本語言的語法特點,結(jié)合實際應(yīng)用需求,選取了一整套基本操作,并針對性地將基本操作設(shè)計為功能組件,然后通過分析基本操作間的依賴關(guān)系設(shè)計和實現(xiàn)了流程解析模塊,解析出來的腳本擁有和手工編寫的腳本一樣的邏輯。另一方面,ETL流程作為一個邏輯計劃,在解析成物理計劃的過程中需要根據(jù)優(yōu)化規(guī)則進(jìn)行一系列的優(yōu)化,而優(yōu)化規(guī)則并不是一成不變的,在ETL工具的使用過程中,新的優(yōu)化規(guī)則會被總結(jié)出來,因此,還需要使優(yōu)化規(guī)則具有較高的可擴(kuò)展性。同時,在大數(shù)據(jù)時代,ETL工具通過整合云計算技術(shù)以處理海量數(shù)據(jù)。. . . .并行ETL工具可擴(kuò)展技術(shù)的研究和開發(fā)摘 要ETL工具負(fù)責(zé)從分布的、異構(gòu)數(shù)據(jù)源中抽取數(shù)據(jù)并對其進(jìn)行清洗和轉(zhuǎn)換,最后裝載到數(shù)據(jù)集市或數(shù)據(jù)倉庫中,是數(shù)據(jù)挖掘和聯(lián)機(jī)分析處理的基礎(chǔ)。ETL工具通常提供了一些常用的基本操作,但是由于ETL應(yīng)用場景多樣、操作邏輯復(fù)雜,這些通用操作往往并不能滿足用戶的需求,這就要求ETL工具必須具有一定的可擴(kuò)展性,以滿足各種特殊需求。傳統(tǒng)ETL工具通過集成并行ETL工具Hive和Pig的方式來彌補(bǔ)大數(shù)據(jù)處理方面的不足,但是存在商用工具價格高昂而開源工具集成度不夠的問題,因此,較好地集成Hive和Pig以實現(xiàn)功能的擴(kuò)展非常重要。本文開發(fā)基于Hadoop的、B/S模式的并行ETL工具,并研究如何實現(xiàn)對并行ETL工具進(jìn)行擴(kuò)展,完成了如下幾項主要工作:通過分析MapReduce并行計算框架的實現(xiàn)細(xì)節(jié),設(shè)計實現(xiàn)了兩種方案來向現(xiàn)有工具中嵌入定制的MapReduce代碼以完成功能擴(kuò)展從而可以處理復(fù)雜的需求。這種集成方式擴(kuò)展了并行ETL的功能,同時保證了系統(tǒng)能夠提供一個統(tǒng)一的圖形用戶界面。實現(xiàn)上是通過將規(guī)則需要匹配的樣式和對應(yīng)的操作關(guān)聯(lián)起來,將規(guī)則的匹配機(jī)制和計劃的游走機(jī)制進(jìn)行隔離和抽象。關(guān)鍵字:ETL 可擴(kuò)展 MapReduce Hive優(yōu)化規(guī)則 參考RESEARCH AND IMPLEMENTATION OF PARALLEL ETL TOOLS’ EXTENSIBLE TECHNOLOGYABSTRACTETL tools, which are the foundation of data mining and online analytical processing, are used to extract data from distributed heterogeneous data source and load the result into data mart or warehouse after cleaning and transformation. ETL tools usually provide some basic operations, such as correlation, summary, and so on, but due to the diversity of ETL application scenario, the plexity of operation logic, these mon operations often cannot satisfy the needs of users, which requires the ETL tools must have certain extensibility, to meet the special needs of various. At the same time, in the era of big data, ETL tools handle huge amounts of data by integrating cloud puting technology. Traditional ETL tools make up for the large data processing by integrating parallel ETL tools such as Hive and Pig, but the existence of the high price of mercial tools and the problem that the open source tools’ integration is not enough. Therefore, how to integrate Hive and Pig better in order to realize the expansion of the function is very important. ETL workflow, on the other hand, as a logical plan, needs to be optimized according to a series of optimization rules in the process of being parsed into a physical plan. As the optimization rules are not set in stone and new optimization rules would be concluded in the process of using ETL tool, we need to make the optimization rules have high scalability.In this paper, based on Hadoop and B/S mode, we put forward a parallel ETL system and study how to extend the parallel ETL system. The main work in this paper includes:Through analyzing the implementation details of the MapReduce parallel puting framework, design and realize two kinds of solutions to plete the function extension of dealing with the plex requirements by embedding custom MapReduce code in the existing tool.Based on the analysis and summary the language grammar characteristics of Hive and Pig script, bined with the actual application requirements, select a set of basic operations and design functional ponents according to them. Then through analyzing the dependency between these operations, design and implement the workflow parsing module, which parses a workflow into a script with the same logic as the manually written script. This integration way extends the functionality of the parallel ETL tool and ensures that the system can provide a unified graphical user interface at the same time. Through analyzing how Hive and Pig implement their optimization mechanism, design and implement our own mechanism. A rule is designed to be a set of matching pattern and the corresponding operation, the mechanism of matching the rules and walking in the plan is isolated and abstracted. Based on this kind of design, optimization rules can be extended easily.KEY WORDS:ETL,extensibility,MapReduce,Hive,optimization rule 參考目錄第一章 緒論 1 論文研究背景及意義 1 相關(guān)研究現(xiàn)狀 1 研究內(nèi)容及成果 3 論文結(jié)構(gòu) 4第二章 相關(guān)概念及技術(shù)介紹 5 ETL 5 Hadoop 5 HDFS 6 MapReduce 7 并行ETL 8 Hive 8 Pig 9 優(yōu)化規(guī)則 9 表達(dá)式引擎 10 元數(shù)據(jù) 10 小結(jié) 10第三章 并行ETL工具可擴(kuò)展技術(shù)的研究 12 可擴(kuò)展組件技術(shù) 12 集成技術(shù) 14 Hive的集成 15 Pig的集成 15 優(yōu)化規(guī)則的可擴(kuò)展技術(shù) 16 Hive常用優(yōu)化規(guī)則 17 Hive優(yōu)化規(guī)則實現(xiàn)過程 18 Pig常用優(yōu)化規(guī)則 18 Pig優(yōu)化規(guī)則實現(xiàn)過程 19 小結(jié) 20第四章 并行ETL工具可擴(kuò)展技術(shù)的實現(xiàn) 22 系統(tǒng)架構(gòu)設(shè)計 22 部署架構(gòu) 23 自定義MapReduce組件的實現(xiàn) 23 自定義MR Java代碼組件 23 自定義MR Jar組件 25 并行ETL工具的集成 26 功能組件的實現(xiàn) 26 元數(shù)據(jù)處理的遷移和管理 35 工作流的解析 36 優(yōu)化規(guī)則的實現(xiàn) 41 操作的實現(xiàn) 41 規(guī)則的實現(xiàn) 41第五章 實驗及結(jié)果分析 44 自定義MapReduce組件 44 自定義MR Java組件 44 自定義MR Jar組件 45 集成并行ETL工具 45 Hive流程 46 Pig流程 47 優(yōu)化規(guī)則的可擴(kuò)展 48 實驗環(huán)境 48 實驗數(shù)據(jù) 48 實驗過程及結(jié)果分析 49 小結(jié) 50第六章 總結(jié)與展望 51 總結(jié) 51 下一步工作 51參考文獻(xiàn) 53致謝 54攻讀學(xué)位期間發(fā)表的學(xué)術(shù)論文 55 參考. . . .第一章 緒論 論文研究背景及意義隨著云計算技術(shù)的逐漸成熟,大數(shù)據(jù)正在引發(fā)越來越多的關(guān)注。該方法包括數(shù)據(jù)的收集、整理、分析、挖掘等多個方面,最終的目的是從中獲得有價值信息并衍化出一種新的商業(yè)模式。大數(shù)據(jù)時代的ETL和云計算技術(shù)緊密結(jié)合,工業(yè)界和學(xué)術(shù)界在并行ETL技術(shù)的研究和開發(fā)方面都取得了豐碩的成果。另外一方面,基于云計算技術(shù)的并行ETL產(chǎn)品Hive和Pig使得用戶可以通過寫腳本的方式進(jìn)行ETL操作,不少傳統(tǒng)ETL工具通過集成它們來提供對大數(shù)據(jù)處理方面的支持,但是支持的程度不一,商用的價格昂貴,開源的集成度不夠。本文工作基于作者參與開發(fā)的一個并行數(shù)據(jù)挖掘平臺項目,旨在提高并行ETL工具的可擴(kuò)展性,使得并行ETL工具能夠應(yīng)用于更多的場景,能夠以統(tǒng)一的拖拽組件構(gòu)建ETL流程的方式集成開源并行ETL產(chǎn)品Hive和Pig,并設(shè)計實現(xiàn)了優(yōu)化規(guī)則的表示和實現(xiàn)機(jī)制,使得實際應(yīng)用中發(fā)現(xiàn)的優(yōu)化規(guī)則或者從其他產(chǎn)品中借鑒的優(yōu)化規(guī)則可以方便地添加到系統(tǒng)中以實現(xiàn)比較好的可擴(kuò)展性。正因為ETL工具的重要性,市場對ETL工具擁有強(qiáng)烈的需求,ETL工具蘊(yùn)含的商業(yè)價值不容小覷,一些企業(yè)開發(fā)出功能強(qiáng)大的商用ETL工具并獲得廣泛的使用,這些企業(yè)也從中收獲頗豐。同時,數(shù)據(jù)的價值被越來越多的人認(rèn)識到,大量的數(shù)據(jù)被生成以發(fā)掘其中的價值,大數(shù)據(jù)時代的到來對數(shù)據(jù)處理技術(shù)提出了新的需求,一些傳統(tǒng)ETL工具要么必須通過大幅度提高軟硬件成本以實現(xiàn)對大數(shù)據(jù)的處理,要么根本無法滿足這些需求,并行ETL工具的出現(xiàn)使得對于大數(shù)據(jù)的處理成為現(xiàn)實。Datastage和PowerCenter都具有友好的圖形用戶界面,提供豐富的ETL操作組件。Teradata的ETL Automation采用命令行的方式操作,只提供了兩種簡單的GUI:一種用來定義和管理在ETL Automation中的作業(yè)和作業(yè)關(guān)系;另一種用來完成對任務(wù)執(zhí)行狀態(tài)的監(jiān)控。傳統(tǒng)E