本發(fā)明涉及信息技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)采集方法及裝置。
背景技
現(xiàn)有技術(shù)中,當(dāng)采集節(jié)點需要采集數(shù)據(jù)時,向相應(yīng)的服務(wù)器發(fā)起數(shù)據(jù)采集請求,并獲取對應(yīng)的數(shù)據(jù)信息。如果當(dāng)前向服務(wù)器采集數(shù)據(jù)的采集節(jié)點較多,則會造成大量的重復(fù)采集,浪費采集次數(shù)。
技術(shù)實現(xiàn)要素:
本發(fā)明的實施例提供一種數(shù)據(jù)采集方法及裝置,能夠解決重復(fù)采集數(shù)據(jù)的問題。
為達(dá)到上述目的,本發(fā)明的實施例采用如下技術(shù)方案:
第一方面,本發(fā)明的實施例提供一種數(shù)據(jù)采集方法,包括:
對采集任務(wù)進(jìn)行拆分,得到多個分布式采集任務(wù);
將所述多個分布式采集任務(wù)分別發(fā)送至對應(yīng)的采集節(jié)點;
接收各所述采集節(jié)點分別返回的數(shù)據(jù)信息;
根據(jù)各所述數(shù)據(jù)信息,輸出采集結(jié)果。
結(jié)合第一方面,在第一方面的第一種可能的實現(xiàn)方式中,所述數(shù)據(jù)信息包括曾緩存數(shù)據(jù)信息或當(dāng)前采集數(shù)據(jù)信息;其中,所述曾緩存數(shù)據(jù)信息緩存在采集節(jié)點,所述當(dāng)前采集數(shù)據(jù)信息由采集節(jié)點基于所述分布式采集任務(wù)進(jìn)行實時采集。
結(jié)合第一方面,在第一方面的第二種可能的實現(xiàn)方式中,所述方法還包括:
獲取各所述采集節(jié)點的采集速度及采集成功率;
基于所述采集速度及所述采集成功率,調(diào)整分布式采集任務(wù)的數(shù)量及采集節(jié)點的數(shù)量。
結(jié)合第一方面,在第一方面的第三種可能的實現(xiàn)方式中,所述方法還包括:
將所述采集結(jié)果發(fā)送給各所述采集節(jié)點。
第二方面,本發(fā)明的實施例提供一種數(shù)據(jù)采集裝置,包括:
拆分模塊,用于對采集任務(wù)進(jìn)行拆分,得到多個分布式采集任務(wù);
任務(wù)發(fā)送模塊,用于將所述拆分模塊拆分得到的所述多個分布式采集任務(wù)分別發(fā)送至對應(yīng)的采集節(jié)點;
接收模塊,用于接收各所述采集節(jié)點分別返回的數(shù)據(jù)信息;
輸出模塊,用于根據(jù)所述接收模塊接收的各所述數(shù)據(jù)信息,輸出采集結(jié)果。
結(jié)合第二方面,在第二方面的第一種可能的實現(xiàn)方式中,所述接收模塊接收的所述數(shù)據(jù)信息包括曾緩存數(shù)據(jù)信息或當(dāng)前采集數(shù)據(jù)信息;其中,所述曾緩存數(shù)據(jù)信息緩存在采集節(jié)點,所述當(dāng)前采集數(shù)據(jù)信息由采集節(jié)點基于所述分布式采集任務(wù)進(jìn)行實時采集。
結(jié)合第二方面,在第二方面的第二種可能的實現(xiàn)方式中,所述裝置還包括:獲取模塊、調(diào)整模塊;
所述獲取模塊,用于獲取各所述采集節(jié)點的采集速度及采集成功率;
所述調(diào)整模塊,用于基于所述獲取模塊獲取的所述采集速度及所述采集成功率,調(diào)整分布式采集任務(wù)的數(shù)量及采集節(jié)點的數(shù)量。
結(jié)合第二方面,在第二方面的第三種可能的實現(xiàn)方式中,所述裝置還包括:數(shù)據(jù)發(fā)送模塊;
所述數(shù)據(jù)發(fā)送模塊,用于將所述采集結(jié)果發(fā)送給各所述采集節(jié)點。
本發(fā)明實施例提供的數(shù)據(jù)采集方法及裝置,通過首先對采集任務(wù)進(jìn)行拆分,得到多個分布式采集任務(wù),并將所述多個分布式采集任務(wù)分別發(fā)送至對應(yīng)的采集節(jié)點,然后接收各采集節(jié)點分別返回的數(shù)據(jù)信息,最后根據(jù)各所述數(shù)據(jù)信息,輸出采集結(jié)果。能夠在多個采集節(jié)點同時向服務(wù)器采集數(shù)據(jù)時,通過各不同采集節(jié)點分別采集相應(yīng)數(shù)據(jù)片段,并將各數(shù)據(jù)片段進(jìn)行整合后發(fā)送給采集節(jié)點,能夠?qū)崿F(xiàn)發(fā)布式并發(fā)數(shù)據(jù)采集,從而可以避免數(shù)據(jù)的重復(fù)采集,并且可以提高采集速度。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
圖1是本發(fā)明實施例的數(shù)據(jù)采集方法的流程示意圖;
圖2是本發(fā)明實施例的數(shù)據(jù)采集方法的另一流程示意圖;
圖3是本發(fā)明實施例的數(shù)據(jù)采集裝置結(jié)構(gòu)示意圖;
圖4是本發(fā)明實施例的數(shù)據(jù)采集裝置的另一結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明一實施例提供一種數(shù)據(jù)采集方法,如圖1所示,所述方法包括:
101、對采集任務(wù)進(jìn)行拆分,得到多個分布式采集任務(wù)。
其中,分布式采集任務(wù)的數(shù)量可以基于當(dāng)前的采集節(jié)點個數(shù)進(jìn)行實時確定,也可以按照當(dāng)前采集數(shù)據(jù)所占空間的大小進(jìn)行確定。
在本發(fā)明實施例中,可以對采集任務(wù)進(jìn)行數(shù)據(jù)等量拆分,即每個分布式采集任務(wù)對應(yīng)的待采集數(shù)據(jù)大小均相同;也可以按照各采集節(jié)點的采集能力(例如,采集節(jié)點采集數(shù)據(jù)的速度和/或成功率)對采集任務(wù)進(jìn)行拆分,即對于采集速度快且采集成功率高的采集節(jié)點,為其分配的分布式采集任務(wù)對應(yīng)的待采集數(shù)據(jù)越大。
對于本發(fā)明實施例,采集任務(wù)可以針對任何數(shù)據(jù)的采集,例如,采集任務(wù)可以為對網(wǎng)頁數(shù)據(jù)的采集。
102、將多個分布式采集任務(wù)分別發(fā)送至對應(yīng)的采集節(jié)點。
其中,分布式采集任務(wù)攜帶有采集節(jié)點標(biāo)識及待采集數(shù)據(jù)標(biāo)識。
103、接收各采集節(jié)點分別返回的數(shù)據(jù)信息。
其中,采集節(jié)點返回的數(shù)據(jù)信息,可以是采集節(jié)點實時基于分布式采集任務(wù)進(jìn)行數(shù)據(jù)采集得到,也可以是已緩存在采集節(jié)點的數(shù)據(jù)。
104、根據(jù)各所述數(shù)據(jù)信息,輸出采集結(jié)果。
其中,采集結(jié)果包括采集任務(wù)對應(yīng)的數(shù)據(jù)信息。在本發(fā)明實施例中,采集結(jié)果可以由各數(shù)據(jù)信息拼接得到。
與現(xiàn)有技術(shù)相比,本發(fā)明實施例能夠在多個采集節(jié)點同時向服務(wù)器采集數(shù)據(jù)時,通過各不同采集節(jié)點分別采集相應(yīng)數(shù)據(jù)片段,并將各數(shù)據(jù)片段進(jìn)行整合后發(fā)送給采集節(jié)點,能夠?qū)崿F(xiàn)發(fā)布式并發(fā)數(shù)據(jù)采集,從而可以避免數(shù)據(jù)的重復(fù)采集,并且可以提高采集速度。
本發(fā)明又一實施例提供一種數(shù)據(jù)采集方法,如圖2所示,所述方法包括:
201、獲取各采集節(jié)點的采集速度及采集成功率。
202、基于采集速度及采集成功率,調(diào)整分布式采集任務(wù)的數(shù)量及采集節(jié)點的數(shù)量。
例如,對于采集成功率較低的采集節(jié)點,可以將其從采集任務(wù)中刪除,以避免由于部分采集節(jié)點對數(shù)據(jù)采集失敗,而導(dǎo)致采集任務(wù)失敗的情況。在本發(fā)明實施例中,刪除部分成功率較低的采集節(jié)點后,即減少采集任務(wù)的數(shù)量及采集節(jié)點的數(shù)量。
再例如,對于新加入的采集速度較高或采集成功率較高的采集節(jié)點,可以將其加入采集任務(wù),即增加采集任務(wù)的數(shù)量及采集節(jié)點的數(shù)量。
對于本發(fā)明實施例,可以基于采集速度及采集成功率,對分布式采集任務(wù)的數(shù)量及采集節(jié)點的數(shù)量進(jìn)行動態(tài)調(diào)整。在本發(fā)明實施例中,可以按照預(yù)設(shè)時間間隔,動態(tài)調(diào)整分布式采集任務(wù)的數(shù)量及采集節(jié)點的數(shù)量;也可以按照隨機時間間隔,動態(tài)調(diào)整分布式采集任務(wù)的數(shù)量及采集節(jié)點的數(shù)量。
例如,期望采集的數(shù)據(jù)信息總量為itotal,單位為byte;可用的采集節(jié)點數(shù)量為n,各采集節(jié)點的采集速度為vi,(1≤i≤n),單位為byte/s;各采集節(jié)點的采集成功率為pi,(1≤i≤n),用百分比表示。
步驟202可根據(jù)需求的不同,而實施為以下方式:
方式1:要求在給定的時間δt1內(nèi)完成采集任務(wù),且要求所有采集節(jié)點參與數(shù)據(jù)采集。
為完成采集任務(wù),每個采集節(jié)點工作的有效采集時間δt2為:
其中,λ為防止數(shù)據(jù)丟包等意外而設(shè)置的時間放大系數(shù),一般可取1≤λ≤1.2;
第i個采集節(jié)點分配的數(shù)據(jù)采集任務(wù)表示為ii,表示第i個采集節(jié)點所需要采集的數(shù)據(jù)信息量:
δt2也是能夠完成采集任務(wù)的最短時間,因此δt1≥δt2。
上述方式1,可以控制采集任務(wù)的采集時間,且充分利用每個采集節(jié)點,滿足對采集時間的需求。
方式2:要求在給定的時間δt1內(nèi)(單位可為秒)完成采集任務(wù),且只要求采集效率最高的若干個采集節(jié)點完成采集任務(wù)。
為完成采集任務(wù),要求的平均有效數(shù)據(jù)采集速率為:
其中,η為防止數(shù)據(jù)丟包等意外而設(shè)置的數(shù)據(jù)采集速率縮小系數(shù),一般可取0.85≤η≤0.95。
如果某采集節(jié)點的采集速度vi和采集成功率pi滿足
vipi≥ve_ave
則該采集節(jié)點參與數(shù)據(jù)采集任務(wù),否則不參與數(shù)據(jù)采集任務(wù)。
根據(jù)上述判斷準(zhǔn)則,設(shè)共有采集效率最高前m個采集節(jié)點需要參與數(shù)據(jù)采集任務(wù),將其用下標(biāo)j重新編號(1≤j≤m)。
第j個采集節(jié)點分配的數(shù)據(jù)采集任務(wù)為:
上述方式2,可以控制采集任務(wù)的采集時間,且充分利用采集效率高的采集節(jié)點,使得其余采集節(jié)點可執(zhí)行其他數(shù)據(jù)的采集任務(wù)。
203、對采集任務(wù)進(jìn)行拆分,得到多個分布式采集任務(wù)。
其中,分布式采集任務(wù)的數(shù)量可以基于當(dāng)前的采集節(jié)點個數(shù)進(jìn)行實時確定,也可以按照當(dāng)前采集數(shù)據(jù)所占空間的大小進(jìn)行確定。
在本發(fā)明實施例中,可以對采集任務(wù)進(jìn)行數(shù)據(jù)等量拆分,即每個分布式采集任務(wù)對應(yīng)的待采集數(shù)據(jù)大小均相同;也可以按照各采集節(jié)點的采集能力(例如,采集節(jié)點采集數(shù)據(jù)的速度和/或成功率)對采集任務(wù)進(jìn)行拆分,即對于采集速度快且采集成功率高的采集節(jié)點,為其分配的分布式采集任務(wù)對應(yīng)的待采集數(shù)據(jù)越大。
204、將多個分布式采集任務(wù)分別發(fā)送至對應(yīng)的采集節(jié)點。
其中,分布式采集任務(wù)攜帶有采集節(jié)點標(biāo)識及待采集數(shù)據(jù)標(biāo)識。
205、接收各采集節(jié)點分別返回的數(shù)據(jù)信息。
對于本發(fā)明實施例,數(shù)據(jù)信息包括曾緩存數(shù)據(jù)信息或當(dāng)前采集數(shù)據(jù)信息;其中,曾緩存數(shù)據(jù)信息緩存在采集節(jié)點,當(dāng)前采集數(shù)據(jù)信息由采集節(jié)點基于分布式采集任務(wù)進(jìn)行實時采集。
在本發(fā)明實施例中,采集節(jié)點接收到對應(yīng)的分布式采集任務(wù)后,首先基于哈希值判斷數(shù)據(jù)庫中是否緩存有分布式采集任務(wù)對應(yīng)的數(shù)據(jù)信息;如果數(shù)據(jù)庫中緩存有分布式采集任務(wù)對應(yīng)的數(shù)據(jù)信息,則采集節(jié)點可以直接返回曾緩存數(shù)據(jù)信息;或者,如果數(shù)據(jù)庫中未緩存分布式采集任務(wù)對應(yīng)的數(shù)據(jù)信息,則采集節(jié)點基于該分布式采集任務(wù)實時進(jìn)行數(shù)據(jù)采集,得到當(dāng)前采集數(shù)據(jù)信息。
當(dāng)數(shù)據(jù)庫緩存有分布式采集任務(wù)對應(yīng)的數(shù)據(jù)信息時,采集節(jié)點返回曾緩存數(shù)據(jù)信息,由于采集節(jié)點無需再次對數(shù)據(jù)進(jìn)行采集,因此能夠進(jìn)一步提高數(shù)據(jù)采集速度及數(shù)據(jù)采集成功率。
206、根據(jù)各數(shù)據(jù)信息,輸出采集結(jié)果。
其中,采集結(jié)果包括采集任務(wù)對應(yīng)的數(shù)據(jù)信息。在本發(fā)明實施例中,采集結(jié)果可以由各數(shù)據(jù)信息拼接得到。
207、將采集結(jié)果發(fā)送給各采集節(jié)點。
與現(xiàn)有技術(shù)相比,本發(fā)明實施例能夠在多個采集節(jié)點同時向服務(wù)器采集數(shù)據(jù)時,通過各不同采集節(jié)點分別采集相應(yīng)數(shù)據(jù)片段,并將各數(shù)據(jù)片段進(jìn)行整合后發(fā)送給采集節(jié)點,能夠?qū)崿F(xiàn)發(fā)布式并發(fā)數(shù)據(jù)采集,從而可以避免數(shù)據(jù)的重復(fù)采集,并且可以提高采集速度。
本發(fā)明又一實施例提供一種數(shù)據(jù)采集裝置,如圖3所示,所述裝置包括:拆分模塊31、任務(wù)發(fā)送模塊32、接收模塊33、輸出模塊34。
拆分模塊31,用于對采集任務(wù)進(jìn)行拆分,得到多個分布式采集任務(wù)。
任務(wù)發(fā)送模塊32,用于將拆分模塊31拆分得到的多個分布式采集任務(wù)分別發(fā)送至對應(yīng)的采集節(jié)點。
接收模塊33,用于接收各采集節(jié)點分別返回的數(shù)據(jù)信息。
輸出模塊34,用于根據(jù)接收模塊33接收的各數(shù)據(jù)信息,輸出采集結(jié)果。
與現(xiàn)有技術(shù)相比,本發(fā)明實施例能夠在多個采集節(jié)點同時向服務(wù)器采集數(shù)據(jù)時,通過各不同采集節(jié)點分別采集相應(yīng)數(shù)據(jù)片段,并將各數(shù)據(jù)片段進(jìn)行整合后發(fā)送給采集節(jié)點,能夠?qū)崿F(xiàn)發(fā)布式并發(fā)數(shù)據(jù)采集,從而可以避免數(shù)據(jù)的重復(fù)采集,并且可以提高采集速度。
對于本發(fā)明實施例,接收模塊33接收的數(shù)據(jù)信息包括曾緩存數(shù)據(jù)信息或當(dāng)前采集數(shù)據(jù)信息;其中,曾緩存數(shù)據(jù)信息緩存在采集節(jié)點,當(dāng)前采集數(shù)據(jù)信息由采集節(jié)點基于分布式采集任務(wù)進(jìn)行實時采集。
進(jìn)一步的,如圖4所示,所述裝置還可以包括:獲取模塊41、調(diào)整模塊42、數(shù)據(jù)發(fā)送模塊43;
獲取模塊41,用于獲取各所述采集節(jié)點的采集速度及采集成功率。
調(diào)整模塊42,用于基于所述獲取模塊41獲取的所述采集速度及所述采集成功率,調(diào)整分布式采集任務(wù)的數(shù)量及采集節(jié)點的數(shù)量。
數(shù)據(jù)發(fā)送模塊43,用于將所述采集結(jié)果發(fā)送給各所述采集節(jié)點。
與現(xiàn)有技術(shù)相比,本發(fā)明實施例能夠在多個采集節(jié)點同時向服務(wù)器采集數(shù)據(jù)時,通過各不同采集節(jié)點分別采集相應(yīng)數(shù)據(jù)片段,并將各數(shù)據(jù)片段進(jìn)行整合后發(fā)送給采集節(jié)點,能夠?qū)崿F(xiàn)發(fā)布式并發(fā)數(shù)據(jù)采集,從而可以避免數(shù)據(jù)的重復(fù)采集,并且可以提高采集速度。
本發(fā)明實施例提供的數(shù)據(jù)采集裝置可以實現(xiàn)上述提供的數(shù)據(jù)采集方法實施例,具體功能實現(xiàn)請參見方法實施例中的說明,在此不再贅述。本發(fā)明實施例提供的數(shù)據(jù)采集方法及裝置可以適用于對數(shù)據(jù)進(jìn)行采集,但不僅限于此。
本說明書中的各個實施例均采用遞進(jìn)的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于設(shè)備實施例而言,由于其基本相似于方法實施例,所以描述得比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(read-onlymemory,rom)或隨機存儲記憶體(randomaccessmemory,ram)等。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)該以權(quán)利要求的保護范圍為準(zhǔn)。