專利名稱:一種數(shù)據(jù)處理方法及其系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)挖掘領(lǐng)域,尤其涉及一種數(shù)據(jù)處理方法及其系統(tǒng)。
背景技術(shù):
近些年,隨著互聯(lián)網(wǎng)用戶的劇增,互聯(lián)網(wǎng)系統(tǒng)的訪問量越來越大,產(chǎn)生了大量數(shù)據(jù)。當前,許多企業(yè)利用這些數(shù)據(jù)來分析用戶的行為,從而預測市場前景??梢?,數(shù)據(jù)已經(jīng)成為現(xiàn)代企業(yè)的重要資源,是企業(yè)運用科學管理、決策分析的基礎(chǔ),目前,大多數(shù)企業(yè)花費大量的資金和時間來構(gòu)建聯(lián)機事物處理的業(yè)務(wù)系統(tǒng)和辦公自動化系統(tǒng),用來記錄事物處理的各種相關(guān)數(shù)據(jù)。然而,對元數(shù)據(jù)進行處理是聯(lián)機分析處理、數(shù)據(jù)挖掘的基礎(chǔ),因此,構(gòu)建數(shù)據(jù)倉庫的過程一個極其重要的環(huán)節(jié)。在現(xiàn)有技術(shù)中,ETL (Extraction-Transformation-Loading)數(shù)據(jù)轉(zhuǎn)換方法被廣泛應用與數(shù)據(jù)倉庫的構(gòu)建。如圖1所示,ETL能將分布的、異構(gòu)數(shù)據(jù)源中的元數(shù)據(jù)抽取到臨時中間層后進行清洗、轉(zhuǎn)換、集成,最后加載到數(shù)據(jù)倉庫或數(shù)據(jù)集市中,構(gòu)建了目標數(shù)據(jù)倉庫。目前比較成熟的 ETL 商業(yè)工具有 IBM Datastage、DTS 和 OracleWarehouseBuilder等,這些商業(yè)工具設(shè)計的初衷是幫助不具備計算機專業(yè)知識的用戶設(shè)計ETL作業(yè),從而都以元數(shù)據(jù)驅(qū)動的方式實現(xiàn),這反而增加了這些商業(yè)工具的復雜性,其設(shè)計的復雜性直接或間接地導致了數(shù)據(jù)處理的效率低下和系統(tǒng)可擴展性差。由于商業(yè)工具一般都價格昂貴,很多小型企業(yè)都選擇開發(fā)自己的ETL工具,用以構(gòu)建數(shù)據(jù)倉庫,然而自行開發(fā)的ETL工具維護成本相當高,一些開源工具的出現(xiàn),在一定程度上彌補了這些問題,如KETL、Kettle、CloverETL等。然而,這些開源工具也都具有前述的商業(yè)工具中存在的問題。綜上所述,當前需要一種高效地、可擴展性強的方案來解決上述問題。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題之一是需要提供一種高效、可擴展性強的數(shù)據(jù)處理方法。為了解決上述技術(shù)問題,本發(fā)明提供了一種數(shù)據(jù)處理方法,該方法包括步驟一,將待處理的數(shù)據(jù)劃分為多個數(shù)據(jù)包;步驟二,對部分或全部數(shù)據(jù)包設(shè)定各自的數(shù)據(jù)處理過程;步驟三,根據(jù)各個設(shè)定的數(shù)據(jù)處理過程,同時分別對各個數(shù)據(jù)包中的數(shù)據(jù)進行處理。根據(jù)本發(fā)明又一方面的數(shù)據(jù)處理方法,在所述步驟一中,根據(jù)設(shè)定模式將待處理的數(shù)據(jù)劃分為多個數(shù)據(jù)包,其中,所述設(shè)定模式為按時間劃分或按數(shù)據(jù)大小劃分。根據(jù)本發(fā)明又一方面的數(shù)據(jù)處理方法,所述步驟二進一步包括將所述各個設(shè)定的數(shù)據(jù)處理過程分別定義為各個數(shù)據(jù)處理作業(yè),其中,所述數(shù)據(jù)處理作業(yè)包括數(shù)據(jù)包的名稱和與所述數(shù)據(jù)包的數(shù)據(jù)處理過程中所包含的各步驟相對應的方法屬性。根據(jù)本發(fā)明又一方面的數(shù)據(jù)處理方法,在所述步驟三中,具體包括以下步驟分析并檢查所述各個數(shù)據(jù)處理作業(yè)的語法;根據(jù)所述數(shù)據(jù)處理作業(yè)中數(shù)據(jù)包的名稱,將語法正確的各個數(shù)據(jù)處理作業(yè)分發(fā)至與所述名稱相關(guān)聯(lián)的各個管道中;所述各個管道同時根據(jù)各個作業(yè)中的方法屬性,調(diào)用相應的方法對該數(shù)據(jù)包中的數(shù)據(jù)進行處理,其中,所述各個管道為預先設(shè)定的針對各個數(shù)據(jù)包的數(shù)據(jù)處理過程的調(diào)用方法的函數(shù),預先設(shè)定的管道的數(shù)量與將待處理的數(shù)據(jù)劃分后的數(shù)據(jù)包的數(shù)量相同。根據(jù)本發(fā)明又一方面的數(shù)據(jù)處理方法,所述數(shù)據(jù)處理過程設(shè)定為按照以下順序進行操作的前設(shè)定個步驟第一步進行設(shè)置步驟,該設(shè)置步驟執(zhí)行在對數(shù)據(jù)處理之前的初始化處理,其中,所述初始化處理包括建立數(shù)據(jù)庫表,并根據(jù)所述各個數(shù)據(jù)包的數(shù)量對所述數(shù)據(jù)庫表進行分區(qū)的操作;第二步進行抽取步驟,該抽取步驟將元數(shù)據(jù)抽取出來;第三步進行轉(zhuǎn)換步驟,該轉(zhuǎn)換步驟將抽取出來的元數(shù)據(jù)進行合并、清洗、分類、分揀和列檢索處理;第四步進行裝載步驟,該裝載步驟將執(zhí)行完所述轉(zhuǎn)換步驟后的數(shù)據(jù)加載至相應數(shù)據(jù)庫中;第五步進行拆卸步驟,該拆卸步驟處理后續(xù)操作,所述后續(xù)操作包括刪除文件和生成統(tǒng)計信息表。根據(jù)本發(fā)明又一方面的數(shù)據(jù)處理方法,采用插件的方式來設(shè)計各個數(shù)據(jù)處理作業(yè)。根據(jù)本發(fā)明又一方面的數(shù)據(jù)處理方法,所述管道在當前主機的一個線程中運行或在另一個主機的獨立的進程中運行。根據(jù)本發(fā)明又一方面的數(shù)據(jù)處理方法,還包括利用PERL語言中的Log4perl模塊,對所述管道調(diào)用相應的方法對該數(shù)據(jù)包中的數(shù)據(jù)進行處理的過程進行監(jiān)控。根據(jù)本發(fā)明的另一方面,還提供了一種數(shù)據(jù)處理系統(tǒng),包括劃分模塊,將待處理的數(shù)據(jù)劃分為多個數(shù)據(jù)包;設(shè)定模塊,對部分或全部數(shù)據(jù)包設(shè)定各自的數(shù)據(jù)處理過程;處理模塊,根據(jù)各個設(shè)定的數(shù)據(jù)處理過程,同時分別對各個數(shù)據(jù)包中的數(shù)據(jù)進行處理。根據(jù)本發(fā)明又一方面的數(shù)據(jù)處理系統(tǒng),所述設(shè)定模塊進一步執(zhí)行將所述各個設(shè)定的數(shù)據(jù)處理過程分別定義為各個數(shù)據(jù)處理作業(yè),其中,所述數(shù)據(jù)處理作業(yè)包括數(shù)據(jù)包的名稱和與所述數(shù)據(jù)包的數(shù)據(jù)處理過程中所包含的各步驟相對應的方法屬性;在所述處理模塊進一步包括任務(wù)分析器,其分析并檢查所述各個數(shù)據(jù)處理作業(yè)的語法;任務(wù)分發(fā)器,根據(jù)所述數(shù)據(jù)處理作業(yè)中數(shù)據(jù)包的名稱,將語法正確的各個數(shù)據(jù)處理作業(yè)分發(fā)至與所述名稱相關(guān)聯(lián)的各個管道中;所述各個管道,同時根據(jù)各個作業(yè)中的方法屬性,調(diào)用相應的方法對該數(shù)據(jù)包中的數(shù)據(jù)進行處理,其中,所述各個管道為預先設(shè)定的針對各個數(shù)據(jù)包的數(shù)據(jù)處理過程的調(diào)用方法的函數(shù),預先設(shè)定的管道的數(shù)量與將待處理的數(shù)據(jù)劃分后的數(shù)據(jù)包的數(shù)量相同。與現(xiàn)有技術(shù)相比,本發(fā)明的一個或多個實施例可以具有如下優(yōu)點本發(fā)明通過將各個數(shù)據(jù)包的數(shù)據(jù)處理作業(yè)分發(fā)至不同的管道中獨立地執(zhí)行,使得能夠在各個管道中并行執(zhí)行各個數(shù)據(jù)包的數(shù)據(jù)處理,節(jié)省了大量的時間;而且,各個數(shù)據(jù)包的數(shù)據(jù)處理過程可以根據(jù)用戶的需要進行設(shè)定,對于不太重要的數(shù)據(jù)可以不進行,使得具有聞擴展性。本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在說明書、權(quán)利要求書以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
附圖用來提供對本發(fā)明的進一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實施例共同用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中:圖1是現(xiàn)有技術(shù)中ETL數(shù)據(jù)轉(zhuǎn)換方法的流程示意圖。圖2是根據(jù)本發(fā)明第一實施例的數(shù)據(jù)處理方法的流程示意圖;圖3是根據(jù)本發(fā)明第一實施例的數(shù)據(jù)處理方法中的在管道中處理數(shù)據(jù)的流程示意圖;圖4是根據(jù)本發(fā)明第二實施例的數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)示意圖;圖5是根據(jù)本發(fā)明第二實施例的數(shù)據(jù)處理系統(tǒng)中的數(shù)據(jù)處理模塊的結(jié)構(gòu)示意圖;圖6是利用本發(fā)明的數(shù)據(jù)處理系統(tǒng)對數(shù)據(jù)進行處理的實驗結(jié)果示意圖;圖7是利用本發(fā)明的數(shù)據(jù)處理系統(tǒng)和開源工具KETTLE進行數(shù)據(jù)處理的對比示意圖。
具體實施例方式以下將結(jié)合附圖及實施例來詳細說明本發(fā)明的實施方式,借此對本發(fā)明如何應用技術(shù)手段來解決技術(shù)問題,并達成技術(shù)效果的實現(xiàn)過程能充分理解并據(jù)以實施。需要說明的是,只要不構(gòu)成沖突,本發(fā)明中的各個實施例以及各實施例中的各個特征可以相互結(jié)合,所形成的技術(shù)方案均在本發(fā)明的保護范圍之內(nèi)。
另外,在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。第一實施例圖2是根據(jù)本發(fā)明第二實施例的數(shù)據(jù)處理方法的流程示意圖,下面參考圖2,詳細說明本發(fā)明方法的各個步驟。步驟S210,將待處理的數(shù)據(jù)劃分為多個數(shù)據(jù)包。具體地,將待處理的數(shù)據(jù)按照設(shè)定模式劃分為多個數(shù)據(jù)包,其中設(shè)定模式包括按時間劃分和按大小劃分的模式。例如,待處理的數(shù)據(jù)為某系統(tǒng)十小時的日志數(shù)據(jù),將該日志數(shù)據(jù)按每個小時來劃分成十個數(shù)據(jù)包,將每個數(shù)據(jù)包存儲在一個壓縮包內(nèi),共得到十個壓縮包,各個數(shù)據(jù)包的名稱分別為 taskl、task2、…、tasklO。需要說明的是,現(xiàn)有技術(shù)的數(shù)據(jù)處理是將待處理的數(shù)據(jù)作為一個整體(不考慮該整體的大小)進行數(shù)據(jù)處理,即是一個端到端的過程。而本實施例在進行數(shù)據(jù)處理之前,需要將待處理的數(shù)據(jù)劃分(或分區(qū))為多個數(shù)據(jù)包,后續(xù)根據(jù)需要設(shè)定部分或所有數(shù)據(jù)包的數(shù)據(jù)處理過程,并將各個數(shù)據(jù)處理過程定義為各個數(shù)據(jù)處理作業(yè),然后再對定義的數(shù)據(jù)處理作業(yè)進行處理。這樣,在對分區(qū)后的數(shù)據(jù)進行處理時,既可以避免數(shù)據(jù)的重復處理,又可以加速數(shù)據(jù)的處理過程和查詢操作。步驟S220,對部分或全部數(shù)據(jù)包設(shè)定數(shù)據(jù)處理過程。
本步驟以PERL語言為例來實現(xiàn)數(shù)據(jù)處理。具體地,需要將各個數(shù)據(jù)處理過程分別定義為各個數(shù)據(jù)處理作業(yè)(以下簡稱作業(yè)),其中,各個數(shù)據(jù)處理作業(yè)包括各個數(shù)據(jù)包的名稱和與各個數(shù)據(jù)處理過程中各個步驟對應的方法屬性?,F(xiàn)有技術(shù)中ETL方法的整個數(shù)據(jù)處理過程包括以下步驟:抽取、轉(zhuǎn)換和裝載。在本發(fā)明實施例中,完整的數(shù)據(jù)處理過程按照設(shè)置、提取、轉(zhuǎn)換、裝載和拆卸的順序來實現(xiàn)數(shù)據(jù)的處理。其中,設(shè)置步驟執(zhí)行在對數(shù)據(jù)處理之前的初始化處理,初始化處理包括建立數(shù)據(jù)庫表,并根據(jù)各個數(shù)據(jù)包的數(shù)量對數(shù)據(jù)庫表進行分區(qū);拆卸步驟,處理后續(xù)操作,所述后續(xù)操作包括刪除文件和生成統(tǒng)計信息表。其他的步驟與ETL方法中涉及到的步驟大體相同,在此不作贅述。在根據(jù)需要對部分或全部的數(shù)據(jù)包設(shè)定數(shù)據(jù)處理過程時,可以設(shè)定為按照以下順序進行操作的前設(shè)定個步驟:第一步進行設(shè)置步驟,執(zhí)行在對數(shù)據(jù)處理之前的初始化處理;第二步進行抽取步驟,將元數(shù)據(jù)抽取出來;第三步進行轉(zhuǎn)換步驟,將抽取出來的元數(shù)據(jù)進行合并、清洗、分類、分揀和列檢索處理;第四步進行加載步驟,將轉(zhuǎn)換后的數(shù)據(jù)加載至相應數(shù)據(jù)庫中;第五步進行拆卸步驟,處理后續(xù)操作。即,具體包括以下幾種數(shù)據(jù)處理過程:(1)設(shè)置;(2)設(shè)置一提?。?3)設(shè)置一提取一轉(zhuǎn)換;(4)設(shè)置一提取一轉(zhuǎn)換一裝載;(5)設(shè)置一提取一轉(zhuǎn)換一裝載一拆卸。這樣可以按需設(shè)定部分或全部數(shù)據(jù)包所要執(zhí)行的數(shù)據(jù)過程,針對不重要的數(shù)據(jù)可以省略掉多個處理步驟或不進行數(shù)據(jù)處理,節(jié)省了大量的時間,提高了數(shù)據(jù)處理過程的靈活性。本實施例優(yōu)選地,采用插件的方式來設(shè)計數(shù)據(jù)處理作業(yè)。這樣,一個作業(yè)可以插入到該系統(tǒng)中,也可以從該系統(tǒng)中卸載,使得本系統(tǒng)的結(jié)構(gòu)簡單,保證了數(shù)據(jù)處理效率。每一個作業(yè)都可以順序定義設(shè)置(Setup)、提取(Extract)、轉(zhuǎn)換(Transform)、裝載(Load)和拆卸(Teardown)這五個方法屬性中的前幾個方法屬性,對應各個方法屬性的表現(xiàn)形式可如下所示:Sub method_name: Setup (qw (task_namel,...))Sub method_name: Extract (qw (task_namel,...))Sub method_name:Transfor (qw(task_namel,...))Sub method_name: Load (qw (task_namel,...))Sub method_name: Teardown (qw (task_namel,...))其中,method_name是一個Perl名稱,只需要符合Perl語言方法命名規(guī)則即可;Setup是方法屬性,表示該Setup方法將在數(shù)據(jù)處理過程中第一步調(diào)用,其它的屬性類似;qw (task_namel,…)是屬性的值(也是作業(yè)的名稱),表示該方法屬于哪些作業(yè)。一般,不推薦讓一個方法屬于多個不同的任務(wù)(不同的作業(yè)),因為若一個方法屬于多個不同的任務(wù)會使整個作業(yè)邏輯變得復雜。因此,在本發(fā)明中,優(yōu)選地,使一個方法只屬于一個作業(yè)。例如,可以將上述例子中的名稱為taskl的數(shù)據(jù)包的作業(yè)定義為:Taskl:-sub stepl:Setup(taskl) O-sub step2: Extract (taskl)()
-sub step3: Transform (taskl)()
-sub step4: Load (taskl)()-sub step5: Teardown (taskl)()還可以定義為Taskl -sub stepl: Setup (taskl)()-sub step2: Extract (taskl)()-sub step3: Transform (taskl)()通過這樣的定義,系統(tǒng)能統(tǒng)計有哪些作業(yè)需要運行及與該作業(yè)所要執(zhí)行數(shù)據(jù)處理過程相關(guān)聯(lián)的方法。步驟S230,分析并檢查各個數(shù)據(jù)處理作業(yè)的語法。具體地,基于預先定義的語法來檢查各個數(shù)據(jù)處理作業(yè)的語法,若與之前定義的語法一致,則判斷該數(shù)據(jù)處理作業(yè)的語法正確,否則,判斷為錯誤。在本實施例中,利用PERL語言的方法屬性處理器(Perl AttributeHandler)定義了五種PERL語言方法屬性的語法,分別為Sub Setup:ATTR(CODE) {};Sub Extract: ATTR (CODE) {};Sub Transfor: ATTR (CODE) {};Sub Load:ATTR(CODE) {};Sub T ear down: ATTR (CODE) {};若作業(yè)與上述定義的語法一致,則判斷該作業(yè)的語法是正確的,否則,判斷結(jié)果為該作業(yè)的語法是錯誤的。例如某作業(yè)的一個方法屬性定義如下sub"step2 Extract (task5) O ,通過對其語法、語義檢查,所得到的檢查結(jié)果錯誤。這是因為根據(jù)PERL語言的方法屬性處理器,方法名只能由英文字母(大小寫)、數(shù)字和下劃線的組合。步驟S240,根據(jù)數(shù)據(jù)處理作業(yè)中數(shù)據(jù)包的名稱,將語法正確的各個數(shù)據(jù)處理作業(yè)分發(fā)至與名稱相關(guān)聯(lián)的各個管道中。其中,各個管道為預先設(shè)定的針對各個數(shù)據(jù)包的數(shù)據(jù)處理過程的調(diào)用方法的函數(shù),預先設(shè)定的管道的數(shù)量與將待處理的數(shù)據(jù)劃分后的數(shù)據(jù)包的數(shù)量相同。也就是說,在本發(fā)明實施例中,將待處理數(shù)據(jù)劃分為多少個數(shù)據(jù)包,則預先設(shè)定多少個管道,且各個管道定義了名稱屬性和方法屬性,例如etl pipeline=etl job。管道的定義同作業(yè)的定義,如ETL作業(yè)taskl定義如下-sub stepl: Setup (taskl) {}-sub step2: Extract (taskl) {}-sub step3: Transform (taskl) {}-sub step4: Load (taskl) {}-sub step5: Teardown (taskl) {}taskl作業(yè)定義了這5個方法,則會將該作業(yè)分發(fā)至管道的屬性值為“taskl”的管道中,該管道會調(diào)用上述五個方法的代碼,調(diào)用次序為:stepl->step2->step3->step4->step5,然后這個調(diào)用過程就叫做pipeline,屬性值對應taskl。又如ETL作業(yè)task2定義如下:-sub stepl:Setup(task2){}-sub step2: Extract (task2) {}-sub step3: Transform (task2) {}-sub step4: Load (task2) {}-sub step5: Teardown (task2) {}那就多了一個pipeline,屬性值對應task2。每個管道可以在當前的一個線程中運行,也可以在另一個主機上的一個獨立進程中運行。這樣可以提高整體數(shù)據(jù)的數(shù)據(jù)處理效率,且不同任務(wù)之間互不干擾,在去掉一個已有作業(yè)或增加一個新的作業(yè)時都不會影響到其它正常作業(yè)的運行,實現(xiàn)了可擴展性。步驟S250,各個管道同時根據(jù)各個作業(yè)中的方法屬性,調(diào)用相應的方法對該數(shù)據(jù)包中的數(shù)據(jù)進行處理。例如,作業(yè)Taskl 定義了 Setup () > Extract () > Transform () > Load () > Teardown ()五個屬性,則執(zhí)行該作業(yè)的管道中定義的方法屬性為SetupO、Extract O、TransformO、Load O, TeardownO五種方法屬性,該管道中定義的該方法語法信息會被當作參數(shù)傳入與其屬性相對應的屬性定義方法中,也就是該管道通過將其語法信息作為參數(shù)來調(diào)用上述五種方法屬性對應的方法處理。語法信息包括:該方法所在類名,包含該方法的符號表引用,該方法的引用,方法屬性的名稱,屬性的數(shù)據(jù),該方法觸發(fā)屬性處理器的階段,屬性處理器所在文件及在該文件的行號。例如,語法信息可以表示如下:
1.use Attribute::Handlers;
2.
3.sub Setup:ATTR {
4.my ($package.$symbol, $refereni, $attr, $data, $phase,
5.$ filename, $linenum)=@_;
6.}如果用戶定義了如下方法:Package ETLJob;Sub stepl:Setup(taskl){}那么會把stepl方法的語法信息傳遞給Setup屬性的定義函數(shù),那么package的值為”ETLJob”,即stepl方法定義所在的包;symbol為符號表的引用;referent為stepl方法的引用;attr為屬性Setup的數(shù)據(jù),這里為taskl ;phase是指stepl在編譯處理的那個階段被調(diào)用filename是Setup屬性定義的文件名;Iinenum是Setup屬性定義所在文件的行號。需要說明的是,若一個數(shù)據(jù)包的數(shù)據(jù)處理過程沒有設(shè)置第四步驟,即沒有設(shè)置裝載步驟,那么就不會生成相應的數(shù)據(jù)表。若想要生成待處理數(shù)據(jù)的所有數(shù)據(jù)包的數(shù)據(jù)表,則需要在設(shè)定各個數(shù)據(jù)包的數(shù)據(jù)處理過程時,至少要設(shè)定到第四步驟。對于任一個作業(yè)來說,將其放入至與其關(guān)聯(lián)的管道中運行,這相當于將作業(yè)當作插件插入至本系統(tǒng)中,即使新的作業(yè)有語法、功能等錯誤,也不會影響到它的運行。也可以指定只運行某些作業(yè),這相當于把另外一些不需要處理的作業(yè)當作插件從本系統(tǒng)中卸載掉,從而使得本系統(tǒng)具有高擴展性。圖3是根據(jù)本發(fā)明第一實施例的數(shù)據(jù)處理方法中的在管道中處理數(shù)據(jù)的流程示意圖,具體地,根據(jù)作業(yè)的方法屬性定義,如某作業(yè)只定義了 setup屬性,則其運行級別為I,若定義了 setupO、extract O屬性,貝U運行級別為2,依次類推,上述作業(yè)“taskl”的運行級別為5,因此根據(jù)圖3所示,在執(zhí)行taskl的數(shù)據(jù)處理過程時,需要一次調(diào)用設(shè)置(Setup)、提取(Extract)、轉(zhuǎn)換(Transform)、裝載(Load)和拆卸(Teardown)等方法。需要說明的是,上述步驟S230至步驟S250是根據(jù)各個設(shè)定的數(shù)據(jù)處理過程,同時分別對各個數(shù)據(jù)包中的數(shù)據(jù)進行處理的基于PERL語言的詳細步驟,還可以使用其他的語言來實行。另外,在本系統(tǒng)中,還可以米用Log4perl模塊輸出每個管道的每一步運行日志,并在此基礎(chǔ)上實現(xiàn)了基于日志分析的監(jiān)控系統(tǒng)。從而能夠?qū)崟r監(jiān)控線上系統(tǒng)運行情況,例如系統(tǒng)中的每一個作業(yè)所花費的時間等。第二實施例圖4是根據(jù)本發(fā)明第一實施例的數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)示意圖,下面參考圖4來詳細說明本系統(tǒng)的各個組成部分。該系統(tǒng)包括劃分模塊41、設(shè)定模塊42和處理模塊43。其中,劃分模塊41,將待處理的數(shù)據(jù)劃分為多個數(shù)據(jù)包;設(shè)定模塊42,對部分或全部數(shù)據(jù)包設(shè)定各自的數(shù)據(jù)處理過程;處理模塊43,根據(jù)各個設(shè)定的數(shù)據(jù)處理過程,同時分別對各個數(shù)據(jù)包中的數(shù)據(jù)進行處理。需要說明的是,現(xiàn)有技術(shù)的數(shù)據(jù)處理是將待處理的數(shù)據(jù)作為一個整體(不考慮該整體的大小)進行數(shù)據(jù)處理,即是一個端到端的過程。而本實施例在進行數(shù)據(jù)處理之前,需要將待處理的數(shù)據(jù)劃分(或分區(qū))為多個數(shù)據(jù)包(即上述劃分模塊),后續(xù)根據(jù)需要設(shè)定部分或所有數(shù)據(jù)包的數(shù)據(jù)處理過程(即上述設(shè)定模塊),并將各個數(shù)據(jù)處理過程定義為各個數(shù)據(jù)處理作業(yè),然后再對定義的數(shù)據(jù)處理作業(yè)進行處理。這樣,在對分區(qū)后的數(shù)據(jù)進行處理時,既可以避免數(shù)據(jù)的重復處理,又可以加速數(shù)據(jù)的處理過程和查詢操作。劃分模塊41根據(jù)設(shè)定模式將待處理的數(shù)據(jù)劃分為多個數(shù)據(jù)包,其中,設(shè)定模式可以為按時間劃分或按數(shù)據(jù)大小劃分。例如,劃分模塊41將一個待處理的數(shù)據(jù)(共五個小時的數(shù)據(jù))按照每小時來劃分,可以得到5個數(shù)據(jù)包,各個數(shù)據(jù)包的名稱分別為taskl、task2、task3、task4和task5?,F(xiàn)有技術(shù)中ETL方法的整個數(shù)據(jù)處理過程包括以下步驟抽取、轉(zhuǎn)換和裝載。在本發(fā)明實施例中,完整的數(shù)據(jù)處理過程包括設(shè)置、提取、轉(zhuǎn)換、裝載和拆卸這五個步驟。其中,設(shè)置步驟執(zhí)行在對數(shù)據(jù)處理之前的初始化處理,初始化處理包括建立數(shù)據(jù)庫表,并根據(jù)各個數(shù)據(jù)包的數(shù)量對數(shù)據(jù)庫表進行分區(qū);拆卸步驟,處理后續(xù)操作,所述后續(xù)操作包括刪除文件和生成統(tǒng)計信息表。設(shè)定模塊42在根據(jù)需要對部分或全部的數(shù)據(jù)包設(shè)定數(shù)據(jù)處理過程時,可以設(shè)定為按照以下順序進行操作的前設(shè)定個步驟第一步進行設(shè)置步驟,執(zhí)行在對數(shù)據(jù)處理之前的初始化處理;第二步進行抽取步驟,將元數(shù)據(jù)抽取出來;第三步進行轉(zhuǎn)換步驟,將抽取出來的元數(shù)據(jù)進行合并、清洗、分類、分揀和列檢索處理;第四步進行加載步驟,將轉(zhuǎn)換后的數(shù)據(jù)加載至相應數(shù)據(jù)庫中;第五步進行拆卸步驟,處理后續(xù)操作。即,具體包括以下幾種數(shù)據(jù)處理過程(I)設(shè)置;(2)設(shè)置一提取;(3)設(shè)置一提取一轉(zhuǎn)換;(4)設(shè)置一提取一轉(zhuǎn)換一裝載;(5)設(shè)置一提取一轉(zhuǎn)換一裝載一拆卸。這樣可以按需設(shè)定部分或全部數(shù)據(jù)包所要執(zhí)行的數(shù)據(jù)過程,針對不重要的數(shù)據(jù)可以省略掉多個處理步驟或不進行數(shù)據(jù)處理,節(jié)省了大量的時間,提高了數(shù)據(jù)處理過程的靈活性。在本發(fā)明實施例中,說明以PERL語言來實現(xiàn)的處理模塊43,但本實施例僅為一個示例。另外,設(shè)定模塊42進一步執(zhí)行將各個設(shè)定的數(shù)據(jù)處理過程分別定義為各個數(shù)據(jù)處理作業(yè),其中,所述數(shù)據(jù)處理作業(yè)包括數(shù)據(jù)包的名稱和與所述數(shù)據(jù)包的數(shù)據(jù)處理過程中所包含的各步驟相對應的方法屬性。本實施例優(yōu)選地,設(shè)定模塊42采用插件的方式來設(shè)計數(shù)據(jù)處理作業(yè)。這樣,一個作業(yè)可以插入到該系統(tǒng)中,也可以從該系統(tǒng)中卸載,使得本系統(tǒng)的結(jié)構(gòu)簡單,保證了數(shù)據(jù)處
理效率。數(shù)據(jù)處理作業(yè)包括數(shù)據(jù)包的名稱和與數(shù)據(jù)包的數(shù)據(jù)處理過程中各個步驟相對應的方法屬性。每一個作業(yè)都可以順序定義設(shè)置(Setup)、提取(Extract)、轉(zhuǎn)換(Transform)、裝載(Load)和拆卸(Teardown)這五個方法屬性中的前幾個方法屬性,對應各個方法屬性的表現(xiàn)形式可如下所示Sub method_name: Setup (qw (task_namel, ···))Sub method_name: Extract (qw (task_namel, ···))Sub method_name:Transfor (qw(task_namel, ···))Sub method_name: Load (qw (task_namel, ...))Sub method_name: Teardown (qw (task_namel, ···))其中,method_name是一個Perl名稱,只需要符合Perl語言方法命名規(guī)則即可;Setup是方法屬性,表示該Setup方法將在數(shù)據(jù)處理過程中第一步調(diào)用,其它的屬性類似;qw(task_namel, ···)是屬性的值(也是作業(yè)的名稱),表示該方法屬于哪些作業(yè)。一般,不推薦讓一個方法屬于多個不同的任務(wù)(不同的作業(yè)),因為若一個方法屬于多個不同的任務(wù)會使整個作業(yè)邏輯變得復雜。因此,在本發(fā)明中,優(yōu)選地,使一個方法只屬于一個作業(yè)。例如,可以將上述例子中的名稱為taskl的數(shù)據(jù)包的作業(yè)定義為Taskl -sub stepl:Setup(taskl) O-sub step2: Extract (taskl)()
-sub step3: Transform (taskl)()-sub step4: Load (taskl)()-sub step5: Teardown (taskl)()通過這樣的定義,系統(tǒng)能統(tǒng)計有哪些作業(yè)需要運行及與該作業(yè)所要執(zhí)行數(shù)據(jù)處理過程相關(guān)聯(lián)的方法。如圖5所示,處理模塊43主要包括任務(wù)分析器、任務(wù)分發(fā)器和管道三個部分。任務(wù)分析器,用于分析并檢查所定義的的各個數(shù)據(jù)處理作業(yè)(可簡稱“作業(yè)”)的語法和語義。任務(wù)分析器是基于PERL語言的方法屬性處理器(Perl Attribute Handler)實現(xiàn)。PERL語言的方法屬性處理器能在編譯過程中BEGIN、CHECK、INIT和END中的某一階段觸發(fā),從而實現(xiàn)在系統(tǒng)編譯期對用戶定義的作業(yè)進行分析。在任務(wù)分析器中,定義了五種PERL語言方法屬性的語法,分別為Sub Setup:ATTR(CODE) {};Sub Extract: ATTR (CODE) {};Sub Transfor: ATTR (CODE) {};Sub Load:ATTR(CODE) {};Sub T ear down: ATTR (CODE) {};任務(wù)分析器通過上述定義的語法對各個數(shù)據(jù)處理作業(yè)進行語法檢查,若作業(yè)與上述定義的語法一致,則判斷該作業(yè)的語法是正確的,否則,判斷結(jié)果為該作業(yè)的語法是錯誤的。任務(wù)分發(fā)器收集所有語法正確的作業(yè),根據(jù)各個作業(yè)中的數(shù)據(jù)包的名稱,將語法正確的各個作業(yè)分發(fā)到不同的管道中去執(zhí)行。各個管道同時根據(jù)各個作業(yè)中的方法屬性,調(diào)用相應的方法對該數(shù)據(jù)包中的數(shù)據(jù)進行處理。需要說明的是,各個管道為預先設(shè)定的針對各個數(shù)據(jù)包的數(shù)據(jù)處理過程的調(diào)用方法的函數(shù),預先設(shè)定的管道的數(shù)量與將待處理的數(shù)據(jù)劃分后的數(shù)據(jù)包的數(shù)量相同。每個管道可以在當前的一個線程中運行,也可以在另一個主機上的一個獨立進程中運行。這樣可以提高整體數(shù)據(jù)的數(shù)據(jù)處理效率,且不同任務(wù)之間互不干擾,在去掉一個已有作業(yè)或增加一個新的作業(yè)時都不會影響到其它正常作業(yè)的運行,實現(xiàn)了可擴展性。對于任一個作業(yè)來說,將其放入至與其關(guān)聯(lián)的管道中運行,這相當于將作業(yè)當作插件插入至本系統(tǒng)中,即使新的作業(yè)有語法、功能等錯誤,也不會影響到它的運行。也可以指定只運行某些作業(yè),這相當于把另外一些不需要處理的作業(yè)當作插件從本系統(tǒng)中卸載掉,從而使得本系統(tǒng)具有高擴展性。另外,在本系統(tǒng)中,還可以采用Log4perl模塊輸出每個管道的每一步運行日志,并在此基礎(chǔ)上實現(xiàn)了基于日志分析的監(jiān)控系統(tǒng)。從而能夠?qū)崟r監(jiān)控線上系統(tǒng)運行情況,例如系統(tǒng)中的每一個作業(yè)所花費的時間等。下面以一個示例來進一步說明本發(fā)明的優(yōu)點和特征。示例現(xiàn)有某系統(tǒng)十小時的日志數(shù)據(jù),每個小時的數(shù)據(jù)存儲在一個壓縮包內(nèi),每個壓縮包大約900M (共十個壓縮包),每個壓縮包有一千一百萬條記錄,以二進制文本存儲。每個記錄以 object_id, object_type, interval_start 為主鍵現(xiàn)需要將 object_type 特定值的數(shù)據(jù)加載到數(shù)據(jù)庫中?,F(xiàn)根據(jù)需求設(shè)計每個數(shù)據(jù)包的數(shù)據(jù)處理過程包括以下步驟:(I) Setup步驟:主要負責處理執(zhí)行傳統(tǒng)ETL步聚前需要做的初始化操作,如建立數(shù)據(jù)庫表、對數(shù)據(jù)庫表進行分區(qū)、準備源數(shù)據(jù)等。由于數(shù)據(jù)量較大,因此可以將數(shù)據(jù)按時間(interval_start)加以分區(qū),譬如:一個小時一個分區(qū)。數(shù)據(jù)的分區(qū)對應于數(shù)據(jù)庫中表的分區(qū),這樣做的目的是既可以避免數(shù)據(jù)的重復處理,又可以加速數(shù)據(jù)的加載過程和查詢操作,
數(shù)據(jù)庫表分區(qū)定義為:
CREATE TABLE test—taWe (
object id int unsigned NOT NULL,object—type int unsigned NOT NULL,interval—start mediuinint NOT NULL,
PRIMARY KEY(object—id, interval—start)
)ENGI N E=InnoDBDEFA U LTCHA RS ET=UtfB COLLATE=UtfBgeneralci
PARTITION BY RANGE(intervai_start,)
(
PARTITION zero VALUES LESS THAN (I),
PARTITION VALUES LESS THAN (1000),
PARTITION VALUES LESS THAN (1001)
PARTITION fiiture VAII FS LESS THAN MAXVALUE`);(2) Extract步驟:主要負責將異構(gòu)數(shù)據(jù)源如二進制文件、數(shù)據(jù)庫表等抽取出來,統(tǒng)一文本方式存儲,便于后繼步聚的合并、清洗、分類、分揀和列檢索等操作。抽取的方法通常依賴于源數(shù)據(jù)的具體結(jié)構(gòu),這里為上述二進制文件設(shè)計了單獨的抽取工具。只需要在該過程中調(diào)用該工具即可,該工具將抽取出來的數(shù)據(jù)以CSV文本格式存儲。(3) Transform步驟:主要負責將抽取出來的數(shù)據(jù)進行合并、清洗、分類、分揀和列檢索等處理,形成最終能直接加載到目標數(shù)據(jù)庫的文本文件。這一步中既可以編寫具體系統(tǒng)相關(guān)的高效轉(zhuǎn)換工具,也可以用已有的文本處理工具sed、awk、grep (其實這些工具已相當高效)等來分析抽取出來的CSV文本文件。這里采用awk進行數(shù)據(jù)轉(zhuǎn)換,如過濾掉ob ject_type為” test”的記錄并統(tǒng)計與上一個小時除主鍵外的其它域發(fā)生變化的object個數(shù),其中第一、二、三個域為記錄主鍵。awk-F, ARGIND==I {\key=$l", "$2","$3;fl[key]=$4;f2[key]=$5;f3[key]=$6;f4[key]=$7;f5[key]=$8;f6[key]=$9;}\ARGIND>1&&($2!= “test”){if(fI[key2]!=$4| |f2[key2]!=$5| |f3[key2]!=$6I f4[key2]!=$7 f5[key2]!=$8f6[key2]!=$9){shifts++}}END{print$0", "shifts}filel file2(4) Load步驟:直接將轉(zhuǎn)換后的數(shù)據(jù)文件加載到相應數(shù)據(jù)庫中即可。在加載過程中,由于多數(shù)SQL語句效率不高,因此應盡量避免SQL語句操作。由于本系統(tǒng)的轉(zhuǎn)換后得到
的數(shù)據(jù)文件跟數(shù)據(jù)庫中的表是--對應的,因此可以用Mysql的內(nèi)建函數(shù)1addata來加載
數(shù)據(jù)文件,實驗表明這樣的加載方法是最高效的,比INSERT語句快二十倍:LOAD DATA ‘file_name’INTO TABLE tab_nameFIELDS TERMINATED BY' , ' ENCLOSED BY""LINES TERMINATED BY ‘\n’(5) Teardown步驟:負責處理后續(xù)事宜,如刪除無用文本文件、生成一些統(tǒng)計信息表以方便用戶查詢等。從以上作業(yè)的示例可以看出,在本系統(tǒng)中只需定義上述幾個步驟對應的方法即可,每個步驟對應的方法實現(xiàn)相當靈活,可以借助已有的sed、awk和grep等高效的文本處理工具,這大大減少了設(shè)計作業(yè)的工作量。為了測試本系統(tǒng)的性能,分別用本系統(tǒng)和開源工具KETTLE對上述十小時的日志數(shù)據(jù)進行數(shù)據(jù)處理:采用本系統(tǒng)運行作業(yè)十次,每次加載一個小時的數(shù)據(jù),每小時數(shù)據(jù)有一千一百萬條記錄,運行任務(wù)過程中記錄每一步所花費的時間,實驗結(jié)果如圖6所示。分別用開源工具KETTLE和本系統(tǒng)(假設(shè)稱為SETL)運行作業(yè)十次,每次加載一個小時數(shù)據(jù),每小時數(shù)據(jù)有一千一百萬條記錄,記錄該十個作業(yè)分別在Kettle和本系統(tǒng)中運行所需時間,實驗結(jié)果如圖7所示。從圖6可以看出本系統(tǒng)具有較高效率,一千多萬條數(shù)據(jù)加載在80秒內(nèi)便能處理完畢,且大部分時間花費在數(shù)據(jù)轉(zhuǎn)換這一步,這一步是由轉(zhuǎn)換規(guī)則的復雜性決定的;從圖7的對比可以看出,本系統(tǒng)比開源工具Kettle具有更高的執(zhí)行效率。
本實施例的數(shù)據(jù)處理系統(tǒng),通過任務(wù)分發(fā)器將各個數(shù)據(jù)包的數(shù)據(jù)處理作業(yè)分發(fā)至不同的管道中獨立地執(zhí)行,使得能夠在各個管道中并行執(zhí)行各個數(shù)據(jù)包的數(shù)據(jù)處理,節(jié)省了大量的時間;而且,各個數(shù)據(jù)包的數(shù)據(jù)處理過程可以根據(jù)用戶的需要進行設(shè)定,對于不太重要的數(shù)據(jù)可以不進行,使得本系統(tǒng)具有高擴展性。本領(lǐng)域的技術(shù)人員應該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。雖然本發(fā)明所揭露的實施方式如上,但所述的內(nèi)容只是為了便于理解本發(fā)明而采用的實施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬技術(shù)領(lǐng)域內(nèi)的技術(shù)人員,在不脫離本發(fā)明所揭露的精神和范圍的前提下,可以在實施的形式上及細節(jié)上作任何的修改與變化,但本發(fā)明的專利保護范圍,仍須以所附的權(quán)利要求書所界定的范圍為準。
權(quán)利要求
1.一種數(shù)據(jù)處理方法,其特征在于,包括: 步驟一,將待處理的數(shù)據(jù)劃分為多個數(shù)據(jù)包; 步驟二,對部分或全部數(shù)據(jù)包設(shè)定各自的數(shù)據(jù)處理過程; 步驟三,根據(jù)各個設(shè)定的數(shù)據(jù)處理過程,同時分別對各個數(shù)據(jù)包中的數(shù)據(jù)進行處理。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理方法,其特征在于,在所述步驟一中, 根據(jù)設(shè)定模式將待處理的數(shù)據(jù)劃分為多個數(shù)據(jù)包,其中, 所述設(shè)定模式為按時間劃分或按數(shù)據(jù)大小劃分。
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理方法,其特征在于,所述步驟二進一步包括: 將所述各個設(shè)定的數(shù)據(jù)處理過程分別定義為各個數(shù)據(jù)處理作業(yè),其中, 所述數(shù)據(jù)處理作業(yè)包括數(shù)據(jù)包的名稱和與所述數(shù)據(jù)包的數(shù)據(jù)處理過程中所包含的各步驟相對應的方法屬性。
4.根據(jù)權(quán)利要求3所述的數(shù)據(jù)處理方法,其特征在于,在所述步驟三中,具體包括以下步驟: 分析并檢查所述各個數(shù)據(jù)處理作業(yè)的語法; 根據(jù)所述數(shù)據(jù)處理作業(yè)中數(shù)據(jù)包的名稱,將語法正確的各個數(shù)據(jù)處理作業(yè)分發(fā)至與所述名稱相關(guān)聯(lián)的各個管道中; 所述各個管道同時根據(jù)各個作業(yè)中的方法屬性,調(diào)用相應的方法對該數(shù)據(jù)包中的數(shù)據(jù)進行處理,其中, 所述各個管道為預先設(shè)定的針對各個數(shù)據(jù)包的數(shù)據(jù)處理過程的調(diào)用方法的函數(shù),預先設(shè)定的管道的數(shù)量與將待處理的數(shù)據(jù)劃分后的數(shù)據(jù)包的數(shù)量相同。
5.根據(jù)權(quán)利要求4所述的數(shù)據(jù)處理方法,其特征在于,所述數(shù)據(jù)處理過程設(shè)定為按照以下順序進行操作的前設(shè)定個步驟: 第一步進行設(shè)置步驟,該設(shè)置步驟執(zhí)行在對數(shù)據(jù)處理之前的初始化處理,其中,所述初始化處理包括建立數(shù)據(jù)庫表,并根據(jù)所述各個數(shù)據(jù)包的數(shù)量對所述數(shù)據(jù)庫表進行分區(qū)的操作; 第二步進行抽取步驟,該抽取步驟將元數(shù)據(jù)抽取出來; 第三步進行轉(zhuǎn)換步驟,該轉(zhuǎn)換步驟將抽取出來的元數(shù)據(jù)進行合并、清洗、分類、分揀和列檢索處理; 第四步進行裝載步驟,該裝載步驟將執(zhí)行完所述轉(zhuǎn)換步驟后的數(shù)據(jù)加載至相應數(shù)據(jù)庫中; 第五步進行拆卸步驟,該拆卸步驟處理后續(xù)操作,所述后續(xù)操作包括刪除文件和生成統(tǒng)計信息表。
6.根據(jù)權(quán)利要求3至5中任一項所述的數(shù)據(jù)處理方法,其特征在于, 采用插件的方式來設(shè)計各個數(shù)據(jù)處理作業(yè)。
7.根據(jù)權(quán)利要求4或5所述的數(shù)據(jù)處理方法,其特征在于, 所述管道在當前主機的一個線程 中運行或在另一個主機的獨立的進程中運行。
8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)處理方法,其特征在于,還包括: 利用PERL語言中的Log4perl模塊,對所述管道調(diào)用相應的方法對該數(shù)據(jù)包中的數(shù)據(jù)進行處理的過程進行監(jiān)控。
9.一種數(shù)據(jù)處理系統(tǒng),其特征在于,包括: 劃分模塊,將待處理的數(shù)據(jù)劃分為多個數(shù)據(jù)包; 設(shè)定模塊,對部分或全部數(shù)據(jù)包設(shè)定各自的數(shù)據(jù)處理過程; 處理模塊,根據(jù)各個設(shè)定的數(shù)據(jù)處理過程,同時分別對各個數(shù)據(jù)包中的數(shù)據(jù)進行處理。
10.根據(jù)權(quán)利要求9所述的數(shù)據(jù)處理系統(tǒng),其特征在于,所述設(shè)定模塊進一步執(zhí)行: 將所述各個設(shè)定的數(shù)據(jù)處理過程分別定義為各個數(shù)據(jù)處理作業(yè),其中, 所述數(shù)據(jù)處理作業(yè)包括數(shù)據(jù)包的名稱和與所述數(shù)據(jù)包的數(shù)據(jù)處理過程中所包含的各步驟相對應的方法屬性; 在所述處理模塊進一步包括: 任務(wù)分析器,其分析并檢查所述各個數(shù)據(jù)處理作業(yè)的語法; 任務(wù)分發(fā)器,根據(jù)所述數(shù)據(jù)處理作業(yè)中數(shù)據(jù)包的名稱,將語法正確的各個數(shù)據(jù)處理作業(yè)分發(fā)至與所述名稱相關(guān)聯(lián)的各個管道中; 所述各個管道,同時根據(jù)各個作業(yè)中的方法屬性,調(diào)用相應的方法對該數(shù)據(jù)包中的數(shù)據(jù)進行處理,其中, 所述各個管道為預先設(shè)定的針對各個數(shù)據(jù)包的數(shù)據(jù)處理過程的調(diào)用方法的函數(shù),預先設(shè)定的管道的數(shù)量與將待處理的數(shù)據(jù)劃分后的數(shù)據(jù)包的數(shù)量相同。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)處理方法,該方法包括步驟一,將待處理的數(shù)據(jù)劃分為多個數(shù)據(jù)包;步驟二,對部分或全部數(shù)據(jù)包設(shè)定各自的數(shù)據(jù)處理過程;步驟三,根據(jù)各個設(shè)定的數(shù)據(jù)處理過程,同時分別對各個數(shù)據(jù)包中的數(shù)據(jù)進行處理。本發(fā)明通過將各個數(shù)據(jù)包的數(shù)據(jù)處理作業(yè)分發(fā)至不同的管道中獨立地執(zhí)行,使得能夠在各個管道中并行執(zhí)行各個數(shù)據(jù)包的數(shù)據(jù)處理,節(jié)省了大量的時間;而且,各個數(shù)據(jù)包的數(shù)據(jù)處理過程可以根據(jù)用戶的需要進行設(shè)定,對于不太重要的數(shù)據(jù)可以不進行,使得具有高擴展性。
文檔編號G06F17/30GK103077192SQ201210568419
公開日2013年5月1日 申請日期2012年12月24日 優(yōu)先權(quán)日2012年12月24日
發(fā)明者田媛媛 申請人:中標軟件有限公司