1.一種分布式數(shù)據(jù)處理方法,包括:
將在同一數(shù)據(jù)集中的出現(xiàn)次數(shù)大于預(yù)設(shè)次數(shù)的鍵對應(yīng)的數(shù)據(jù)確定為傾斜數(shù)據(jù),將包含傾斜數(shù)據(jù)的數(shù)據(jù)集確定為傾斜數(shù)據(jù)集,將未包含傾斜數(shù)據(jù)的數(shù)據(jù)集確定為非傾斜數(shù)據(jù)集;
根據(jù)預(yù)設(shè)的鍵標(biāo)記集合,為所述傾斜數(shù)據(jù)集中的每個(gè)數(shù)據(jù)的原始鍵分別添加一個(gè)鍵標(biāo)記,得到處理后的傾斜數(shù)據(jù)集;其中,所述鍵標(biāo)記集合中包含N個(gè)不同的鍵標(biāo)記,N為自然數(shù);
將所述非傾斜數(shù)據(jù)集中的每個(gè)數(shù)據(jù)復(fù)制為N個(gè),得到擴(kuò)容后的非傾斜數(shù)據(jù)集,根據(jù)所述鍵標(biāo)記集合,為所述擴(kuò)容后的非傾斜數(shù)據(jù)集中的每個(gè)數(shù)據(jù)的原始鍵分別添加一個(gè)鍵標(biāo)記,得到處理后的非傾斜數(shù)據(jù)集;
按照預(yù)設(shè)的數(shù)據(jù)分配規(guī)則,將所述處理后的傾斜數(shù)據(jù)集以及所述處理后的非傾斜數(shù)據(jù)集中的各個(gè)數(shù)據(jù)分配給多臺服務(wù)器進(jìn)行分布式處理。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述處理后的傾斜數(shù)據(jù)集以及所述處理后的非傾斜數(shù)據(jù)集中的各個(gè)數(shù)據(jù)的鍵為該數(shù)據(jù)的原始鍵與該數(shù)據(jù)的鍵標(biāo)記的組合;
則所述按照預(yù)設(shè)的數(shù)據(jù)分配規(guī)則,將所述處理后的傾斜數(shù)據(jù)集以及所述處理后的非傾斜數(shù)據(jù)集中的各個(gè)數(shù)據(jù)分配給多臺服務(wù)器進(jìn)行分布式處理的步驟具體包括:根據(jù)各個(gè)數(shù)據(jù)的鍵,將所述處理后的傾斜數(shù)據(jù)集以及所述處理后的非傾斜數(shù)據(jù)集中的各個(gè)數(shù)據(jù)分配給多臺服務(wù)器進(jìn)行分布式處理。
3.根據(jù)權(quán)利要求1或2所述的方法,其中,所述將所述處理后的傾斜數(shù)據(jù)集以及所述處理后的非傾斜數(shù)據(jù)集中的各個(gè)數(shù)據(jù)分配給多臺服務(wù)器進(jìn)行分布式處理的步驟之后,進(jìn)一步包括:
從處理后的各個(gè)數(shù)據(jù)的鍵中刪除所述鍵標(biāo)記,得到各個(gè)數(shù)據(jù)的原始鍵。
4.根據(jù)權(quán)利要求1-3任一所述的方法,其中,所述為所述傾斜數(shù)據(jù)集中的每個(gè)數(shù)據(jù)的原始值分別添加一個(gè)鍵標(biāo)記的步驟具體包括:
將所述鍵標(biāo)記集合中的各個(gè)鍵標(biāo)記依次添加到所述傾斜數(shù)據(jù)集中的各個(gè)數(shù)據(jù)的原始鍵中;或者,
將所述鍵標(biāo)記集合中的各個(gè)鍵標(biāo)記隨機(jī)添加到所述傾斜數(shù)據(jù)集中的各個(gè)數(shù)據(jù)的原始鍵中。
5.根據(jù)權(quán)利要求1-4任一所述的方法,其中,所述為所述擴(kuò)容后的非傾斜數(shù)據(jù)集中的每個(gè)數(shù)據(jù)的原始鍵分別添加一個(gè)鍵標(biāo)記的步驟具體包括:
將所述鍵標(biāo)記集合中的各個(gè)鍵標(biāo)記依次添加到所述擴(kuò)容后的非傾斜數(shù)據(jù)集中的各個(gè)數(shù)據(jù)的原始鍵中;或者,
將所述鍵標(biāo)記集合中的各個(gè)鍵標(biāo)記隨機(jī)添加到所述擴(kuò)容后的非傾斜數(shù)據(jù)集中的各個(gè)數(shù)據(jù)的原始鍵中。
6.根據(jù)權(quán)利要求1-5任一所述的方法,其中,所述鍵標(biāo)記包括:用于添加在原始鍵的起始位置的前綴型鍵標(biāo)記,和/或,用于添加在原始鍵的末尾位置的后綴型鍵標(biāo)記;
并且,所述鍵標(biāo)記包括以下中的至少一種:單字符類鍵標(biāo)記、字符串類鍵標(biāo)記、以及數(shù)字類鍵標(biāo)記。
7.根據(jù)權(quán)利要求1-6任一所述的方法,其中,當(dāng)所述鍵標(biāo)記為數(shù)字類鍵標(biāo)記時(shí),所述數(shù)據(jù)分配規(guī)則包括:對每個(gè)數(shù)據(jù)的鍵進(jìn)行模運(yùn)算,根據(jù)運(yùn)算結(jié)果為該數(shù)據(jù)分配服務(wù)器;和/或,
當(dāng)所述鍵標(biāo)記為單字符類鍵標(biāo)記和/或字符串類鍵標(biāo)記時(shí),所述數(shù)據(jù)分配規(guī)則包括:根據(jù)各個(gè)數(shù)據(jù)的鍵中包含的相同字符的個(gè)數(shù),對各個(gè)數(shù)據(jù)的鍵進(jìn)行聚類處理,根據(jù)聚類處理的結(jié)果為各個(gè)數(shù)據(jù)分配服務(wù)器。
8.一種分布式數(shù)據(jù)處理裝置,包括:
確定模塊,用于將在同一數(shù)據(jù)集中的出現(xiàn)次數(shù)大于預(yù)設(shè)次數(shù)的鍵對應(yīng)的數(shù)據(jù)確定為傾斜數(shù)據(jù),將包含傾斜數(shù)據(jù)的數(shù)據(jù)集確定為傾斜數(shù)據(jù)集,將未包含傾斜數(shù)據(jù)的數(shù)據(jù)集確定為非傾斜數(shù)據(jù)集;
傾斜數(shù)據(jù)集標(biāo)記模塊,用于根據(jù)預(yù)設(shè)的鍵標(biāo)記集合,為所述傾斜數(shù)據(jù)集中的每個(gè)數(shù)據(jù)的原始鍵分別添加一個(gè)鍵標(biāo)記,得到處理后的傾斜數(shù)據(jù)集;其中,所述鍵標(biāo)記集合中包含N個(gè)不同的鍵標(biāo)記,N為自然數(shù);
非傾斜數(shù)據(jù)集標(biāo)記模塊,用于將所述非傾斜數(shù)據(jù)集中的每個(gè)數(shù)據(jù)復(fù)制為N個(gè),得到擴(kuò)容后的非傾斜數(shù)據(jù)集,根據(jù)所述鍵標(biāo)記集合,為所述擴(kuò)容后的非傾斜數(shù)據(jù)集中的每個(gè)數(shù)據(jù)的原始鍵分別添加一個(gè)鍵標(biāo)記,得到處理后的非傾斜數(shù)據(jù)集;
分配模塊,用于按照預(yù)設(shè)的數(shù)據(jù)分配規(guī)則,將所述處理后的傾斜數(shù)據(jù)集以及所述處理后的非傾斜數(shù)據(jù)集中的各個(gè)數(shù)據(jù)分配給多臺服務(wù)器進(jìn)行分布式處理。
9.根據(jù)權(quán)利要求8所述的裝置,其中,所述處理后的傾斜數(shù)據(jù)集以及所述處理后的非傾斜數(shù)據(jù)集中的各個(gè)數(shù)據(jù)的鍵為該數(shù)據(jù)的原始鍵與該數(shù)據(jù)的鍵標(biāo)記的組合;
則分配模塊具體用于:根據(jù)各個(gè)數(shù)據(jù)的鍵,將所述處理后的傾斜數(shù)據(jù)集以及所述處理后的非傾斜數(shù)據(jù)集中的各個(gè)數(shù)據(jù)分配給多臺服務(wù)器進(jìn)行分布式處理。
10.根據(jù)權(quán)利要求8或9所述的裝置,其中,所述裝置進(jìn)一步包括:
刪除模塊,用于從處理后的各個(gè)數(shù)據(jù)的鍵中刪除所述鍵標(biāo)記,得到各個(gè)數(shù)據(jù)的原始鍵。