專利名稱:數(shù)據(jù)采集系統(tǒng)和方法
技術(shù)領(lǐng)域:
本申請涉及數(shù)據(jù)采集系統(tǒng)和方法。
背景技術(shù):
隨著計(jì)算機(jī)硬件和互聯(lián)網(wǎng)的飛速發(fā)展,個(gè)人和企業(yè)產(chǎn)生的數(shù)據(jù)一直持續(xù)增長。例如FTP文檔服務(wù)器、數(shù)據(jù)庫服務(wù)器等的數(shù)據(jù)存儲服務(wù)器所存儲的數(shù)據(jù)量越來越龐大。數(shù)據(jù)采集是指從數(shù)據(jù)存儲服務(wù)器獲取數(shù)據(jù),例如,從FTP文檔服務(wù)器中獲取文檔或者從數(shù)據(jù)庫服務(wù)器中獲取數(shù)據(jù),并將所獲取的數(shù)據(jù)存放至預(yù)定位置以便建立索引提供給用戶進(jìn)行搜索。針對FTP文檔服務(wù)器,可將FTP文檔服務(wù)器中存儲的每個(gè)文檔的FTP完整地址看成一個(gè)網(wǎng)頁地址,通過網(wǎng)頁解析索引的系統(tǒng)進(jìn)行數(shù)據(jù)采集。而對于數(shù)據(jù)庫服務(wù)器,可預(yù)先將需要采集的表格詳細(xì)信息和查詢語句寫入一配置文件中,而后根據(jù)制定好的配置文件進(jìn)行定點(diǎn)米集。通過網(wǎng)頁的數(shù)據(jù)采集需要通過分析已采集的網(wǎng)頁來收集下一步待采集的網(wǎng)址。但是,F(xiàn)TP文檔服務(wù)器中的所有文檔的地址是可以事先通過FTP列表命令獲取得到的,而通過網(wǎng)頁的數(shù)據(jù)采集,沒有利用到這一特點(diǎn)。因此當(dāng)需要采集海量文檔時(shí),采集的效率非常低; 即便可利用分布式的網(wǎng)頁采集系統(tǒng),但也不能充分發(fā)揮分布式采集的能力。而在針對每個(gè)表格編寫不同配置文件的數(shù)據(jù)庫服務(wù)器的數(shù)據(jù)采集方案中,需要事先對所有待采集的數(shù)據(jù)庫表格分別寫好配置文件,人工工作量較大,自動化程度不高,從而導(dǎo)致采集效率較低;此外使用配置文件的方法,只能做到單機(jī)的數(shù)據(jù)采集,難以利用分布式并行采集。
發(fā)明內(nèi)容
本申請的目的是提供一種至少能夠部分改善上述現(xiàn)有技術(shù)中的缺陷的數(shù)據(jù)采集系統(tǒng)和方法。根據(jù)本申請的第一方面,提供了一種數(shù)據(jù)采集系統(tǒng),包括多個(gè)調(diào)度服務(wù)器和多個(gè)采集服務(wù)器,其中,調(diào)度服務(wù)器包括生成單元,生成采集任務(wù);以及發(fā)送單元,將所述采集任務(wù)發(fā)送給所述多個(gè)采集服務(wù)器中當(dāng)前處于待接收狀態(tài)的一個(gè)采集服務(wù)器,采集服務(wù)器包括拆分單元,將接收到的采集任務(wù)拆分為多個(gè)子任務(wù);以及子任務(wù)發(fā)送單元,將所述多個(gè)子任務(wù)發(fā)送給所述多個(gè)調(diào)度服務(wù)器中當(dāng)前處于待接收狀態(tài)的一個(gè)或多個(gè)調(diào)度服務(wù)器,其中,所述調(diào)度服務(wù)器的發(fā)送單元進(jìn)一步將所述調(diào)度服務(wù)器接收到的子任務(wù)發(fā)送給所述多個(gè)采集服務(wù)器中當(dāng)前處于待接收狀態(tài)的采集服務(wù)器,采集服務(wù)器進(jìn)一步包括執(zhí)行單元,根據(jù)所接收的子任務(wù),執(zhí)行數(shù)據(jù)采集。根據(jù)本申請的另一方面,提供了一種數(shù)據(jù)采集方法,包括多個(gè)調(diào)度服務(wù)器的其中之一生成采集任務(wù),將所述采集任務(wù)發(fā)送給多個(gè)采集服務(wù)器;所述多個(gè)采集服務(wù)器中當(dāng)前處于待接收狀態(tài)的一個(gè)采集服務(wù)器接收所述采集任務(wù),將所述采集任務(wù)拆分為多個(gè)子任務(wù),并將所述多個(gè)子任務(wù)發(fā)送給所述多個(gè)調(diào)度服務(wù)器;所述多個(gè)調(diào)度服務(wù)器中當(dāng)前處于待接收狀態(tài)的一個(gè)或多個(gè)調(diào)度服務(wù)器接收所述多個(gè)子任務(wù),并將所述多個(gè)子任務(wù)發(fā)送給所述多個(gè)采集服務(wù)器;以及多個(gè)采集服務(wù)器中當(dāng)前處于待接收狀態(tài)的一個(gè)或多個(gè)采集服務(wù)器接收所述多個(gè)子任務(wù),并根據(jù)所接收的每個(gè)子任務(wù),執(zhí)行數(shù)據(jù)采集。通過本申請的數(shù)據(jù)采集系統(tǒng)和方法,可提高數(shù)據(jù)采集的效率,并能夠利用分布式并行處理能力,實(shí)現(xiàn)針對海量數(shù)據(jù)的數(shù)據(jù)采集。
圖1是根據(jù)本申請一個(gè)實(shí)施方案的數(shù)據(jù)采集系統(tǒng)的框圖;圖2是示出根據(jù)本申請實(shí)施方案的數(shù)據(jù)采集系統(tǒng)中采集服務(wù)器的拆分單元結(jié)構(gòu)的框圖;圖3是根據(jù)本申請一個(gè)實(shí)施方案的數(shù)據(jù)采集方法的流程圖;以及圖4是根據(jù)本申請另一實(shí)施方案的數(shù)據(jù)采集方法的流程圖。
具體實(shí)施例方式下面參照附圖,對本申請的實(shí)施方案進(jìn)行詳細(xì)說明。如圖1所示,根據(jù)本申請一個(gè)實(shí)施方案的數(shù)據(jù)采集系統(tǒng)11可包括多個(gè)調(diào)度服務(wù)器 110和多個(gè)采集服務(wù)器120,以對數(shù)據(jù)存儲服務(wù)器130中存儲的數(shù)據(jù)執(zhí)行數(shù)據(jù)采集任務(wù)。雖然在圖1的系統(tǒng)中顯示了兩個(gè)調(diào)度服務(wù)器Iio和四個(gè)采集服務(wù)器120,但是可以理解,調(diào)度服務(wù)器和采集服務(wù)器的數(shù)量可不限于兩個(gè)和四個(gè),也可以是其他數(shù)目。每個(gè)調(diào)度服務(wù)器110可包括生成單元112和發(fā)送單元114(圖1中為了簡要,僅示出了其中一個(gè)調(diào)度服務(wù)器110包括生成單元112和發(fā)送單元114),生成單元112可根據(jù)用戶提供的待采集數(shù)據(jù)存儲服務(wù)器130的信息,生成采集任務(wù)。以待采集的數(shù)據(jù)存儲服務(wù)器 130是FTP文檔服務(wù)器或數(shù)據(jù)庫服務(wù)器為例,采集任務(wù)可以包括例如FTP文檔服務(wù)器或數(shù)據(jù)庫服務(wù)器的地址、用戶名、密碼等的信息。在生成了采集任務(wù)后,可通過發(fā)送單元114將所生成的采集任務(wù)發(fā)送給多個(gè)采集服務(wù)器120中當(dāng)前處于待接收狀態(tài)的一個(gè)采集服務(wù)器。在本申請中,某個(gè)采集服務(wù)器或調(diào)度服務(wù)器處于待接收狀態(tài)指的是,該采集服務(wù)器或調(diào)度服務(wù)器處于空閑(Idle)狀態(tài),或者該采集服務(wù)器或調(diào)度服務(wù)器雖然處于非空閑狀態(tài),但是其系統(tǒng)資源還未被完全利用,即其處理能力還未飽和,能夠進(jìn)一步接收數(shù)據(jù)和進(jìn)行數(shù)據(jù)處理。多個(gè)采集服務(wù)器120中的每一個(gè)可包括拆分單元122和子任務(wù)發(fā)送單元124(圖1 中為了簡要,僅示出了其中一個(gè)采集服務(wù)器120包括拆分單元122和子任務(wù)發(fā)送單元124), 拆分單元122用于將接收自調(diào)度服務(wù)器110的采集任務(wù)進(jìn)行拆分,以形成多個(gè)子任務(wù)。在拆分形成多個(gè)子任務(wù)之后,采集服務(wù)器120并不直接執(zhí)行各個(gè)子任務(wù)所對應(yīng)的采集任務(wù),而是通過子任務(wù)發(fā)送單元IM將所形成的多個(gè)子任務(wù)發(fā)送給多個(gè)調(diào)度服務(wù)器 110中當(dāng)前處于待接收狀態(tài)的一個(gè)或多個(gè)調(diào)度服務(wù)器,由調(diào)度服務(wù)器110針對多個(gè)子任務(wù)進(jìn)行調(diào)度操作。具體而言,接收到子任務(wù)的調(diào)度服務(wù)器110可將所接收的子任務(wù)通過發(fā)送單元114發(fā)送,以使得多個(gè)采集服務(wù)器中當(dāng)前處于待接收狀態(tài)的一個(gè)或多個(gè)采集服務(wù)器能夠接收子任務(wù)。各個(gè)采集服務(wù)器120可進(jìn)一步包括用以根據(jù)所接收的子任務(wù)執(zhí)行具體的數(shù)據(jù)采集任務(wù)的執(zhí)行單元126(類似地,圖1中為了簡要,僅示出了其中一個(gè)采集服務(wù)器120包括執(zhí)行單元126)。執(zhí)行單元1 可將采集獲得的數(shù)據(jù)存放至HDFS (Hadoop Distributed File System,Hadoop分布式文件系統(tǒng))中,以供后續(xù)使用,例如,建立索引提供給用戶進(jìn)行搜索。在參照圖1描述的數(shù)據(jù)采集系統(tǒng)中,一方面,多個(gè)采集服務(wù)器中處于待接收狀態(tài)的采集服務(wù)器能夠執(zhí)行拆分采集任務(wù)的操作或者根據(jù)子任務(wù)執(zhí)行數(shù)據(jù)采集操作;另一方面,可由處于待接收狀態(tài)的調(diào)度服務(wù)器接收子任務(wù)并進(jìn)行調(diào)度操作。因此,根據(jù)本申請?jiān)搶?shí)施方案的數(shù)據(jù)采集系統(tǒng)可充分利用分布式并行處理的多個(gè)調(diào)度服務(wù)器和多個(gè)采集服務(wù)器各自的處理能力,提高數(shù)據(jù)采集的效率,實(shí)現(xiàn)針對海量數(shù)據(jù)的數(shù)據(jù)采集??梢岳斫?,在調(diào)度服務(wù)器110的發(fā)送單元114發(fā)送采集任務(wù)或子任務(wù)過程中,為了使多個(gè)采集服務(wù)器中處于待接收狀態(tài)的采集服務(wù)器能夠接收該采集任務(wù)或子任務(wù),調(diào)度服務(wù)器110的發(fā)送單元114可依次向各個(gè)采集服務(wù)器發(fā)送采集任務(wù)或子任務(wù),根據(jù)某個(gè)特定采集服務(wù)器返回的確認(rèn)消息,確定是否繼續(xù)將采集任務(wù)或子任務(wù)發(fā)送給其他采集服務(wù)器。 例如,若某個(gè)采集服務(wù)器處于無法接收采集任務(wù)或子任務(wù)的滿負(fù)荷狀態(tài),則返回?zé)o法接收的消息,這時(shí),調(diào)度服務(wù)器110的發(fā)送單元114繼續(xù)向下一個(gè)采集服務(wù)器發(fā)送采集任務(wù)或子任務(wù)。若某個(gè)采集服務(wù)器處于能夠接收采集任務(wù)或子任務(wù)的待接收狀態(tài),則該采集服務(wù)器在接收采集任務(wù)或子任務(wù)之后,返回確認(rèn)接收的消息,并進(jìn)行相應(yīng)處理。這時(shí),調(diào)度服務(wù)器 110的發(fā)送單元114不再繼續(xù)向采集服務(wù)器發(fā)送采集任務(wù)或子任務(wù)。以上描述的采集任務(wù)或子任務(wù)發(fā)送過程僅是一個(gè)示例,本領(lǐng)域技術(shù)人員也可采用其他方式進(jìn)行發(fā)送。例如,可由調(diào)度服務(wù)器110的發(fā)送單元114同時(shí)向所有采集服務(wù)器發(fā)送采集任務(wù)或子任務(wù),各采集服務(wù)器在接收采集任務(wù)或子任務(wù)之后均返回確認(rèn)消息,調(diào)度服務(wù)器110再根據(jù)所收到的確認(rèn)消息選擇一個(gè)采集服務(wù)器執(zhí)行后續(xù)處理??梢岳斫猓诓杉?wù)器的子任務(wù)發(fā)送單元發(fā)送子任務(wù)的過程中,為了使多個(gè)調(diào)度服務(wù)器中處于待接收狀態(tài)的調(diào)度服務(wù)器能夠接收該子任務(wù),也可采用上述方式。根據(jù)本申請的一個(gè)具體實(shí)施方案,可通過消息隊(duì)列在多個(gè)調(diào)度服務(wù)器和多個(gè)采集服務(wù)器之間進(jìn)行數(shù)據(jù)傳遞。首先,簡單介紹計(jì)算機(jī)領(lǐng)域中的“消息”和“消息隊(duì)列”的概念?!跋ⅰ笔窃趦膳_計(jì)算機(jī)間傳送的數(shù)據(jù)單位。消息可以非常簡單,例如只包含文本字符串;也可以較為復(fù)雜,可包含嵌入對象?!跋㈥?duì)列”是在消息的傳輸過程中保存消息的容器。消息隊(duì)列管理器在將消息從它的源中繼到它的目標(biāo)時(shí)充當(dāng)中間人。隊(duì)列的主要目的是提供路由并保證消息的傳遞; 如果發(fā)送消息時(shí)接收者不可用,消息隊(duì)列會保留消息,直到可以成功地傳遞它。利用消息隊(duì)列,可以將任務(wù)數(shù)據(jù)分發(fā)到其他機(jī)器上,達(dá)到多機(jī)分布式的執(zhí)行功能。多個(gè)調(diào)度服務(wù)器110和多個(gè)采集服務(wù)器120之間可通過消息隊(duì)列進(jìn)行數(shù)據(jù)的傳遞。多個(gè)調(diào)度服務(wù)器110可通過第一消息隊(duì)列向多個(gè)采集服務(wù)器120發(fā)送消息,而多個(gè)采集服務(wù)器120可通過第二消息隊(duì)列向多個(gè)調(diào)度服務(wù)器110發(fā)送消息。當(dāng)多個(gè)調(diào)度服務(wù)器 110通過第一消息隊(duì)列發(fā)送消息時(shí),若某個(gè)采集服務(wù)器處于可以接收消息的待接收狀態(tài)時(shí), 則可發(fā)出查詢消息,以接收第一消息隊(duì)列中排位第一的消息(即,最先進(jìn)入該消息隊(duì)列的消息)。在成功接收了第一消息隊(duì)列中的消息之后,采集服務(wù)器120可向調(diào)度服務(wù)器發(fā)出確認(rèn)消息,這時(shí),第一消息隊(duì)列中已被成功接收的消息可從該消息隊(duì)列中移除,而之前排位第二的消息可成為該消息隊(duì)列中排位第一的消息。類似地,多個(gè)采集服務(wù)器120通過第二消息隊(duì)列發(fā)送消息時(shí),也可由多個(gè)調(diào)度服務(wù)器中當(dāng)前處于待接收狀態(tài)的一個(gè)或多個(gè)調(diào)度服務(wù)器接收第二消息隊(duì)列中的各個(gè)消息??梢岳斫?,第一消息隊(duì)列和第二消息隊(duì)列可由調(diào)度服務(wù)器來維護(hù)。在通過消息隊(duì)列傳遞數(shù)據(jù)的具體實(shí)施方案中,調(diào)度服務(wù)器110的生成單元可對用戶提供的待采集數(shù)據(jù)存儲服務(wù)器130的信息進(jìn)行封裝,從而生成采集任務(wù)消息。采集任務(wù)消息可由發(fā)送單元114通過第一消息隊(duì)列發(fā)送給多個(gè)采集服務(wù)器,從而處于待接收狀態(tài)的采集服務(wù)器可接收該采集任務(wù)消息。采集服務(wù)器120的拆分單元122在將采集任務(wù)消息拆分而形成多個(gè)子任務(wù)消息之后,經(jīng)由子任務(wù)發(fā)送單元IM通過第二消息隊(duì)列將子任務(wù)消息發(fā)送給多個(gè)調(diào)度服務(wù)器110, 而接收到子任務(wù)消息的調(diào)度服務(wù)器可將所接收的子任務(wù)消息經(jīng)由該調(diào)度服務(wù)器的發(fā)送單元114,通過第二消息隊(duì)列發(fā)送給多個(gè)采集服務(wù)器120,以使得多個(gè)采集服務(wù)器120中當(dāng)前處于待接收狀態(tài)的一個(gè)或多個(gè)采集服務(wù)器能夠接收子任務(wù)消息。接下來參照圖2,詳細(xì)描述采集服務(wù)器120的拆分單元122的結(jié)構(gòu)和功能。如上所述,采集任務(wù)是調(diào)度服務(wù)器110的生成單元112根據(jù)用戶提供的待采集數(shù)據(jù)存儲服務(wù)器130的信息而生成的,而待采集數(shù)據(jù)存儲服務(wù)器的信息通常是對該數(shù)據(jù)存儲服務(wù)器進(jìn)行訪問所必需的信息,例如,數(shù)據(jù)存儲服務(wù)器地址、用戶名、密碼等。采集服務(wù)器 120的拆分單元122可將接收到的采集任務(wù)拆分為多個(gè)子任務(wù)。如圖2所示,拆分單元122可包括解析模塊122a,獲取模塊122b和處理模塊 122c。其中,解析模塊12 可對采集任務(wù)進(jìn)行解析,獲取其中的待采集數(shù)據(jù)存儲服務(wù)器的信息。同樣以待采集的數(shù)據(jù)存儲服務(wù)器130是FTP文檔服務(wù)器或數(shù)據(jù)庫服務(wù)器為例,解析模塊12 可獲取例如FTP文檔服務(wù)器或數(shù)據(jù)庫服務(wù)器的地址、用戶名、密碼等的訪問FTP 文檔服務(wù)器或數(shù)據(jù)庫服務(wù)器所必需的信息。接下來,獲取模塊122b可根據(jù)解析模塊12 得到的數(shù)據(jù)存儲服務(wù)器的信息,對該數(shù)據(jù)存儲服務(wù)器進(jìn)行訪問,并獲取待采集數(shù)據(jù)的相關(guān)信息。下面分別以FTP文檔服務(wù)器和數(shù)據(jù)庫服務(wù)器為例來說明待采集數(shù)據(jù)相關(guān)信息的獲取過程。對于FTP文檔服務(wù)器,獲取模塊122b可通過調(diào)用FTP的LIST列表命令,獲得當(dāng)前目錄下所有文件和子目錄的相關(guān)信息,包括修改時(shí)間,大小,名字等等。通過遞歸循環(huán)調(diào)用 LIST命令,獲取模塊122b可獲得該FTP文檔服務(wù)器所有的文件列表及其信息。對于數(shù)據(jù)庫服務(wù)器,獲取模塊122b可通過JDBC的調(diào)用,獲得數(shù)據(jù)庫的元數(shù)據(jù)信息,例如表格名等。針對不同類型的數(shù)據(jù)庫,獲取模塊122b可分別調(diào)用不同的SQL查詢語句,通過查詢系統(tǒng)表獲得當(dāng)前連接用戶的用戶表格信息、各個(gè)表格的字段等信息。在獲得待采集數(shù)據(jù)相關(guān)信息后,處理模塊122c可根據(jù)拆分規(guī)則,將采集任務(wù)拆分為多個(gè)子任務(wù)??梢岳斫猓刹杉蝿?wù)拆分獲得的多個(gè)子任務(wù)中的每一個(gè)可以與適于由一個(gè)采集服務(wù)器執(zhí)行的數(shù)據(jù)采集操作相對應(yīng)。例如,可以將拆分規(guī)則設(shè)置為,使得將采集任務(wù)拆分形成的每個(gè)子任務(wù)對應(yīng)于對預(yù)定大小的數(shù)據(jù)進(jìn)行采集,換言之,每一個(gè)子任務(wù)所對應(yīng)的待采集數(shù)據(jù)量為預(yù)定大小。下面仍以FTP文檔服務(wù)器和數(shù)據(jù)庫服務(wù)器為例進(jìn)行說明。對于FTP文檔服務(wù)器,拆分規(guī)則可設(shè)置為使得子任務(wù)所對應(yīng)的待采集文件為預(yù)定大小,例如50MB。當(dāng)然,該大小也可根據(jù)具體情況進(jìn)行調(diào)整。具體而言,處理模塊122c可根據(jù)文件列表從第一個(gè)文件開始循環(huán),對各個(gè)文件的大小進(jìn)行累加計(jì)算,當(dāng)累加結(jié)果超過拆分規(guī)則所限制的大小時(shí),即生成一份采集子任務(wù),然后繼續(xù)對剩余文件進(jìn)行累加計(jì)算,到達(dá)拆分規(guī)則限制時(shí)就再生成子任務(wù),該過程不斷重復(fù)直到處理完列表中的所有文件為止。對于數(shù)據(jù)庫服務(wù)器,拆分規(guī)則可以是使得子任務(wù)所對應(yīng)的待采集數(shù)據(jù)量為預(yù)定大小,類似地,該大小可根據(jù)具體情況進(jìn)行調(diào)整,作為一個(gè)具體示例,可設(shè)置為100MB。處理模塊122c可首先獲得數(shù)據(jù)表各字段類型和最大存儲容量,然后選出需要采集的字段類型(比如CHAR,VARCHAR等文本字段類型),從而獲得一行記錄中需要采集字段能存放的字節(jié)數(shù)A。 之后,處理模塊122c可將預(yù)定大小(例如100MB)除以該字節(jié)數(shù)A,從而得到每次采集的記錄條數(shù)。由于之前處理模塊122c已經(jīng)可獲得一個(gè)數(shù)據(jù)表格的總記錄條數(shù),此時(shí)便根據(jù)每個(gè)子采集任務(wù)的記錄條數(shù)對數(shù)據(jù)表進(jìn)行拆分,分為若干個(gè)子采集任務(wù),直到拆分完所有記錄條數(shù)為止。以上描述具體示例是將拆分規(guī)則設(shè)置為使得子任務(wù)所對應(yīng)的待采集數(shù)據(jù)量為預(yù)定大小,但是可以理解,拆分規(guī)則可不限于此。例如,在分布式數(shù)據(jù)存儲環(huán)境下,具有一個(gè)邏輯地址的數(shù)據(jù)存儲服務(wù)器可對應(yīng)于多個(gè)物理地址的實(shí)際存儲服務(wù)器。這種情況下,處理模塊122c也可以按照物理地址來對采集任務(wù)進(jìn)行拆分,以使得每個(gè)采集服務(wù)器僅對同一物理地址的存儲服務(wù)器執(zhí)行數(shù)據(jù)采集操作。下面參照圖3,詳細(xì)描述根據(jù)本申請一個(gè)實(shí)施方案的數(shù)據(jù)采集方法。如圖3所示,在步驟S302,多個(gè)調(diào)度服務(wù)器的其中之一生成采集任務(wù),并將所生成的采集任務(wù)發(fā)送給多個(gè)采集服務(wù)器。類似地,所生成的采集任務(wù)可以包括例如FTP文檔服務(wù)器或數(shù)據(jù)庫服務(wù)器的地址、用戶名、密碼等的信息。在步驟S304,多個(gè)采集服務(wù)器中當(dāng)前處于待接收狀態(tài)的一個(gè)采集服務(wù)器可接收采集任務(wù),將接收到的采集任務(wù)拆分為多個(gè)子任務(wù),并將拆分形成的多個(gè)子任務(wù)發(fā)送回多個(gè)調(diào)度服務(wù)器進(jìn)行調(diào)度。之后,在步驟S306,多個(gè)調(diào)度服務(wù)器中當(dāng)前處于待接收狀態(tài)的一個(gè)或多個(gè)調(diào)度服務(wù)器可接收多個(gè)子任務(wù),然后將所接收的子任務(wù)發(fā)送給所述多個(gè)采集服務(wù)器。然后,在步驟S308,多個(gè)采集服務(wù)器中當(dāng)前處于待接收狀態(tài)的一個(gè)或多個(gè)采集服務(wù)器可接收子任務(wù),并根據(jù)所接收的每個(gè)子任務(wù),執(zhí)行具體的數(shù)據(jù)采集操作??刹捎弥皩D1的數(shù)據(jù)采集系統(tǒng)中詳細(xì)描述的方式,在調(diào)度服務(wù)器發(fā)送采集任務(wù)或子任務(wù)時(shí),實(shí)現(xiàn)多個(gè)采集服務(wù)器中處于待接收狀態(tài)的采集服務(wù)器能夠接收該采集任務(wù)或子任務(wù),以及在采集服務(wù)器的發(fā)送子任務(wù)時(shí),實(shí)現(xiàn)多個(gè)調(diào)度服務(wù)器中處于待接收狀態(tài)的調(diào)度服務(wù)器能夠接收該子任務(wù),此處不再贅述。根據(jù)一個(gè)具體實(shí)施方案,多個(gè)調(diào)度服務(wù)器與多個(gè)采集服務(wù)器之間可通過消息隊(duì)列的方式進(jìn)行數(shù)據(jù)傳遞。調(diào)度服務(wù)器可通過第一消息隊(duì)列向多個(gè)采集服務(wù)器發(fā)送采集任務(wù)和子任務(wù),而采集服務(wù)器可通過第二消息隊(duì)列向多個(gè)調(diào)度服務(wù)器發(fā)送子任務(wù)。通過消息隊(duì)列發(fā)送采集任務(wù)和子任務(wù)的過程已在上文詳細(xì)描述,此處不再贅述。圖4描述了根據(jù)本申請一個(gè)具體實(shí)施方案的數(shù)據(jù)采集方法,其中,圖4所示的步驟 S402與圖3所示的步驟S302類似,由多個(gè)調(diào)度服務(wù)器的其中之一生成采集任務(wù),并將所生成的采集任務(wù)發(fā)送給多個(gè)采集服務(wù)器。之后,在步驟S404,多個(gè)采集服務(wù)器中當(dāng)前處于待接收狀態(tài)的一個(gè)采集服務(wù)器可接收采集任務(wù),解析該采集任務(wù)以得到待采集數(shù)據(jù)存儲服務(wù)器的信息。然后,采集服務(wù)器可在步驟S406,根據(jù)所得到的待采集數(shù)據(jù)存儲服務(wù)器的信息,訪問待采集數(shù)據(jù)存儲服務(wù)器,以獲取待采集數(shù)據(jù)相關(guān)信息,隨后在步驟S408,根據(jù)獲取的待采集數(shù)據(jù)相關(guān)信息,將采集任務(wù)拆分為多個(gè)子任務(wù),并將多個(gè)子任務(wù)發(fā)送給多個(gè)調(diào)度服務(wù)器。在數(shù)據(jù)存儲服務(wù)器是FTP文檔服務(wù)器或數(shù)據(jù)庫服務(wù)器時(shí)待采集數(shù)據(jù)相關(guān)信息的獲取過程已在上文詳細(xì)描述,這里為了簡要不再描述。如圖4所示的步驟S410和S412與圖3所示的步驟S306和S308類似,即,所述多個(gè)調(diào)度服務(wù)器中當(dāng)前處于待接收狀態(tài)的一個(gè)或多個(gè)調(diào)度服務(wù)器接收多個(gè)子任務(wù),并將子任務(wù)發(fā)送給多個(gè)采集服務(wù)器,由多個(gè)采集服務(wù)器中當(dāng)前處于待接收狀態(tài)的一個(gè)或多個(gè)采集服務(wù)器接收子任務(wù),并根據(jù)所接收的每個(gè)子任務(wù),執(zhí)行數(shù)據(jù)采集??梢岳斫?,在圖3所示的步驟S304和圖4所示的步驟S408中,由采集任務(wù)拆分形成的多個(gè)子任務(wù)中的每一個(gè)對應(yīng)于對具有預(yù)定大小的數(shù)據(jù)量的待采集數(shù)據(jù)進(jìn)行采集。具體而言,若待采集數(shù)據(jù)存儲服務(wù)器是FTP文檔服務(wù)器,則待采集數(shù)據(jù)相關(guān)信息可包括該FTP文檔服務(wù)器中的文件列表和各文件的大?。蝗舸杉瘮?shù)據(jù)存儲服務(wù)器是數(shù)據(jù)庫服務(wù)器,則待采集數(shù)據(jù)相關(guān)信息可包括該數(shù)據(jù)庫服務(wù)器中數(shù)據(jù)表各字段類型和最大存儲容量。同樣,針對FTP文檔服務(wù)器和數(shù)據(jù)庫服務(wù)器的詳細(xì)拆分過程已在上文詳細(xì)描述,此處不再贅述。以上參照附圖對本申請的示例性的實(shí)施方案進(jìn)行了描述。本領(lǐng)域技術(shù)人員應(yīng)該理解,上述實(shí)施方案僅僅是為了說明的目的而所舉的示例,而不是用來進(jìn)行限制。凡在本申請的教導(dǎo)和權(quán)利要求保護(hù)范圍下所作的任何修改、等同替換等,均應(yīng)包含在本申請要求保護(hù)的范圍內(nèi)。
權(quán)利要求
1.一種數(shù)據(jù)采集系統(tǒng),包括多個(gè)調(diào)度服務(wù)器和多個(gè)采集服務(wù)器,其中,調(diào)度服務(wù)器包括生成單元,生成采集任務(wù);以及發(fā)送單元,將所述采集任務(wù)發(fā)送給所述多個(gè)采集服務(wù)器中當(dāng)前處于待接收狀態(tài)的一個(gè)采集服務(wù)器,采集服務(wù)器包括拆分單元,將接收到的采集任務(wù)拆分為多個(gè)子任務(wù);以及子任務(wù)發(fā)送單元,將所述多個(gè)子任務(wù)發(fā)送給所述多個(gè)調(diào)度服務(wù)器中當(dāng)前處于待接收狀態(tài)的一個(gè)或多個(gè)調(diào)度服務(wù)器,其中,所述調(diào)度服務(wù)器的發(fā)送單元進(jìn)一步將所述調(diào)度服務(wù)器接收到的子任務(wù)發(fā)送給所述多個(gè)采集服務(wù)器中當(dāng)前處于待接收狀態(tài)的采集服務(wù)器,采集服務(wù)器進(jìn)一步包括執(zhí)行單元,根據(jù)所接收的子任務(wù),執(zhí)行數(shù)據(jù)采集。
2.如權(quán)利要求1所述的系統(tǒng),其中,所述調(diào)度服務(wù)器的發(fā)送單元通過第一消息隊(duì)列向所述多個(gè)采集服務(wù)器發(fā)送采集任務(wù)和子任務(wù),所述采集服務(wù)器的子任務(wù)發(fā)送單元通過第二消息隊(duì)列向所述多個(gè)調(diào)度服務(wù)器發(fā)送子任務(wù)。
3.如權(quán)利要求1所述的系統(tǒng),其中,所述拆分單元包括解析模塊,解析接收到的采集任務(wù)以得到待采集數(shù)據(jù)存儲服務(wù)器的信息; 獲取模塊,根據(jù)所述待采集數(shù)據(jù)存儲服務(wù)器的信息,訪問所述待采集數(shù)據(jù)存儲服務(wù)器, 以獲取待采集數(shù)據(jù)相關(guān)信息;以及處理模塊,根據(jù)所述待采集數(shù)據(jù)相關(guān)信息,將所述接收到的采集任務(wù)拆分為多個(gè)子任務(wù)。
4.如權(quán)利要求3所述的系統(tǒng),其中,所述接收到的采集任務(wù)被所述處理模塊拆分而形成的多個(gè)子任務(wù)中的每一個(gè)所對應(yīng)的待采集數(shù)據(jù)量為預(yù)定大小。
5.如權(quán)利要求4所述的系統(tǒng),其中,所述待采集數(shù)據(jù)存儲服務(wù)器是FTP文檔服務(wù)器,所述待采集數(shù)據(jù)相關(guān)信息包括所述FTP文檔服務(wù)器的文件列表和各文件的大小。
6.如權(quán)利要求4所述的系統(tǒng),其中,所述待采集數(shù)據(jù)存儲服務(wù)器是數(shù)據(jù)庫服務(wù)器,所述待采集數(shù)據(jù)相關(guān)信息包括所述數(shù)據(jù)庫服務(wù)器中數(shù)據(jù)表各字段類型和最大存儲容量。
7.一種數(shù)據(jù)采集方法,包括多個(gè)調(diào)度服務(wù)器的其中之一生成采集任務(wù),將所述采集任務(wù)發(fā)送給多個(gè)采集服務(wù)器; 所述多個(gè)采集服務(wù)器中當(dāng)前處于待接收狀態(tài)的一個(gè)采集服務(wù)器接收所述采集任務(wù),將所述采集任務(wù)拆分為多個(gè)子任務(wù),并將所述多個(gè)子任務(wù)發(fā)送給所述多個(gè)調(diào)度服務(wù)器;所述多個(gè)調(diào)度服務(wù)器中當(dāng)前處于待接收狀態(tài)的一個(gè)或多個(gè)調(diào)度服務(wù)器接收所述多個(gè)子任務(wù),并將所述多個(gè)子任務(wù)發(fā)送給所述多個(gè)采集服務(wù)器;以及多個(gè)采集服務(wù)器中當(dāng)前處于待接收狀態(tài)的一個(gè)或多個(gè)采集服務(wù)器接收所述多個(gè)子任務(wù),并根據(jù)所接收的每個(gè)子任務(wù),執(zhí)行數(shù)據(jù)采集。
8.如權(quán)利要求7所述的方法,其中,所述調(diào)度服務(wù)器通過第一消息隊(duì)列向所述多個(gè)采集服務(wù)器發(fā)送采集任務(wù)和子任務(wù),所述采集服務(wù)器通過第二消息隊(duì)列向所述多個(gè)調(diào)度服務(wù)器發(fā)送子任務(wù)。
9.如權(quán)利要求6所述的方法,采集服務(wù)器將采集任務(wù)拆分為多個(gè)子任務(wù)的步驟包括 解析所述采集任務(wù)以得到待采集數(shù)據(jù)存儲服務(wù)器的信息;根據(jù)所述待采集數(shù)據(jù)存儲服務(wù)器的信息,訪問所述待采集數(shù)據(jù)存儲服務(wù)器,以獲取待采集數(shù)據(jù)相關(guān)信息;以及根據(jù)所述待采集數(shù)據(jù)相關(guān)信息,將所述采集任務(wù)拆分為多個(gè)子任務(wù)。
10.如權(quán)利要求9所述的方法,其中,由所述采集任務(wù)拆分形成的多個(gè)子任務(wù)中的每一個(gè)所對應(yīng)的待采集數(shù)據(jù)量為預(yù)定大小。
11.如權(quán)利要求10所述的方法,其中,所述待采集數(shù)據(jù)存儲服務(wù)器是FTP文檔服務(wù)器, 所述待采集數(shù)據(jù)相關(guān)信息包括所述FTP文檔服務(wù)器中的文件列表和各文件的大小。
12.如權(quán)利要求10所述的方法,其中,所述待采集數(shù)據(jù)存儲服務(wù)器是數(shù)據(jù)庫服務(wù)器,所述待采集數(shù)據(jù)相關(guān)信息包括所述數(shù)據(jù)庫服務(wù)器中數(shù)據(jù)表各字段類型和最大存儲容量。
全文摘要
本發(fā)明提供了數(shù)據(jù)采集系統(tǒng)和方法。數(shù)據(jù)采集系統(tǒng)可包括多個(gè)調(diào)度服務(wù)器和多個(gè)采集服務(wù)器。調(diào)度服務(wù)器可包括生成單元,生成采集任務(wù);發(fā)送單元,將采集任務(wù)發(fā)送給多個(gè)采集服務(wù)器中當(dāng)前處于待接收狀態(tài)的采集服務(wù)器。采集服務(wù)器可包括拆分單元,將接收到的采集任務(wù)拆分為多個(gè)子任務(wù);子任務(wù)發(fā)送單元,將多個(gè)子任務(wù)發(fā)送給多個(gè)調(diào)度服務(wù)器中當(dāng)前處于待接收狀態(tài)的調(diào)度服務(wù)器。調(diào)度服務(wù)器接收到的子任務(wù)可由調(diào)度服務(wù)器的發(fā)送單元發(fā)送給多個(gè)采集服務(wù)器中當(dāng)前處于待接收狀態(tài)的采集服務(wù)器。采集服務(wù)器可進(jìn)一步包括執(zhí)行單元,根據(jù)所接收的子任務(wù),執(zhí)行數(shù)據(jù)采集。通過本發(fā)明,可提高數(shù)據(jù)采集的效率,并能夠利用分布式并行處理能力,實(shí)現(xiàn)針對海量數(shù)據(jù)的數(shù)據(jù)采集。
文檔編號G06F17/30GK102375837SQ20101025738
公開日2012年3月14日 申請日期2010年8月19日 優(yōu)先權(quán)日2010年8月19日
發(fā)明者任猛, 余曉陽, 孫少陵, 廖衛(wèi)國, 張新訪, 李成華, 羅治國, 胡珉, 黃曉慶 申請人:中國移動通信集團(tuán)公司