本發明專利技術公開了一種數據處理方法和裝置,所述裝置包括:分組模塊,配置為對輸入的數據進行分組,其中,所述數據的組數根據處理該數據的結點數確定;處理模塊,配置為依次為每個結點分配一組待處理的數據,并利用各結點對各自對應的數據進行并行的連續id化處理,其中,所述連續id化處理是指將數據中的關鍵字替換為0-N的整數;存儲模塊,配置為存儲經連續id化處理后的數據;其中,所述處理模塊還配置為:對于任意一個結點,計算本結點起始id編號;根據本結點起始id編號對本結點數據進行id化。采用本發明專利技術能夠實現數據并行id化處理,節省存儲時間。
【技術實現步驟摘要】
一種數據處理方法及裝置
本專利技術涉及網絡應用領域,具體涉及一種數據處理方法以及數據處理裝置。
技術介紹
在大規模并行計算中,輸入的數據通常是一系列的關鍵字‐值(key‐value)對。經過一系列的計算后,輸出每個key對應的新的value。為了方便尋址,并且節省存儲空間,可以對輸入數據進行連續的id化,即將每個key‐value對中的key替換為0‐N的整數。在輸入數據較多時,為每個數據(例如每個key‐value對中的key)id化就會占用大量的時間,進而會降低數據的存儲速度。
技術實現思路
鑒于上述問題,提出了本專利技術以便提供一種克服上述問題或者至少部分地解決上述問題的數據處理裝置和相應的數據處理方法。依據本專利技術的一個方面,提供了一種數據處理方法,包括:對輸入的數據進行分組,其中,所述數據的組數根據處理該數據的結點數確定;依次為每個結點分配一組待處理的數據,并利用各結點對各自對應的數據進行并行的連續id化處理,其中,所述連續id化處理是指將數據中的關鍵字替換為0‐N的整數;存儲經連續id化處理后的數據;所述利用各結點對各自對應的組數據進行并行的連續id化處理包括:對于任意一個節點,計算本結點起始id編號;根據本節點起始id編號對本結點數據進行id化。可選地,采用如下公式對本結點數據進行id化:其中,rank為當前結點的編號,且rank>0,Ni為結點i的數目。可選地,rank=0時,StartID=0。可選地,所述利用各結點對各自對應的組數據進行并行的連續id化處理,包括:對于任意一個結點,在本結點內部設置多個工作線程,并將本結點處理的數據依次分配到每個工作線程上;利用每個工作線程對各自對應的數據進行連續id化處理。可選地,所述利用每個工作線程對各自對應的數據進行連續id化處理,包括:對于任意一個工作線程,判斷當前處理的數據是否是自身所處理的最后一條數據;若是,則結束并退出處理流程;若否,則為當前數據賦予id,并觸發下一條數據的處理。可選地,所述觸發下一條數據的處理,包括:利用原子遞增atomic_inc,對下一條數據進行連續id化處理。可選地,所述輸入的數據為key‐value對。可選地,所述方法采用MPI模型對數據進行并行的連續id化處理。依據本專利技術的另一個方面,提供了一種數據處理裝置,包括:分組模塊,配置為對輸入的數據進行分組,其中,所述數據的組數根據處理該數據的結點數確定;處理模塊,配置為依次為每個結點分配一組待處理的數據,并利用各結點對各自對應的數據進行并行的連續id化處理,其中,所述連續id化處理是指將數據中的關鍵字替換為0‐N的整數;存儲模塊,配置為存儲經連續id化處理后的數據;其中,所述處理模塊還配置為:對于任意一個節點,計算本結點起始id編號;根據本節點起始id編號對本結點數據進行id化。可選地,所述處理模塊采用如下公式對本結點數據進行id化:其中,rank為當前結點的編號,且rank>0,Ni為結點i的數目。可選地,rank=0時,StartID=0。可選地,所述處理模塊還配置為:對于任意一個結點,在本結點內部設置多個工作線程,并將本結點處理的數據依次分配到每個工作線程上;利用每個工作線程對各自對應的數據進行連續id化處理。可選地,所述處理模塊還配置為:對于任意一個工作線程,判斷當前處理的數據是否是自身所處理的最后一條數據;若是,則結束并退出處理流程;若否,則為當前數據賦予id,并觸發下一條數據的處理。可選地,所述處理模塊還配置為:利用原子遞增atomic_inc,對下一條數據進行連續id化處理。可選地,所述輸入的數據為key‐value對。可選地,所述裝置采用MPI模型對數據進行并行的連續id化處理。在本專利技術實施例中,將輸入的數據根據處理該數據的結點數進行分組,然后,多個結點并行同步對各種被分配的數據進行連續id化處理。由此可見,本專利技術實施例中,數據并不是在一個隊列中依次進行處理的,而是在多個隊列中并行處理的,其處理速度相對現有技術中的id化處理有大幅度的提升。并行處理的結點數越多,該數據被處理結束的速度就越快。這樣,經較短時間就能把所有數據id化,然后實現經連續id化處理后的數據的存儲。采用本專利技術實施例能夠縮短數據存儲的時間,尤其是對于大規模數據的存儲,能夠起到節省時間提高存儲速率的作用,滿足大規模數據存儲的時間性要求,節省系統資源。上述說明僅是本專利技術技術方案的概述,為了能夠更清楚了解本專利技術的技術手段,而可依照說明書的內容予以實施,并且為了讓本專利技術的上述和其它目的、特征和優點能夠更明顯易懂,以下特舉本專利技術的具體實施方式。附圖說明通過閱讀下文優選實施方式的詳細描述,各種其他的優點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優選實施方式的目的,而并不認為是對本專利技術的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:圖1示出了根據本專利技術一個實施例的數據處理方法的處理流程圖;圖2示出了根據本專利技術一個實施例的結點進行連續id化處理的流程示意圖;圖3示出了根據本專利技術一個實施例的結點并行處理的流程圖;圖4示出了根據本專利技術一個實施例的工作線程的數據處理流程圖;以及圖5示出了根據本專利技術一個實施例的數據處理裝置的結構示意圖。具體實施方式在此提供的算法和顯示不與任何特定計算機、虛擬系統或者其它設備固有相關。各種通用系統也可以與基于在此的示教一起使用。根據上面的描述,構造這類系統所要求的結構是顯而易見的。此外,本專利技術也不針對任何特定編程語言。應當明白,可以利用各種編程語言實現在此描述的本專利技術的內容,并且上面對特定語言所做的描述是為了披露本專利技術的最佳實施方式。為解決上述技術問題中的至少一個,本專利技術實施例提供了一種數據處理方法。圖1示出了根據本專利技術一個實施例的數據處理方法的處理流程圖。參見圖1,該數據處理方法包括步驟S102至步驟S106。各步驟具體如下。步驟S102、對輸入的數據進行分組,其中,數據的組數根據處理該數據的結點數確定。步驟S104、依次為每個結點分配一組待處理的數據,并利用各結點對各自對應的數據進行并行的連續id化處理,其中,連續id化處理是指將數據中的關鍵字替換為0‐N的整數。步驟S106、存儲經連續id化處理后的數據。在本專利技術實施例中,將輸入的數據根據處理該數據的結點數進行分組,然后,多個結點并行同步對各種被分配的數據進行連續id化處理。由此可見,本專利技術實施例中,數據并不是在一個隊列中依次進行處理的,而是在多個隊列中并行處理的,其處理速度相對現有技術中的id化處理有大幅度的提升。并行處理的結點數越多,該數據被處理結束的速度就越快。這樣,經較短時間就能把所有數據id化,然后實現經連續id化處理后的數據的存儲。采用本專利技術實施例能夠縮短數據存儲的時間,尤其是對于大規模數據的存儲,能夠起到節省時間提高存儲速率的作用,滿足大規模數據存儲的時間性要求,節省系統資源。其中,步驟S104中提及會利用各結點對各自對應的組數據進行并行的連續id化處理。具體的,對于任意一個結點,首先要計算本結點起始id編號,然后根據本結點起始id編號對本結點數據進行id化。例如,對于結點A,該結點的起始id編號為5,該結點需要處理的數據一共有3個需要進行id化處理,則后續本文檔來自技高網...

