亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

分布式預(yù)處理方法和系統(tǒng)的制作方法

文檔序號(hào):7810223閱讀:163來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):分布式預(yù)處理方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)領(lǐng)域中分布式系統(tǒng),具體地,涉及分布式預(yù)處理的方法及系統(tǒng)。
背景技術(shù)
現(xiàn)有分布式數(shù)據(jù)加載、預(yù)處理系統(tǒng)的邏輯架構(gòu)包括:Source節(jié)點(diǎn)(即源節(jié)點(diǎn)):部署在數(shù)據(jù)源側(cè),封裝待加載數(shù)據(jù)源,將數(shù)據(jù)源中的數(shù)據(jù)發(fā)送給Dest節(jié)點(diǎn);Dest節(jié)點(diǎn)(即目的節(jié)點(diǎn)):部署在存儲(chǔ)側(cè),接收來(lái)自Source節(jié)點(diǎn)的數(shù)據(jù),導(dǎo)入到后端的存儲(chǔ)中;Process節(jié)點(diǎn):在Dest節(jié)點(diǎn)將數(shù)據(jù)存儲(chǔ)之前,可以引入多個(gè)Process節(jié)點(diǎn),對(duì)數(shù)據(jù)進(jìn)行一些預(yù)處理,如過(guò)濾、轉(zhuǎn)換等。Process節(jié)點(diǎn)在物理上可以和Dest節(jié)點(diǎn)共用一個(gè)節(jié)點(diǎn)。目前分布式數(shù)據(jù)加載、預(yù)處理系統(tǒng)的預(yù)處理工作,主要通過(guò)人工干預(yù)配置Process節(jié)點(diǎn)的方式。如果需要對(duì)數(shù)據(jù)進(jìn)行多步預(yù)處理,則需要引入多個(gè)Process節(jié)點(diǎn),每個(gè)Process節(jié)點(diǎn)處理后會(huì)將數(shù)據(jù)落地存入臨時(shí)存儲(chǔ)空間,下一個(gè)Process節(jié)點(diǎn)再?gòu)呐R時(shí)存儲(chǔ)空間讀取數(shù)據(jù)進(jìn)行處理。在實(shí)現(xiàn)本發(fā)明過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問(wèn)題:首先,采用靜態(tài)、硬編碼的方式,一旦設(shè)置好就不能動(dòng)態(tài)修改,更新、升級(jí)預(yù)處理過(guò)程比較繁瑣,需要增加或更新Process節(jié)點(diǎn)及其配置;其次,多個(gè)預(yù)處理過(guò)程中間結(jié)果還需要臨時(shí)存儲(chǔ),浪費(fèi)系統(tǒng)讀寫(xiě)10,造成性能降低。

