專利名稱:一種數據處理方法及裝置的制作方法
技術領域:
本發(fā)明涉及網絡應用領域,具體涉及ー種數據處理方法以及數據處理裝置。
背景技術:
在大規(guī)模并行計算中,輸入的數據通常是ー系列的關鍵字-值(key-value )對。經過ー系列的計算后,輸出每個key對應的新的value。為了方便尋址,并且節(jié)省存儲空間,可以對輸入數據進行連續(xù)的id化,即將每個key-value對中的key替換為0_N的整數。在輸入數據較多時,為姆個數據(例如姆個key-value對中的key) id化就會占用大量的時間,進而會降低數據的存儲速度。
發(fā)明內容
鑒于上述問題,提出了本發(fā)明以便提供ー種克服上述問題或者至少部分地解決上述問題的數據處理裝置和相應的數據處理方法。依據本發(fā)明的ー個方面,提供了ー種數據處理方法,包括對輸入的數據進行分組,其中,所述數據的組數根據處理該數據的結點數確定;依次為每個結點分配ー組待處理的數據,并利用各結點對各自對應的數據進行并行的連續(xù)id化處理,其中,所述連續(xù)id化處理是指將數據中的關鍵字替換為O-N的整數;存儲經連續(xù)id化處理后的數據;所述利用各結點對各自對應的組數據進行并行的連續(xù)id化處理包括對于任意ー個節(jié)點,計算本結點起始id編號;根據本節(jié)點起始id編號對本結點數據進行id化??蛇x地,采用如下公式對本結點數據進行id化
rank-1StartiD= Ni其中,rank為當前結點的編號,且rank>0,Ni為結點i的數目。
押3可選地,rank=0時,StartID=O。可選地,所述利用各結點對各自對應的組數據進行并行的連續(xù)id化處理,包括對于任意ー個結點,在本結點內部設置多個工作線程,并將本結點處理的數據依次分配到每個工作線程上;利用每個工作線程對各自對應的數據進行連續(xù)id化處理??蛇x地,所述利用每個工作線程對各自對應的數據進行連續(xù)id化處理,包括對于任意ー個工作線程,判斷當前處理的數據是否是自身所處理的最后一條數據;若是,則結束并退出處理流程;若否,則為當前數據賦予id,并觸發(fā)下一條數據的處理。可選地,所述觸發(fā)下一條數據的處理,包括利用原子遞增atomic_inc,對下一條數據進行連續(xù)id化處理??蛇x地,所述輸入的數據為key-value對??蛇x地,所述方法采用MPI模型對數據進行并行的連續(xù)id化處理。依據本發(fā)明的另一個方面,提供了一種數據處理裝置,包括分組模塊,配置為對輸入的數據進行分組,其中,所述數據的組數根據處理該數據的結點數確定;處理模塊,配置為依次為每 個結點分配一組待處理的數據,并利用各結點對各自對應的數據進行并行的連續(xù)id化處理,其中,所述連續(xù)id化處理是指將數據中的關鍵字替換為O-N的整數;存儲模塊,配置為存儲經連續(xù)id化處理后的數據;其中,所述處理模塊還配置為對于任意一個節(jié)點,計算本結點起始id編號;根據本節(jié)點起始id編號對本結點數據進行id化??蛇x地,所述處理模塊采用如下公式對本結點數據進行id化
rank-1StartID = Y Ni其中,rank為當前結點的編號,且rank>0,Ni為結點i的數目。
,=O,可選地,rank=0時,StartID=O??蛇x地,所述處理模塊還配置為對于任意一個結點,在本結點內部設置多個工作線程,并將本結點處理的數據依次分配到每個工作線程上;利用每個工作線程對各自對應的數據進行連續(xù)id化處理。 可選地,所述處理模塊還配置為對于任意一個工作線程,判斷當前處理的數據是否是自身所處理的最后一條數據;若是,則結束并退出處理流程;若否,則為當前數據賦予id,并觸發(fā)下一條數據的處理??蛇x地,所述處理模塊還配置為利用原子遞增atomicjnc,對下一條數據進行連續(xù)id化處理??蛇x地,所述輸入的數據為key-value對??蛇x地,所述裝置采用MPI模型對數據進行并行的連續(xù)id化處理。在本發(fā)明實施例中,將輸入的數據根據處理該數據的結點數進行分組,然后,多個結點并行同步對各種被分配的數據進行連續(xù)id化處理。由此可見,本發(fā)明實施例中,數據并不是在一個隊列中依次進行處理的,而是在多個隊列中并行處理的,其處理速度相對現(xiàn)有技術中的id化處理有大幅度的提升。并行處理的結點數越多,該數據被處理結束的速度就越快。這樣,經較短時間就能把所有數據id化,然后實現(xiàn)經連續(xù)id化處理后的數據的存儲。采用本發(fā)明實施例能夠縮短數據存儲的時間,尤其是對于大規(guī)模數據的存儲,能夠起到節(jié)省時間提高存儲速率的作用,滿足大規(guī)模數據存儲的時間性要求,節(jié)省系統(tǒng)資源。上述說明僅是本發(fā)明技術方案的概述,為了能夠更清楚了解本發(fā)明的技術手段,而可依照說明書的內容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式
。
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中圖1示出了根據本發(fā)明一個實施例的數據處理方法的處理流程圖;圖2示出了根據本發(fā)明一個實施例的結點進行連續(xù)id化處理的流程示意圖;圖3示出了根據本發(fā)明一個實施例的結點并行處理的流程圖;圖4示出了根據本發(fā)明一個實施例的工作線程的數據處理流程圖;以及圖5示出了根據本發(fā)明一個實施例的數據處理裝置的結構示意圖。
具體實施例方式在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設備固有相關。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據上面的描述,構造這類系統(tǒng)所要求的結構是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應當明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。為解決上述技術問題中的至少一個,本發(fā)明實施例提供了一種數據處理方法。圖1示出了根據本發(fā)明一個實施例的數據處理方法的處理流程圖。參見圖1,該數據處理方法包括步驟S102至步驟S106。各步驟具體如下。步驟S102、對輸入的數據進行分組,其中,數據的組數根據處理該數據的結點數確定。步驟S104、依次為每個結點分配一組待處理的數據,并利用各結點對各自對應的數據進行并行的連續(xù)id化處理,其中,連續(xù)id化處理是指將數據中的關鍵字替換為O-N的整數。步驟S106、存儲經連續(xù)id化處理后的數據。在本發(fā)明實施例中,將輸入的數據根據處理該數據的結點數進行分組,然后,多個結點并行同步對各種被分配的數據進行連續(xù)id化處理。由此可見,本發(fā)明實施例中,數據并不是在一個隊列中依次進行處理的,而是在多個隊列中并行處理的,其處理速度相對現(xiàn)有技術中的id化處理有大幅度的提升。并行處理的結點數越多,該數據被處理結束的速度就越快。這樣,經較短時間就能把所有數據id化,然后實現(xiàn)經連續(xù)id化處理后的數據的存儲。采用本發(fā)明實施例能夠縮短數據存儲的時間,尤其是對于大規(guī)模數據的存儲,能夠起到節(jié)省時間提高存儲速率的作用,滿足大規(guī)模數據存儲的時間性要求,節(jié)省系統(tǒng)資源。其中,步驟S104中提及會利用各結點對各自對應的組數據進行并行的連續(xù)id化處理。具體的,對于任意一個結點,首先要計算本結點起始id編號,然后根據本結點起始id編號對本結點數據進行id化。例如,對于結點A,該結點的起始id編號為5,該結點需要處理的數據一共有3個需要進行id化處理,則后續(xù)兩位數據的id編號應該依次為6、7。
本發(fā)明實施例為了將各數據利用各結點進行并行的連續(xù)id化,可將按某個規(guī)則將具有同一屬性的數據標識集中發(fā)送到某個結點進行處理。也即每個結點,將當前讀取的每個數據元素的數據,根據預置的規(guī)則進行計算,根據計算結果將處理結果發(fā)送給與相對應的計算結點。同時,每個結點也接收其他計算結點發(fā)送到本結點的數據信息。那么最終,每個結點則保存了未發(fā)送出去的數據和其他結點發(fā)送到本結點的數據信息。對于如何進行id化,可以采用大量的id化公式,只要滿足其計算結果為O-N的整數即可。優(yōu)選的,本發(fā)明實施例采用如下公式對本結點數據進行id化
權利要求
1.一種數據處理方法,包括對輸入的數據進行分組,其中,所述數據的組數根據處理該數據的結點數確定;依次為每個結點分配一組待處理的數據,并利用各結點對各自對應的數據進行并行的連續(xù)id化處理,其中,所述連續(xù)id化處理是指將數據中的關鍵字替換為O-N的整數;存儲經連續(xù)id化處理后的數據;其中,所述利用各結點對各自對應的組數據進行并行的連續(xù)id化處理,包括對于任意一個結點,計算本結點起始id編號;根據本結點起始id編號對本結點數據進行id化。
2.根據權利要求1所述的方法,其特征在于,采用如下公式對本結點數據進行id化 其中,rank為當前結點的編號,且rank>0, Ni為結點i的數目。
3.根據權利要求2所述的方法,其特征在于,rank=0時,StartID= O。
4.根據權利要求1至3任一項所述的方法,其特征在于,所述利用各結點對各自對應的組數據進行并行的連續(xù)id化處理,包括對于任意一個結點,在本結點內部設置多個工作線程,并將本結點處理的數據依次分配到每個工作線程上;利用每個工作線程對各自對應的數據進行連續(xù)id化處理。
5.根據權利要求4所述的方法,其特征在于,所述利用每個工作線程對各自對應的數據進行連續(xù)id化處理,包括對于任意一個工作線程,判斷當前處理的數據是否是自身所處理的最后一條數據;若是,則結束并退出處理流程;若否,則為當前數據賦予id,并觸發(fā)下一條數據的處理。
6.根據權利要求5所述的方法,其特征在于,所述觸發(fā)下一條數據的處理,包括利用原子遞增atomic_inc,對下一條數據進行連續(xù)id化處理。
7.根據權利要求1至6任一項所述的方法,其特征在于,所述輸入的數據為key-value對。
8.根據權利要求1至7任一項所述的方法,其特征在于,所述方法采用MPI模型對數據進行并行的連續(xù)id化處理。
9.一種數據處理裝置,包括分組模塊,配置為對輸入的數據進行分組,其中,所述數據的組數根據處理該數據的結點數確定;處理模塊,配置為依次為每個結點分配一組待處理的數據,并利用各結點對各自對應的數據進行并行的連續(xù)id化處理,其中,所述連續(xù)id化處理是指將數據中的關鍵字替換為O-N的整數;存儲模塊,配置為存儲經連續(xù)id化處理后的數據;其中,所述處理模塊還配置為對于任意一個結點,計算本結點起始id編號;根據本結點起始id編號對本結點數據進行id化。
10.根據權利要求9所述的裝置,其特征在于,所述處理模塊采用如下公式對本結點數據進行id化
11.根據權利要求10所述的裝置,其特征在于,rank=0時,StartID= O。
12.根據權利要求9至11任一項所述的裝置,其特征在于,所述處理模塊還配置為對于任意一個結點,在本結點內部設置多個工作線程,并將本結點處理的數據依次分配到每個工作線程上;利用每個工作線程對各自對應的數據進行連續(xù)id化處理。
13.根據權利要求12所述的裝置,其特征在于,所述處理模塊還配置為對于任意一個工作線程,判斷當前處理的數據是否是自身所處理的最后一條數據;若是,則結束并退出處理流程;若否,則為當前數據賦予id,并觸發(fā)下一條數據的處理。
14.根據權利要求13所述的裝置,其特征在于,所述處理模塊還配置為利用原子遞增atomic_inc,對下一條數據進行連續(xù)id化處理。
15.根據權利要求9至14任一項所述的裝置,其特征在于,所述輸入的數據為key-value 對。
16.根據權利要求9至15任一項所述的裝置,其特征在于,所述裝置采用MPI模型對數據進行并行的連續(xù)id化處理。
全文摘要
本發(fā)明公開了一種數據處理方法和裝置,所述裝置包括分組模塊,配置為對輸入的數據進行分組,其中,所述數據的組數根據處理該數據的結點數確定;處理模塊,配置為依次為每個結點分配一組待處理的數據,并利用各結點對各自對應的數據進行并行的連續(xù)id化處理,其中,所述連續(xù)id化處理是指將數據中的關鍵字替換為0-N的整數;存儲模塊,配置為存儲經連續(xù)id化處理后的數據;其中,所述處理模塊還配置為對于任意一個結點,計算本結點起始id編號;根據本結點起始id編號對本結點數據進行id化。采用本發(fā)明能夠實現(xiàn)數據并行id化處理,節(jié)省存儲時間。
文檔編號G06F17/30GK103020203SQ20121051756
公開日2013年4月3日 申請日期2012年12月5日 優(yōu)先權日2012年12月5日
發(fā)明者齊路, 何銳邦, 唐會軍 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司