亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于大數(shù)據(jù)處理的ETL框架的研究與設(shè)計(jì)

        2016-09-14 09:17:14沈琦陳博
        電子設(shè)計(jì)工程 2016年2期
        關(guān)鍵詞:數(shù)據(jù)處理功能設(shè)計(jì)

        沈琦,陳博

        (北京工業(yè)大學(xué) 北京 100124)

        基于大數(shù)據(jù)處理的ETL框架的研究與設(shè)計(jì)

        沈琦,陳博

        (北京工業(yè)大學(xué) 北京100124)

        針對(duì)傳統(tǒng)抽取、轉(zhuǎn)換、裝載(ETL)架構(gòu)在數(shù)據(jù)處理過程控制方面和數(shù)據(jù)產(chǎn)品開發(fā)效率方面的不足,提出一種基于大數(shù)據(jù)處理的ETL架構(gòu)。通過分析主流的ETL工具--Datastage的工作原理和ETL過程的特點(diǎn),設(shè)計(jì)ETL元數(shù)據(jù)描述模塊、ETL任務(wù)描述模塊、配置解析模塊和數(shù)據(jù)任務(wù)調(diào)度模塊等。使用該框架處理數(shù)據(jù)任務(wù)時(shí),以配置文件的方式開發(fā),使工作效率得到了極大的提升?;谠撛O(shè)計(jì)思想開發(fā)一款基于大數(shù)據(jù)處理的ETL工具,在對(duì)數(shù)據(jù)處理過程(E、T、L)的控制方面得到了改進(jìn),同時(shí)也可以使數(shù)據(jù)開發(fā)人員從大量重復(fù)的操作中解脫出來,將更多的精力放在數(shù)據(jù)的邏輯處理方面。

        大數(shù)據(jù)處理;數(shù)據(jù)抽取;數(shù)據(jù)轉(zhuǎn)換;數(shù)據(jù)加載;ETL框架

        信息是現(xiàn)代企業(yè)的重要資源,是企業(yè)運(yùn)用科學(xué)管理、決策分析的基礎(chǔ)。目前,大多數(shù)企業(yè)花費(fèi)大量的資金和時(shí)間來構(gòu)建聯(lián)機(jī)事務(wù)處理OLTP的業(yè)務(wù)系統(tǒng)和辦公自動(dòng)化系統(tǒng),用來記錄事務(wù)處理的各種相關(guān)數(shù)據(jù)。據(jù)統(tǒng)計(jì),數(shù)據(jù)量每2~3年時(shí)間就會(huì)成倍增長,這些數(shù)據(jù)蘊(yùn)含著巨大的商業(yè)價(jià)值,而企業(yè)所關(guān)注的通常只占在總數(shù)據(jù)量的2%~4%左右。因此,企業(yè)仍然沒有最大化地利用已存在的數(shù)據(jù)資源,導(dǎo)致浪費(fèi)了更多的時(shí)間和資金,也失去制定關(guān)鍵商業(yè)決策的最佳契機(jī)。于是,企業(yè)如何通過 各種技術(shù)手段,并把數(shù)據(jù)轉(zhuǎn)換為信息、知識(shí),已經(jīng)成了提高其核心競爭力的主要瓶頸。而ETL[2]則是主要的一個(gè)技術(shù)手段。

        1 主流的ETL工具——Datastage

        DataStage[3]包括設(shè)計(jì)、開發(fā)、編譯、運(yùn)行及管理等整套工具。通過運(yùn)用DataStage能夠?qū)碜砸粋€(gè)或多個(gè)不同數(shù)據(jù)源中的數(shù)據(jù)進(jìn)行析取、轉(zhuǎn)換,再將結(jié)果裝載到一個(gè)或多個(gè)目的庫中。通過DataStage的處理,最終用戶可以得到分析和決策支持所需要的及時(shí)而準(zhǔn)確的數(shù)據(jù)及相關(guān)信息。DataStage支持不同種類的數(shù)據(jù)源和目的庫,它既可以直接從Oracle、Sybase等各種數(shù)據(jù)庫中存取數(shù)據(jù),也可以通過ODBC接口訪問各種數(shù)據(jù)庫,還支持Sequential?file類型的數(shù)據(jù)源。這一特性使得多個(gè)數(shù)據(jù)源與目標(biāo)的連接變得非常簡單,可以在單個(gè)任務(wù)中對(duì)多個(gè)甚至是無限個(gè)數(shù)據(jù)源和目標(biāo)進(jìn)行連接。DataStage自帶了超過300個(gè)的預(yù)定義庫函數(shù)和轉(zhuǎn)換,即便是非常復(fù)雜的數(shù)據(jù)轉(zhuǎn)換也可以很輕松的完成。它的圖形化設(shè)計(jì)工具可以控制任務(wù)執(zhí)行而無須任何腳本。

        DataStage整體上還是按照ETL任務(wù)處理思想進(jìn)行數(shù)據(jù)集成,不過它的并行處理技術(shù)使用分區(qū)處理技巧,將大型的整合工作切割為分區(qū)(分割并行處理)并將這些分區(qū)同時(shí)傳送給所有處理器(管道并行處理)。管道與分區(qū)并行處理的組合可提供完整的并行處理功能(效能提升與處理器數(shù)量成正比),并讓硬件成為性能的唯一決定性因素。不過下游的處理可能需要以不同方式分區(qū)數(shù)據(jù)。透過自動(dòng)重新分區(qū)數(shù)據(jù)的功能,使用者便可根據(jù)下游處理數(shù)據(jù)分割的需求重新分區(qū)處理流程上的數(shù)據(jù),而不需要將數(shù)據(jù)儲(chǔ)存在磁盤上。其具體工作流程如圖1所示。

        圖1 Datastage的工作流程圖Fig.1 The flow chart of Datastage

        DataStage的可執(zhí)行應(yīng)用的最小單位為ETL任務(wù)。而這些任務(wù)是通過DataStage Designer、DataStage Manager、DataStage Director來完成的。DataStage Designer是ETL任務(wù)開發(fā)的核心環(huán)境。DataStage Designer的主要功能可以概括為以下3個(gè)方面:ETL任務(wù)的開發(fā)、ETL任務(wù)的編譯、ETL任務(wù)的執(zhí)行。DataStage Manager主要用來管理項(xiàng)目資源[4]。DataStage Director主要有以下兩個(gè)功能:監(jiān)測ETL任務(wù)的運(yùn)行狀態(tài)、設(shè)置何時(shí)運(yùn)行ETL任務(wù)。

        2 基于數(shù)據(jù)處理的ETL框架的設(shè)計(jì)

        現(xiàn)今企業(yè)每天都會(huì)產(chǎn)生大量的數(shù)據(jù),這些數(shù)據(jù)絕大部分都會(huì)存儲(chǔ)于日志文件中,而我們的ETL框架的功能就是需要將這些日志文件進(jìn)行數(shù)據(jù)抽取、再對(duì)抽取出來的數(shù)據(jù)進(jìn)行處理和轉(zhuǎn)換、最終導(dǎo)入到為上層應(yīng)用服務(wù)的DB中。hadoop分布式集群,其提供了hdfs文件系統(tǒng)可以為ETL工具提供技術(shù)支持。Hive是基于hadoop的一個(gè)數(shù)據(jù)倉庫管理技術(shù),可以方便我們對(duì)HDFS上的文件進(jìn)行轉(zhuǎn)換處理操作。因此,文中提供的ETL框架的運(yùn)行環(huán)境為:hadoop、hive(數(shù)據(jù)倉庫管理工具)、mysql(目標(biāo)數(shù)據(jù)庫)、python(主語言,還需要用到少量的shell腳本)。ETL的整體架構(gòu)[5],如圖2所示。

        圖2 ETL架構(gòu)圖Fig.2 ETL architecture diagram

        由ETL的整體框架可以看出ETL操作[6]主要是在數(shù)據(jù)從底層數(shù)據(jù)源到上層應(yīng)用數(shù)據(jù)庫過程中進(jìn)行。為了能更好地完成這些操作我們需要為這些操作設(shè)計(jì)良好的任務(wù)語法,使我們編寫的數(shù)據(jù)任務(wù)腳本可以高效地處理在HDFS上的文件,還能使開發(fā)人員從繁重的代碼中解脫出來,將重心轉(zhuǎn)移到任務(wù)的邏輯上面;與此同時(shí),還要為這些語法,編寫相應(yīng)的解析程序,支撐本框架的語法體系;最后,要為任務(wù)處理過程中的一些常用操作提供公共工具接口,以方便全局調(diào)用。

        2.1任務(wù)語法設(shè)計(jì)

        任務(wù)語法是指我們?cè)谟帽疚奶峁┑目蚣荛_發(fā)數(shù)據(jù)任務(wù)時(shí),如何才能清晰地區(qū)分E、T、L 3個(gè)步驟;在每一步的配置文件中我們又該以什么樣的格式編寫,才能被本文設(shè)計(jì)的框架識(shí)別。設(shè)計(jì)任務(wù)語法,不僅可以使我們的任務(wù)邏輯清晰,而且還有利于團(tuán)隊(duì)開發(fā),極大的提高了開發(fā)效率。

        由于框架的主語言是python,并且python對(duì).yaml這種配置文件有很好的解析技術(shù)支持,所以本框架的任務(wù)配置文件選擇用.yaml文件。按照ETL任務(wù)的一般處理過——程數(shù)據(jù)抽取、轉(zhuǎn)換和加載(Extract、Transform、Load),因此我們可以將每個(gè)ETL任務(wù)都設(shè)計(jì)成E、T、L 3個(gè)子任務(wù)。每個(gè)任務(wù)的配置信息寫在相應(yīng)目錄下的task.yaml中,每個(gè)子任務(wù)目錄下還可以有一些其他的腳本,具體任務(wù)文件的編寫和腳本的相關(guān)規(guī)則將在下文做詳細(xì)介紹。

        ETL(extract,transform,load)是在建設(shè)數(shù)據(jù)倉庫過程中對(duì)一份數(shù)據(jù)的整個(gè)處理流程,大致過程為把數(shù)據(jù)從源系統(tǒng)抽?。‥)出來,經(jīng)過一系列的處理(T),然后加載到目標(biāo)庫中(L)。下面是一個(gè)任務(wù)的配置文件task.yaml的大致框架:

        parent:[parent_task_name]#父任務(wù)名稱,用來繼承

        task_name:[task_name]#任務(wù)名稱

        [phase_name]:#執(zhí)行的階段

        -step:[plugin_name].[module_name]#執(zhí)行中用到的插件配置

        [attr_name]:[attr_value]

        -step:[plugin_name].[module_name]

        [phase_name]:

        -step:

        下面對(duì)配置項(xiàng)進(jìn)行一些解釋:parent:父任務(wù)名稱,無特殊需求,統(tǒng)一配置為EtlTask。task_name:任務(wù)名稱,由開發(fā)者自行指定,保證不會(huì)與其他現(xiàn)在任務(wù)名稱重復(fù)即可。phase_name:階段名稱,對(duì)應(yīng)于EtlTask中target中的定義,比如前面的EtlTask定義了以下階段extract,transform,load分別對(duì)應(yīng)于ETL 3個(gè)階段。這些階段(phase)只是起了一個(gè)標(biāo)識(shí)作用,讓配置文件內(nèi)容看起來更清晰。真正的操作是由phase下的一系列的步驟(step)決定的。step:步驟名稱,指定這一步進(jìn)行什么操作,例如transfer.move_data,則代表指定了執(zhí)行transfer插件中的move_date模塊。這些插件都用python語言在框架中編寫。

        2.2配置文件解析

        配置文件解析部分的功能主要是負(fù)責(zé)將任務(wù)規(guī)則設(shè)計(jì)中產(chǎn)生的配置文件中出現(xiàn)的一些標(biāo)簽和插件的引用與框架的python腳本相關(guān)聯(lián)。

        2.2.1插件

        本框架中定義的插件主要分為transfer類、file類、script 類3大類插件。

        transfer插件主要定義了一些數(shù)據(jù)傳輸?shù)哪K,具體的模塊有:從ftp服務(wù)器上將數(shù)據(jù)日志文件下載到本地、從本地到HIVE、從本地到MYSQL數(shù)據(jù)庫。

        file插件主要定義了一些數(shù)據(jù)文件處理的模塊,具體模塊有:將文件增加一列常量數(shù)據(jù)、檢查文件是否為空、替換文件中的特殊字符。

        script插件主要定義了一些task.yaml文件中要調(diào)用的腳本文件的模塊,具體模塊有:script.shell(調(diào)用 shell腳本)、script.hive(調(diào)用hiveQL腳本)、script.sql(調(diào)用SQL腳本)。

        2.2.2linux命令

        本框架中有runtask、install_task兩大命令。

        runtask-d數(shù)據(jù)日期。例如:runtask-d 20110101;-d,--date=YYYYmmdd或者YYYYmmddHHMM。表示執(zhí)行2011年1月1號(hào)的任務(wù)。

        Install_task執(zhí)行任務(wù)名稱。例如:install_task data_time_info。表示安裝任務(wù)data_time_info。會(huì)將該任務(wù)的所需要的一些文件、數(shù)據(jù)信息加載到緩存。

        2.3主要功能

        本框架主要的功能有以下幾方面:初始化功能:清除db中數(shù)據(jù)和清除已存在文件;下載功能:下載上游數(shù)據(jù)文件,校驗(yàn)MD5;文件規(guī)則檢查功能:檢驗(yàn)下載的文件是否符合設(shè)定的規(guī)則;其他基礎(chǔ)db功能:同db相關(guān)的操作,如查詢?nèi)蝿?wù),查詢下載列表等。

        2.3.1初始化功能

        該模塊主要是對(duì)數(shù)據(jù)和文件進(jìn)行清理,比如需要導(dǎo)入2011-11-01的數(shù)據(jù),需要先把這天的數(shù)據(jù)刪除掉,避免插入重復(fù)的數(shù)據(jù);同時(shí)需要建立當(dāng)天數(shù)據(jù)的文件夾同時(shí)如果是修復(fù)數(shù)據(jù)的話會(huì)把之前下載過的這天的文件進(jìn)行刪除然后再進(jìn)行下載。具體流程,如圖3所示。

        圖3 初始化模塊流程圖Fig.3 Initialization module flow chart

        由上圖可以看出在執(zhí)行腳本時(shí)不會(huì)對(duì)公共文件進(jìn)行刪除操作,避免出現(xiàn)公共文件多次下載影響下載效率。

        2.3.2下載功能

        該模塊主要是進(jìn)行數(shù)據(jù)文件的下載,其中分為對(duì)ftp協(xié)議和http協(xié)議的下載,下載文件的同時(shí)判斷是否存在MD5文件并進(jìn)行校驗(yàn);對(duì)下載失敗的文件提供重試功能。具體流程,如圖4所示。

        圖4 下載模塊流程圖Fig.4 Download the module flow chart

        2.3.3文件規(guī)則檢查功能

        該模塊主要是對(duì)下載的文件通過設(shè)定的規(guī)則進(jìn)行校驗(yàn),檢查文件下載的內(nèi)容是否正確。功能使用awk命令實(shí)現(xiàn)。

        2.3.4db功能

        該模塊內(nèi)容主要是同db之間的操作,其中包含查詢?nèi)蝿?wù)相關(guān)內(nèi)容,下載文件相關(guān)內(nèi)容等。包括函數(shù):Update(執(zhí)行指定的 sql)、Gettask(通過任務(wù) id查詢?nèi)蝿?wù)相關(guān)信息)、Getdownload(通過任務(wù)名稱查詢?nèi)蝿?wù)對(duì)應(yīng)的需要下載的文件相關(guān)內(nèi)容)。

        2.3.5調(diào)度功能

        該模塊是整個(gè)框架執(zhí)行的主體調(diào)度程序,實(shí)現(xiàn)的內(nèi)容是自動(dòng)地按照順序計(jì)劃執(zhí)行任務(wù),從而使所有的數(shù)據(jù)任務(wù)嚴(yán)格按照ETL流程執(zhí)行。ETL流程即:通過任務(wù)名稱查詢出任務(wù)和下載文件相關(guān)信息->下載文件->校驗(yàn)MD5文件->導(dǎo)入到HIVE數(shù)據(jù)倉庫中(E)->執(zhí)行業(yè)務(wù)腳本(T)->把轉(zhuǎn)化好的數(shù)據(jù)load入庫(L)->刪除臨時(shí)文件。

        3 結(jié)束語

        在數(shù)據(jù)倉庫中,ETL有兩個(gè)特點(diǎn),一是數(shù)據(jù)同步,它不是一次性倒完數(shù)據(jù)就拉到,它是經(jīng)常性的活動(dòng),按照固定周期運(yùn)行的,甚至現(xiàn)在還有人提出了實(shí)時(shí)ETL的概念。二是數(shù)據(jù)量,一般都是巨大的,值得你將數(shù)據(jù)流動(dòng)的過程拆分成E、T 和L。將數(shù)據(jù)任務(wù)按照E、T和L 3個(gè)部分層次化劃分,可以使用戶更好的把握數(shù)據(jù)的轉(zhuǎn)換過程。文中先通過對(duì)ETL工具——Datastage的優(yōu)缺點(diǎn)、整體架構(gòu)及工作原理做了細(xì)致地分析。隨后提出了設(shè)計(jì)一款ETL框架的基本思路和解決方案,該框架通過使用HIVE作為數(shù)據(jù)集成的中轉(zhuǎn)工具,可以提高文件的操作效率。該框架設(shè)計(jì)時(shí)考慮到了ETL的兩個(gè)特點(diǎn),使該框架有以下特點(diǎn):

        1)使用HIVE作為數(shù)據(jù)集成的中轉(zhuǎn)工具,可以提高文件的操作效率(基于hadoop分布式集群)。

        2)將數(shù)據(jù)任務(wù)按照E、T和L3個(gè)部分層次化劃分,可以使用戶更好的把握數(shù)據(jù)的轉(zhuǎn)換過程。

        3)使用配置文件的方式創(chuàng)建任務(wù),可以大大加快開發(fā)人員的數(shù)據(jù)處理效率。

        [1]PVassiliadis,ASimitsis,PGeorgantas,MTerrovitis SSkiadopoulos.Ageneric and customizable framework for the design of ETL scenarios[J].Information Systems Journa,200530(7): 492-525.

        [2]PVassiliadis,etal.ARKTOS:to wards the modeling,design,control and execution of ETL processes[J].Information Systems,2001(26):537-561.

        [3]陳弦,陳松喬.基于數(shù)據(jù)倉庫的通用ETL工具的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2004(8):214-216.

        [4]尤玉林,張憲民.一種可靠的數(shù)據(jù)倉庫中ETL策略與架構(gòu)設(shè)計(jì)[J].計(jì)算機(jī)工程與應(yīng)用,2006(3):172-175.

        [5]周茂偉,鄧蘇,黃宏斌.基于元數(shù)據(jù)的ETL工具設(shè)計(jì)與實(shí)現(xiàn)[J].科學(xué)技術(shù)與工程,2006,6(21):3503-3507.

        [6]鄭洪源,周良.基于CWM的標(biāo)準(zhǔn)ETL的設(shè)計(jì)與實(shí)現(xiàn)[J].吉林大學(xué)學(xué)報(bào)(信息科學(xué)版),2006,1(24):50-55.

        Research and design of ETL framework based on data processing

        SHEN Qi,CHEN Bo
        (Beijing University of Technology,Beijing 100124,China)

        According to the traditional extraction,conversion,loading(ETL)architecture forprocess control deficiencies in data processing and data product development efficiency,the article presents a data processing based on ETL.The characteristics of ETL working principle and process analysis of the mainstream ETL tool--Datastage,design of ETL metadata description module,ETL module,configuration task description analysis module and data task scheduling module etc.Using the framework of data processing tasks,development to the configuration file of the way,so that the work efficiency has been greatlyimproved.ThedesignideaofthedevelopmentofalargedataprocessingbasedonETL tools,in data processing(E,T,L)of the control has been improved,but also can make the data developer freed from a large number of repetitive operations,will focus more on the aspects of the data logic processing.

        data processing;data extraction;data conversion;data loading;ETL framework

        TN709

        A

        1674-6236(2016)02-0025-03

        2015-03-09稿件編號(hào):201503111

        沈 琦(1964—),女,北京人,博士,副教授。研究方向:計(jì)算機(jī)網(wǎng)絡(luò)與應(yīng)用。

        猜你喜歡
        數(shù)據(jù)處理功能設(shè)計(jì)
        也談詩的“功能”
        中華詩詞(2022年6期)2022-12-31 06:41:24
        認(rèn)知診斷缺失數(shù)據(jù)處理方法的比較:零替換、多重插補(bǔ)與極大似然估計(jì)法*
        ILWT-EEMD數(shù)據(jù)處理的ELM滾動(dòng)軸承故障診斷
        瞞天過?!律O(shè)計(jì)萌到家
        設(shè)計(jì)秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        關(guān)于非首都功能疏解的幾點(diǎn)思考
        有種設(shè)計(jì)叫而專
        Coco薇(2017年5期)2017-06-05 08:53:16
        基于希爾伯特- 黃變換的去噪法在外測數(shù)據(jù)處理中的應(yīng)用
        中西醫(yī)結(jié)合治療甲狀腺功能亢進(jìn)癥31例
        辨證施護(hù)在輕度認(rèn)知功能損害中的應(yīng)用
        日韩精品一区二区三区人妻在线| 精品国产一级毛片大全| 91精品91| 69久久精品亚洲一区二区| 国产亚洲av看码精品永久| 亚洲人成77777在线播放网站| 国产美女遭强高潮网站| 五月天婷婷一区二区三区久久| 久久免费精品日本久久中文字幕| 国产aⅴ无码专区亚洲av| 五月婷婷俺也去开心| 成 人 网 站 在线 看 免费 | 亚洲成人免费网址| 日韩最新av一区二区| 亚洲最新精品一区二区| 国产精品永久免费| 在线观看91精品国产免费免费| 人妻少妇精品视频一区二区三区| 亚洲视频专区一区二区三区| 鲁丝片一区二区三区免费| 97色伦图片97综合影院久久 | 九九免费在线视频| 国产精品av免费网站| 亚洲av综合国产av日韩| 人妻无码αv中文字幕久久琪琪布| 无码不卡一区二区三区在线观看| 中文字幕视频一区二区| 欲求不満の人妻松下纱荣子 | 老肥熟女老女人野外免费区| 国产一区二区三区色哟哟| 三年片大全在线观看免费观看大全| 一本一本久久a久久精品| 久久这里只有精品黄色| 精品人妻少妇av中文字幕| 9lporm自拍视频区| 亚洲一区精品中文字幕| 精品三级国产一区二区三| 中文无码日韩欧| 国产精品一区二区资源| 国产av一区二区三区天美| 久久精品aⅴ无码中文字字幕|