【技術保護點】
一種數據處理方法,包括:對輸入的數據進行分組,其中,所述數據的組數根據處理該數據的結點數確定;依次為每個結點分配一組待處理的數據,并利用各結點對各自對應的數據進行并行的連續id化處理,其中,所述連續id化處理是指將數據中的關鍵字替換為0?N的整數;存儲經連續id化處理后的數據;其中,所述利用各結點對各自對應的組數據進行并行的連續id化處理,包括:對于任意一個結點,計算本結點起始id編號;根據本結點起始id編號對本結點數據進行id化。
【技術特征摘要】
1.一種數據處理方法,包括:對輸入的數據進行分組,所述輸入的數據為key-value對,其中,所述數據的組數根據處理該數據的結點數確定;依次為每個結點分配一組待處理的數據,并利用各結點對各自對應的數據進行并行的連續id化處理,其中,所述連續id化處理是指將數據中的關鍵字替換為0-N的整數,替換后的所有數據的關鍵字是連續的;存儲經連續id化處理后的數據;其中,所述利用各結點對各自對應的組數據進行并行的連續id化處理,包括:對于任意一個結點,計算本結點數據的起始id編號;根據本結點數據的起始id編號對本結點數據進行id化。2.根據權利要求1所述的方法,其特征在于,采用如下公式對本結點數據進行id化:其中,所述StartID為本結點數據的起始id編號,rank為當前結點的編號,且0<rank<節點總數,Ni為結點i對應的數據的數目。3.根據權利要求2所述的方法,其特征在于,rank=0時,StartID=0。4.根據權利要求1至3任一項所述的方法,其特征在于,所述利用各結點對各自對應的組數據進行并行的連續id化處理,包括:對于任意一個結點,在本結點內部設置多個工作線程,并將本結點處理的數據依次分配到每個工作線程上;利用每個工作線程對各自對應的數據進行連續id化處理。5.根據權利要求4所述的方法,其特征在于,所述利用每個工作線程對各自對應的數據進行連續id化處理,包括:對于任意一個工作線程,判斷當前處理的數據是否是自身所處理的最后一條數據;若是,則結束并退出處理流程;若否,則為當前數據賦予id,并觸發下一條數據的處理。6.根據權利要求5所述的方法,其特征在于,所述觸發下一條數據的處理,包括:利用原子遞增atomic_inc,對下一條數據進行連續id化處理。7.根據權利要求1至3任一項所述的方法,其特征在于,所述方法采用MPI模型對數...
【專利技術屬性】
技術研發人員:齊路,何銳邦,唐會軍,
申請(專利權)人:北京奇虎科技有限公司,奇智軟件北京有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。