發(fā)明內(nèi)容
本發(fā)明的目的是針對(duì)現(xiàn)有技術(shù)中分布式系統(tǒng)預(yù)處理效率較低的缺陷,提出一種分布式預(yù)處理的方法及系統(tǒng)。為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種分布式預(yù)處理的方法。根據(jù)本發(fā)明實(shí)施例的分布式預(yù)處理方法,包括:處理節(jié)點(diǎn)接收自源節(jié)點(diǎn)發(fā)送的數(shù)據(jù);管理模塊根據(jù)處理節(jié)點(diǎn)的不同需求配置執(zhí)行模塊的種類(lèi)和執(zhí)行順序;處理節(jié)點(diǎn)調(diào)用自身部署的由管理模塊配置的包含有多個(gè)執(zhí)行模塊的執(zhí)行模塊集合對(duì)接收的數(shù)據(jù)進(jìn)行預(yù)處理操作。在上述技術(shù)方案中,在預(yù)處理操作的步驟之后還包括:執(zhí)行模塊集合將預(yù)處理中間結(jié)果直于內(nèi)存中存儲(chǔ)。在上述技術(shù)方案中,管理模塊在與相同目的節(jié)點(diǎn)對(duì)應(yīng)的多個(gè)處理節(jié)點(diǎn)中配置相同的執(zhí)行模塊進(jìn)行預(yù)處理操作。在上述技術(shù)方案中,方法還包括:管理模塊收集各處理節(jié)點(diǎn)在對(duì)數(shù)據(jù)進(jìn)行預(yù)處理時(shí)的進(jìn)程狀態(tài);
如果處理節(jié)點(diǎn)在對(duì)數(shù)據(jù)進(jìn)行預(yù)處理時(shí)存在進(jìn)程不一致的狀態(tài),管理模塊則將所有處理節(jié)點(diǎn)回滾到未處理狀態(tài),在確認(rèn)所有處理節(jié)點(diǎn)完成更新后,再同時(shí)啟動(dòng)所有處理節(jié)點(diǎn)進(jìn)行預(yù)處理操作;如果處理節(jié)點(diǎn)在對(duì)數(shù)據(jù)進(jìn)行預(yù)處理時(shí),存在部分處理節(jié)點(diǎn)已啟動(dòng),其它節(jié)點(diǎn)未啟動(dòng)的狀態(tài),管理模塊將未啟動(dòng)的處理節(jié)點(diǎn)暫停,將已啟動(dòng)的處理節(jié)點(diǎn)回滾到未處理狀態(tài),在確認(rèn)所有處理節(jié)點(diǎn)完成更新后,再同時(shí)啟動(dòng)所有處理節(jié)點(diǎn)進(jìn)行預(yù)處理操作。在上述技術(shù)方案中,方法還包括:執(zhí)行模塊集合完成執(zhí)行模塊執(zhí)行環(huán)境的初始化、模塊接口檢查、模塊加載和卸載、執(zhí)行的操作。在上述技術(shù)方案中,方法還包括:執(zhí)行模塊集合按照配置分配內(nèi)存,并將待處理的數(shù)據(jù)保存在內(nèi)存中;執(zhí)行模塊集合將內(nèi)存指針作為參數(shù)傳遞給執(zhí)行模塊,執(zhí)行模塊分配所需內(nèi)存并將預(yù)處理中間結(jié)果保存在內(nèi)存中;執(zhí)行模塊集合在所述內(nèi)存中的預(yù)處理中間結(jié)果被調(diào)用后,釋放內(nèi)存。為實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的另一個(gè)方面,提供了一種分布式預(yù)處理系統(tǒng)。根據(jù)本發(fā)明實(shí)施例的分布式預(yù)處理系統(tǒng),包括:處理節(jié)點(diǎn),用于接收自源節(jié)點(diǎn)發(fā)送的數(shù)據(jù),調(diào)用自身部署的由管理模塊配置的包含有多個(gè)執(zhí)行模塊的執(zhí)行模塊集合對(duì)接收的數(shù)據(jù)進(jìn)行預(yù)處理操作;管理模塊,用于根據(jù)處理節(jié)點(diǎn)的不同需求配置執(zhí)行模塊的種類(lèi)和執(zhí)行順序。在上述技術(shù)方案中,執(zhí)行模塊集合,用于將預(yù)處理中間結(jié)果置于內(nèi)存中存儲(chǔ)。在上述技術(shù)方案中,管理模塊,還用于在與相同目的節(jié)點(diǎn)對(duì)應(yīng)的多個(gè)處理節(jié)點(diǎn)中配置相同的執(zhí)行模塊進(jìn)行預(yù)處理操作。在上述技術(shù)方案中,管理模塊,用于收集各處理節(jié)點(diǎn)在對(duì)數(shù)據(jù)進(jìn)行預(yù)處理時(shí)的進(jìn)程狀態(tài),根據(jù)進(jìn)程狀態(tài),對(duì)處理節(jié)點(diǎn)進(jìn)行狀態(tài)處理;管理模塊包括:狀態(tài)收集子模塊,用于收集各處理節(jié)點(diǎn)在對(duì)數(shù)據(jù)進(jìn)行預(yù)處理時(shí)的進(jìn)程狀態(tài);狀態(tài)處理子模塊,用于根據(jù)處理節(jié)點(diǎn)在對(duì)數(shù)據(jù)進(jìn)行預(yù)處理時(shí)的進(jìn)程狀態(tài),對(duì)處理節(jié)點(diǎn)進(jìn)行狀態(tài)處理:如果處理節(jié)點(diǎn)在對(duì)數(shù)據(jù)進(jìn)行預(yù)處理時(shí)存在進(jìn)程不一致的狀態(tài),將所有處理節(jié)點(diǎn)回滾到未處理狀態(tài),在確認(rèn)所有處理節(jié)點(diǎn)完成更新后,再同時(shí)啟動(dòng)所有處理節(jié)點(diǎn)進(jìn)行預(yù)處理操作;如果處理節(jié)點(diǎn)在對(duì)數(shù)據(jù)進(jìn)行預(yù)處理時(shí),存在部分處理節(jié)點(diǎn)已啟動(dòng),其它節(jié)點(diǎn)未啟動(dòng)的狀態(tài),將未啟動(dòng)的處理節(jié)點(diǎn)暫停,將已啟動(dòng)的處理節(jié)點(diǎn)回滾到未處理狀態(tài),在確認(rèn)所有處理節(jié)點(diǎn)完成更新后,再同時(shí)啟動(dòng)所有處理節(jié)點(diǎn)進(jìn)行預(yù)處理操作。在上述技術(shù)方案中,執(zhí)行模塊集合包括:初始化子模塊,用于完成執(zhí)行模塊執(zhí)行環(huán)境的初始化、模塊接口檢查、模塊加載和卸載、執(zhí)行的操作。在上述技術(shù)方案中,執(zhí)行模塊集合包括:內(nèi)存管理子模塊,用于按照配置分配內(nèi)存,并將待處理的數(shù)據(jù)保存在內(nèi)存中,將內(nèi)存指針作為參數(shù)傳遞給執(zhí)行模塊,在內(nèi)存中的預(yù)處理中間結(jié)果被調(diào)用后,釋放內(nèi)存;
執(zhí)行模塊,用于完成既定處理邏輯,并將預(yù)處理中間結(jié)果保存在從執(zhí)行模塊集合申請(qǐng)的內(nèi)存中。本發(fā)明各實(shí)施例的分布式預(yù)處理方法和系統(tǒng),可以動(dòng)態(tài)、靈活地管理Process節(jié)點(diǎn)的預(yù)處理過(guò)程,管理執(zhí)行模塊集合,保證Process節(jié)點(diǎn)預(yù)處理過(guò)程的一致性和原子性;系統(tǒng)保證了 Process節(jié)點(diǎn)的多個(gè)執(zhí)行模塊的預(yù)處理中間結(jié)果都在內(nèi)存中處理,不需要臨時(shí)存儲(chǔ),提高了預(yù)處理性能。本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說(shuō)明書(shū)中闡述,并且,部分地從說(shuō)明書(shū)中變得顯而易見(jiàn),或者通過(guò)實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過(guò)在所寫(xiě)的說(shuō)明書(shū)、權(quán)利要求書(shū)、以及附圖中所特別指出的結(jié)構(gòu)來(lái)實(shí)現(xiàn)和獲得。下面通過(guò)附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。


附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說(shuō)明書(shū)的一部分,與本發(fā)明的實(shí)施例一起用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中:圖1為根據(jù)本發(fā)明分布式預(yù)處理系統(tǒng)的構(gòu)架示意圖;圖2為根據(jù)本發(fā)明執(zhí)行模塊集合的結(jié)構(gòu)示意圖;圖3為根據(jù)本發(fā)明Process節(jié)點(diǎn)預(yù)處理過(guò)程更新的結(jié)構(gòu)示意圖;圖4為根據(jù)本發(fā)明Process節(jié)點(diǎn)保證預(yù)處理過(guò)程一致性的結(jié)構(gòu)示意圖;圖5為根據(jù)本發(fā)明Process節(jié)點(diǎn)管理更新的結(jié)構(gòu)示意圖;圖6為根據(jù)本發(fā)明分布式預(yù)處理方法的流程示意圖;圖7為根據(jù)本發(fā)明分布式預(yù)處理系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式以下結(jié)合附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說(shuō)明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí)施例僅用于說(shuō)明和解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明的分布式預(yù)處理系統(tǒng)設(shè)計(jì)了主控節(jié)點(diǎn)PMaster,可動(dòng)態(tài)、有機(jī)地管理Process節(jié)點(diǎn)(即處理節(jié)點(diǎn))的預(yù)處理過(guò)程,保證Process節(jié)點(diǎn)預(yù)處理過(guò)程的一致性和原子性;而且,系統(tǒng)保證了 Process節(jié)點(diǎn)調(diào)用多個(gè)執(zhí)行模塊的中間結(jié)果都在內(nèi)存中處理,不需要臨時(shí)存儲(chǔ)。如圖1所示,本發(fā)明的分布式預(yù)處理系統(tǒng)包括管理模塊(即PManager)和執(zhí)行模塊集合(即PModule),管理模塊通常部署在主控節(jié)點(diǎn)PMaster上,執(zhí)行模塊集合部署在處理節(jié)點(diǎn)Process上。如圖2所示,PModule中部署多個(gè)執(zhí)行模塊,即Modulel、Module2、
Module3......ModuleK, PModule主要完成執(zhí)行模塊的運(yùn)行操作,包括執(zhí)行引擎、內(nèi)存管理、
管理監(jiān)控等,PModule主要由如下部件構(gòu)成:執(zhí)行引擎(即Execute Engine):完成執(zhí)行模塊執(zhí)行環(huán)境的初始化、模塊接口檢查、模塊加載和卸載、執(zhí)行等工作;內(nèi)存管理:根據(jù)要求預(yù)先分配內(nèi)存,并及時(shí)回收內(nèi)存。為了保障執(zhí)行模塊的執(zhí)行效率,內(nèi)存管理是核心功能之一,主要包括以下操作:
執(zhí)行引擎按照配置分配內(nèi)存,并將待處理的數(shù)據(jù)保存在內(nèi)存中;將內(nèi)存指針作為參數(shù)傳遞給執(zhí)行模塊,執(zhí)行模塊分配所需內(nèi)存并將數(shù)據(jù)的預(yù)處理中間結(jié)果保存在內(nèi)存中;各個(gè)執(zhí)行模塊的預(yù)處理中間結(jié)果均被暫存在內(nèi)存中,可以被其他模塊使用;所有模塊執(zhí)行結(jié)束后,本批次數(shù)據(jù)占用的內(nèi)存被釋放,數(shù)據(jù)結(jié)果按照要求持久化;管理監(jiān)控:按照PManager的要求,完成執(zhí)行模塊的管理工作,并提供監(jiān)控操作。PManager實(shí)現(xiàn)對(duì)執(zhí)行模塊的管理,包括安裝、部署、升級(jí)、降級(jí)、狀態(tài)跟蹤等功能,主要由如下部件構(gòu)成:模塊管理部件:主要實(shí)施對(duì)執(zhí)行模塊的各項(xiàng)管理操作,由于是分布式系統(tǒng),因此需要支持管理操作的原子性 ,即一項(xiàng)操作在所有節(jié)點(diǎn)上或者都成功,或者都失敗,而不能部分成功,否則會(huì)造成數(shù)據(jù)不一致;模塊和狀態(tài)數(shù)據(jù)庫(kù):主要實(shí)施執(zhí)行模塊及其狀態(tài)的管理;人際界面:提供給管理系統(tǒng)顯示。PManager的主要功能包括:I)管理所有執(zhí)行模塊:定義標(biāo)準(zhǔn)的執(zhí)行模塊接口,需要保證對(duì)不同的Process節(jié)點(diǎn)提供按需的預(yù)處理過(guò)程:配置Process節(jié)點(diǎn)的預(yù)處理過(guò)程,例如,預(yù)處理過(guò)程中用到了哪些執(zhí)行模塊,按照什么順序依次運(yùn)行執(zhí)行模塊等,更新Process節(jié)點(diǎn)的預(yù)處理過(guò)程;如圖3所示,如果有Process節(jié)點(diǎn)預(yù)處理過(guò)程更新,則修改配置并通知相應(yīng)Process 節(jié)點(diǎn);配置信息如下:sourcel processl (執(zhí)行模塊I,執(zhí)行模塊2,執(zhí)行模塊3) destlsource2 process2 (執(zhí)行模塊I,執(zhí)行模塊3,執(zhí)行模塊4) dest2sourceN processN(執(zhí)行模塊 I,執(zhí)行模塊 5) destN2)可以保證對(duì)同一 Source節(jié)點(diǎn)進(jìn)行處理的多個(gè)Process節(jié)點(diǎn)的預(yù)處理過(guò)程的一致性:當(dāng)采用負(fù)載均衡或高可靠方式加載數(shù)據(jù)時(shí),一個(gè)Source節(jié)點(diǎn)可能將數(shù)據(jù)發(fā)送給多個(gè)Process節(jié)點(diǎn)及多個(gè)Dest節(jié)點(diǎn),需要保證這多個(gè)Process節(jié)點(diǎn)的預(yù)處理過(guò)程的一致性。例如,在高可靠加載方式情況下,每個(gè)Process節(jié)點(diǎn)對(duì)應(yīng)一個(gè)Dest節(jié)點(diǎn),處理該Dest節(jié)點(diǎn)接收的數(shù)據(jù)。系統(tǒng)需要保證同一個(gè)Source節(jié)點(diǎn)發(fā)送給的多個(gè)Dest節(jié)點(diǎn)的預(yù)處理過(guò)程的一致性,這是通過(guò)對(duì)于同一個(gè)Source節(jié)點(diǎn)的處理,在不同的Process節(jié)點(diǎn)中為該Source節(jié)點(diǎn)配置一個(gè)或多個(gè)相同的執(zhí)行模塊來(lái)實(shí)現(xiàn)的。如圖4中的Process2和ProcessM節(jié)點(diǎn)中針對(duì)Source〗節(jié)點(diǎn)的執(zhí)行模塊配置是一致的,都是執(zhí)行模塊1、執(zhí)行模塊3、執(zhí)行模塊4。同時(shí),還需要保證對(duì)Process節(jié)點(diǎn)接收的不同Source節(jié)點(diǎn)數(shù)據(jù),提供按需的預(yù)處理過(guò)程。如圖4中Process2節(jié)點(diǎn)中針對(duì)Sourcel節(jié)點(diǎn)和Source2節(jié)點(diǎn)提供不同的執(zhí)行模塊配置。圖4的配置信息如下:Sourcel processl (模塊 1,模塊 2) destl、process2 (模塊 1,模塊 2,模塊 3) dest2Source2 process2(模塊 I,模塊 3,模塊 4) dest2、processM(模塊 I,模塊 3,模塊4)destMSourceN processM(模塊 I,模塊 5) destM、processl (模塊 I,模塊 5) destl3)管理更新,包括:(l)Pr0CeSS節(jié)點(diǎn)的更新,包括對(duì)其增刪、升級(jí)、回滾;(2)針對(duì)特定Source節(jié)點(diǎn)預(yù)處理的各個(gè)Process節(jié)點(diǎn)預(yù)處理過(guò)程的更新。通知Process節(jié)點(diǎn)更新信息:包括模塊升級(jí)、回滾信息,和/或節(jié)點(diǎn)預(yù)處理過(guò)程更新信息,如針對(duì)特定Source節(jié)點(diǎn)的預(yù)處理進(jìn)行增加、刪除執(zhí)行模塊的操作;收集Process節(jié)點(diǎn)的預(yù)處理過(guò)程狀態(tài),一旦發(fā)現(xiàn)狀態(tài)或配置的問(wèn)題,系統(tǒng)可以及時(shí)干預(yù)。如圖5所示,對(duì)負(fù)責(zé)Sourcel節(jié)點(diǎn)預(yù)處理的Processl和Process2節(jié)點(diǎn)的預(yù)處理過(guò)程更新,在執(zhí)行模塊3之后新增執(zhí)行模塊4。保證更新時(shí)預(yù)處理任務(wù)的一致性和原子性,即保證更新的時(shí)候,待更新的Process節(jié)點(diǎn)的預(yù)處理過(guò)程都還沒(méi)有執(zhí)行,或回滾到未執(zhí)行狀態(tài)。系統(tǒng)首先通過(guò)收集Process節(jié)點(diǎn)狀態(tài)判斷是否需要回滾,然后將待更新Process節(jié)點(diǎn)的預(yù)處理過(guò)程暫停,等更新完成,再啟動(dòng)預(yù)處理過(guò)程。如圖5所示,系統(tǒng)獲取Processl和Process2的節(jié)點(diǎn)狀態(tài),如Processl還沒(méi)有處理Sourcel數(shù)據(jù),而Process2已經(jīng)開(kāi)始處理Sourcel數(shù)據(jù);暫停Processl節(jié)點(diǎn),通知Process2回滾到未處理狀態(tài)并暫停;通知Processl和Process2節(jié)點(diǎn)更新預(yù)處理過(guò)程,并確認(rèn)更新;同時(shí)啟動(dòng)Processl和Process2節(jié)點(diǎn)的預(yù)處理過(guò)程。本領(lǐng)域的技術(shù)人員可以了解,在圖5中,如果Processl節(jié)點(diǎn)和Process2節(jié)點(diǎn)都已經(jīng)開(kāi)始處理Sourcel的數(shù)據(jù),但兩者的進(jìn)程不一致,將通知Processl節(jié)點(diǎn)和Process2節(jié)點(diǎn)回滾到未處理狀態(tài),暫停Processl節(jié)點(diǎn)和Process2節(jié)點(diǎn),同時(shí)啟動(dòng)Processl和Process2節(jié)點(diǎn)的預(yù)處理過(guò)程。4)為了避免Pmaster節(jié)點(diǎn)的單點(diǎn)故障,也為了應(yīng)對(duì)系統(tǒng)節(jié)點(diǎn)規(guī)模增長(zhǎng)導(dǎo)致的控制流瓶頸,系統(tǒng)支持多個(gè)Pmaster節(jié)點(diǎn),并且Pmaster節(jié)點(diǎn)間保持同步復(fù)制和數(shù)據(jù)一致性。方法實(shí)施例根據(jù)本發(fā)明實(shí)施例,提供了一種分布式預(yù)處理方法,如圖6所示,本實(shí)施例包括:步驟102:處理節(jié)點(diǎn)Process接收自源節(jié)點(diǎn)Source發(fā)送的數(shù)據(jù),并調(diào)用執(zhí)行模塊集合PModule對(duì)接收的數(shù)據(jù)進(jìn)行預(yù)處理操作;步驟104:執(zhí)行模塊集合PModule將預(yù)處理中間結(jié)果置于內(nèi)存中存儲(chǔ);步驟106:處理節(jié)點(diǎn)Process將接收的所述數(shù)據(jù)置于目的節(jié)點(diǎn)Dest中。本發(fā)明的分布式預(yù)處理方法,系統(tǒng)動(dòng)態(tài)、靈活地管理Process節(jié)點(diǎn)的預(yù)處理過(guò)程,管理執(zhí)行模塊集合,保證Process節(jié)點(diǎn)預(yù)處理過(guò)程的一致性和原子性;系統(tǒng)保證了 Process節(jié)點(diǎn)的多個(gè)執(zhí)行模塊的預(yù)處理中間結(jié)果都在內(nèi)存中處理,不需要臨時(shí)存儲(chǔ),提高了預(yù)處理性能。本發(fā)明的分布式預(yù)處理方法,與現(xiàn)有模式相比具有以下優(yōu)勢(shì):現(xiàn)有模式:大量的數(shù)據(jù),如1000GB的數(shù)據(jù),被加載到數(shù)據(jù)庫(kù)中(如oracle),然后用戶(hù)通過(guò)在數(shù)據(jù)庫(kù)上發(fā)出SQL命令完成預(yù)處理,完成多次預(yù)處理,則需要發(fā)出多個(gè)SQL命令;但是在每次SQL操作時(shí),數(shù)據(jù)庫(kù)均需要:從磁盤(pán)掃描1000GB數(shù)據(jù),將滿(mǎn)足用戶(hù)要求的數(shù)據(jù)選取出來(lái),放到另外一個(gè)數(shù)據(jù)庫(kù)中
IO操作共計(jì):(I)入庫(kù)時(shí),保存了 1000GB的數(shù)據(jù);(2) N次SQL預(yù)處理,需要N次讀取1000GB的數(shù)據(jù);(3)累計(jì):1次寫(xiě),N次1000GB數(shù)據(jù)讀;本發(fā)明模式:大量數(shù)據(jù),如1000GB數(shù)據(jù),被傳輸?shù)絇Module上,PModule依次完成N次預(yù)處理(內(nèi)存),對(duì)1000GB的數(shù)據(jù)發(fā)生的磁盤(pán)操作:(I)入庫(kù),保存1000GB的數(shù)據(jù);(2) N次預(yù)處理,不需要磁盤(pán)IO操作;(3)累計(jì):I次寫(xiě);消除了 N次1000GB數(shù)據(jù)的讀取時(shí)間。系統(tǒng)實(shí)施例根據(jù)本發(fā)明實(shí)施例,提供了一種分布式預(yù)處理系統(tǒng)。如圖7所示,本實(shí)施例包括:處理節(jié)點(diǎn)10,用于接收自源節(jié)點(diǎn)發(fā)送的數(shù)據(jù),調(diào)用自身部署的由管理模塊配置的包含有多個(gè)執(zhí)行模塊的執(zhí)行模塊集合對(duì)接收的數(shù)據(jù)進(jìn)行預(yù)處理操作;管理模塊20,用于根據(jù)處理節(jié)點(diǎn)10的不同需求配置執(zhí)行模塊的種類(lèi)和執(zhí)行順序。執(zhí)行模塊集合30,用于將預(yù)處理中間結(jié)果置于內(nèi)存中存儲(chǔ)。其中:管理模塊20,還用于在與相同目的節(jié)點(diǎn)對(duì)應(yīng)的多個(gè)處理節(jié)點(diǎn)中配置相同的執(zhí)行模塊進(jìn)行預(yù)處理操作。其中:管理模塊20,用于收集各處理節(jié)點(diǎn)10在對(duì)數(shù)據(jù)進(jìn)行預(yù)處理時(shí)的進(jìn)程狀態(tài),根據(jù)進(jìn)程狀態(tài),對(duì)處理節(jié)點(diǎn)10進(jìn)行狀態(tài)處理;管理模塊20包括:狀態(tài)收集子模塊21,用于收集各處理節(jié)點(diǎn)在對(duì)數(shù)據(jù)進(jìn)行預(yù)處理時(shí)的進(jìn)程狀態(tài);狀態(tài)處理子模塊22,用于根據(jù)處理節(jié)點(diǎn)在對(duì)數(shù)據(jù)進(jìn)行預(yù)處理時(shí)的進(jìn)程狀態(tài),對(duì)處理節(jié)點(diǎn)進(jìn)行狀態(tài)處理:如果處理節(jié)點(diǎn)在對(duì)數(shù)據(jù)進(jìn)行預(yù)處理時(shí)存在進(jìn)程不一致的狀態(tài),將所有處理節(jié)點(diǎn)回滾到未處理狀態(tài),在確認(rèn)所有處理節(jié)點(diǎn)完成更新后,再同時(shí)啟動(dòng)所有處理節(jié)點(diǎn)進(jìn)行預(yù)處理操作;如果處理節(jié)點(diǎn)在對(duì)數(shù)據(jù)進(jìn)行預(yù)處理時(shí),存在部分處理節(jié)點(diǎn)已啟動(dòng),其它節(jié)點(diǎn)未啟動(dòng)的狀態(tài),將未啟動(dòng)的處理節(jié)點(diǎn)暫停,將已啟動(dòng)的處理節(jié)點(diǎn)回滾到未處理狀態(tài),在確認(rèn)所有處理節(jié)點(diǎn)完成更新后,再同時(shí)啟動(dòng)所有處理節(jié)點(diǎn)進(jìn)行預(yù)處理操作。其中:執(zhí)行模塊集合30包括:初始化子模塊31,用于完成執(zhí)行模塊執(zhí)行環(huán)境的初始化、模塊接口檢查、模塊加載和卸載、執(zhí)行的操作。內(nèi)存管理子模塊32,用于按照配置分配內(nèi)存,并將待處理的數(shù)據(jù)保存在內(nèi)存中,將內(nèi)存指針作為參數(shù)傳遞給執(zhí)行模塊,在內(nèi)存中的預(yù)處理中間結(jié)果被調(diào)用后,釋放內(nèi)存;執(zhí)行模塊,用于完成既定處理邏輯,并將預(yù)處理中間結(jié)果保存在從執(zhí)行模塊集合申請(qǐng)的內(nèi)存中。
本發(fā)明的分布式預(yù)處理系統(tǒng),動(dòng)態(tài)、靈活地管理Process節(jié)點(diǎn)的預(yù)處理過(guò)程,管理執(zhí)行模塊集合,保證Process節(jié)點(diǎn)預(yù)處理過(guò)程的一致性和原子性;系統(tǒng)保證了 Process節(jié)點(diǎn)的多個(gè)執(zhí)行模塊的預(yù)處理中間結(jié)果都在內(nèi)存中處理,不需要臨時(shí)存儲(chǔ),提高了預(yù)處理性能。本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:R0M、RAM、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。最后應(yīng)說(shuō)明的是:以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種分布式預(yù)處理方法,其特征在于,包括: 處理節(jié)點(diǎn)接收自源節(jié)點(diǎn)發(fā)送的數(shù)據(jù); 管理模塊根據(jù)所述處理節(jié)點(diǎn)的不同需求配置執(zhí)行模塊的種類(lèi)和執(zhí)行順序; 所述處理節(jié)點(diǎn)調(diào)用自身部署的由所述管理模塊配置的包含有多個(gè)執(zhí)行模塊的執(zhí)行模塊集合對(duì)接收的所述數(shù)據(jù)進(jìn)行預(yù)處理操作。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在預(yù)處理操作的步驟之后還包括:所述執(zhí)行模塊集合將預(yù)處理中間結(jié)果置于內(nèi)存中存儲(chǔ)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述管理模塊在與相同目的節(jié)點(diǎn)對(duì)應(yīng)的多個(gè)處理節(jié)點(diǎn)中配置相同的執(zhí)行模塊進(jìn)行預(yù)處理操作。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括: 所述管理模塊收集各處理節(jié)點(diǎn)在對(duì)數(shù)據(jù)進(jìn)行預(yù)處理時(shí)的進(jìn)程狀態(tài); 如果處理節(jié)點(diǎn)在對(duì)數(shù)據(jù)進(jìn)行預(yù)處理時(shí)存在進(jìn)程不一致的狀態(tài),所述管理模塊則將所有處理節(jié)點(diǎn)回滾到未處理狀態(tài),在確認(rèn)所有處理節(jié)點(diǎn)完成更新后,再同時(shí)啟動(dòng)所有處理節(jié)點(diǎn)進(jìn)行預(yù)處理操作; 如果處理節(jié)點(diǎn)在對(duì)數(shù)據(jù)進(jìn)行預(yù)處理時(shí),存在部分處理節(jié)點(diǎn)已啟動(dòng),其它節(jié)點(diǎn)未啟動(dòng)的狀態(tài),所述管理模塊將未啟動(dòng)的處理節(jié)點(diǎn)暫停,將已啟動(dòng)的處理節(jié)點(diǎn)回滾到未處理狀態(tài),在確認(rèn)所有處理節(jié)點(diǎn)完成更新后,再同時(shí)啟動(dòng)所有處理節(jié)點(diǎn)進(jìn)行預(yù)處理操作。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括: 所述執(zhí)行模塊集合完成執(zhí)行模塊執(zhí)行環(huán)境的初始化、模塊接口檢查、模塊加載和卸載、執(zhí)行的操作。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括: 所述執(zhí)行模塊集合按照配置分配內(nèi)存,并將待處理的數(shù)據(jù)保存在內(nèi)存中; 所述執(zhí)行模塊集合將內(nèi)存指針作為參數(shù)傳遞給執(zhí)行模塊,執(zhí)行模塊完成既定處理邏輯,并將預(yù)處理中間結(jié)果保存在從執(zhí)行模塊集合申請(qǐng)的內(nèi)存中; 所述執(zhí)行模塊集合在所述內(nèi)存中的預(yù)處理中間結(jié)果被調(diào)用后,釋放內(nèi)存。
7.一種分布式預(yù)處理系統(tǒng),其特征在于,包括: 處理節(jié)點(diǎn),用于接收自源節(jié)點(diǎn)發(fā)送的數(shù)據(jù),調(diào)用自身部署的由管理模塊配置的包含有多個(gè)執(zhí)行模塊的執(zhí)行模塊集合對(duì)接收的所述數(shù)據(jù)進(jìn)行預(yù)處理操作; 管理模塊,用于根據(jù)所述處理節(jié)點(diǎn)的不同需求配置執(zhí)行模塊的種類(lèi)和執(zhí)行順序。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述執(zhí)行模塊集合,用于將預(yù)處理中間結(jié)果直于內(nèi)存中存儲(chǔ)。
9.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述管理模塊,還用于在與相同目的節(jié)點(diǎn)對(duì)應(yīng)的多個(gè)處理節(jié)點(diǎn)中配置相同的執(zhí)行模塊進(jìn)行預(yù)處理操作。
10.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于, 所述管理模塊,用于收集各處理節(jié)點(diǎn)在對(duì)數(shù)據(jù)進(jìn)行預(yù)處理時(shí)的進(jìn)程狀態(tài),根據(jù)所述進(jìn)程狀態(tài),對(duì)所述處理節(jié)點(diǎn)進(jìn)行狀態(tài)處理; 所述管理模塊包括: 狀態(tài)收集子模塊,用于收集各處理節(jié)點(diǎn)在對(duì)數(shù)據(jù)進(jìn)行預(yù)處理時(shí)的進(jìn)程狀態(tài); 狀態(tài)處理子模塊,用于根據(jù)處理節(jié)點(diǎn)在對(duì)數(shù)據(jù)進(jìn)行預(yù)處理時(shí)的進(jìn)程狀態(tài),對(duì)所述處理節(jié)點(diǎn)進(jìn)行狀態(tài)處理: 如果處理節(jié)點(diǎn)在對(duì)數(shù)據(jù)進(jìn)行預(yù)處理時(shí)存在進(jìn)程不一致的狀態(tài),將所有處理節(jié)點(diǎn)回滾到未處理狀態(tài),在確認(rèn)所有處理節(jié)點(diǎn)完成更新后,再同時(shí)啟動(dòng)所有處理節(jié)點(diǎn)進(jìn)行預(yù)處理操作; 如果處理節(jié)點(diǎn)在對(duì)數(shù)據(jù)進(jìn)行預(yù)處理時(shí),存在部分處理節(jié)點(diǎn)已啟動(dòng),其它節(jié)點(diǎn)未啟動(dòng)的狀態(tài),將未啟動(dòng)的處理節(jié)點(diǎn)暫停,將已啟動(dòng)的處理節(jié)點(diǎn)回滾到未處理狀態(tài),在確認(rèn)所有處理節(jié)點(diǎn)完成更新后,再同時(shí)啟動(dòng)所有處理節(jié)點(diǎn)進(jìn)行預(yù)處理操作。
11.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述執(zhí)行模塊集合包括:初始化子模塊,用于完成執(zhí)行模塊執(zhí)行環(huán)境的初始化、模塊接口檢查、模塊加載和卸載、執(zhí)行的操作。
12.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述執(zhí)行模塊集合包括:內(nèi)存管理子模塊,用于按照配置分配內(nèi)存,并將待處理的數(shù)據(jù)保存在內(nèi)存中,將內(nèi)存指針作為參數(shù)傳遞給執(zhí)行模塊,在所述內(nèi)存中的預(yù)處理中間結(jié)果被調(diào)用后,釋放內(nèi)存; 所述執(zhí)行模塊,用于完成既定處理邏輯,并將預(yù)處理中間結(jié)果保存在從執(zhí)行模塊集合申請(qǐng)的內(nèi)存中。
全文摘要
本發(fā)明公開(kāi)了一種分布式預(yù)處理的方法及系統(tǒng),其中,該方法包括處理節(jié)點(diǎn)接收自源節(jié)點(diǎn)發(fā)送的數(shù)據(jù);管理模塊根據(jù)處理節(jié)點(diǎn)的不同需求配置執(zhí)行模塊的種類(lèi)和執(zhí)行順序;處理節(jié)點(diǎn)調(diào)用自身部署的由管理模塊配置的包含有多個(gè)執(zhí)行模塊的執(zhí)行模塊集合對(duì)接收的數(shù)據(jù)進(jìn)行預(yù)處理操作。本發(fā)明的分布式預(yù)處理方法和系統(tǒng),可以動(dòng)態(tài)、靈活地管理Process節(jié)點(diǎn)的預(yù)處理過(guò)程,管理執(zhí)行模塊集合,保證Process節(jié)點(diǎn)預(yù)處理過(guò)程的一致性和原子性;系統(tǒng)保證了Process節(jié)點(diǎn)的多個(gè)執(zhí)行模塊的預(yù)處理中間結(jié)果都在內(nèi)存中處理,不需要臨時(shí)存儲(chǔ),提高了預(yù)處理性能。
文檔編號(hào)H04L29/08GK103188306SQ20111045562
公開(kāi)日2013年7月3日 申請(qǐng)日期2011年12月30日 優(yōu)先權(quán)日2011年12月30日
發(fā)明者錢(qián)嶺, 高丹, 齊驥, 郭磊濤, 周大 申請(qǐng)人:中國(guó)移動(dòng)通信集團(tuán)公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1