本申請(qǐng)涉及數(shù)據(jù)庫(kù)領(lǐng)域,并且更具體地,涉及一種比較數(shù)據(jù)表的數(shù)據(jù)的方法和系統(tǒng)。
背景技術(shù):
::對(duì)于大數(shù)據(jù)領(lǐng)域,鍵值(key-value)數(shù)據(jù)庫(kù)是應(yīng)對(duì)大量隨機(jī)寫(xiě)、隨機(jī)讀場(chǎng)景的一種最佳選擇。key-value數(shù)據(jù)庫(kù)中的所有數(shù)據(jù),均以key-value形式存在。key-value形式具有嚴(yán)格定義的結(jié)構(gòu),數(shù)據(jù)庫(kù)中的所有數(shù)據(jù),都以不可改寫(xiě)的文件存在于底層文件系統(tǒng)中。新數(shù)據(jù)的寫(xiě)入,會(huì)生成新的key-value;舊數(shù)據(jù)的改寫(xiě)或者刪除,也會(huì)生成新的key-value來(lái)標(biāo)記該改寫(xiě)或者刪除。另外,大數(shù)據(jù)領(lǐng)域?yàn)榱俗非髷?shù)據(jù)更高的可用性和更好的容災(zāi)性,通常在多數(shù)據(jù)中心方案中采取異地備份數(shù)據(jù)的功能。因此,備份數(shù)據(jù)前、中、后校驗(yàn)數(shù)據(jù)的一致性,成為現(xiàn)在大數(shù)據(jù)存儲(chǔ)領(lǐng)域一項(xiàng)重要的功能特性?,F(xiàn)有的比較工具是基于數(shù)據(jù)的比較工具。當(dāng)使用該比較工具對(duì)兩個(gè)數(shù)據(jù)庫(kù)(工作數(shù)據(jù)庫(kù)和備份數(shù)據(jù)庫(kù))的數(shù)據(jù)表(兩個(gè)數(shù)據(jù)庫(kù)中數(shù)據(jù)表的結(jié)構(gòu)應(yīng)是相同的)進(jìn)行內(nèi)容比較時(shí),該比較工具會(huì)將校驗(yàn)任務(wù)進(jìn)行并行化處理,例如,提交成映射歸約(mapreduce,mr)作業(yè)分配到很多節(jié)點(diǎn)上并行執(zhí)行。該比較工具分別從兩個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)表中讀取數(shù)據(jù),進(jìn)行比較,得到不一致的數(shù)據(jù)?,F(xiàn)有的比較工具對(duì)數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行逐行比較,比較效率低下,比較工具運(yùn)行速度慢。另外,現(xiàn)有的比較技術(shù),需要映射框架在本地跟本地?cái)?shù)據(jù)庫(kù)的集群的多個(gè)服務(wù)器進(jìn)行通信,還可能需要跟遠(yuǎn)端數(shù)據(jù)庫(kù)的集群的服務(wù)器進(jìn)行通信,這會(huì)占用大量的網(wǎng)絡(luò)資源。技術(shù)實(shí)現(xiàn)要素:本申請(qǐng)?zhí)峁┮环N比較數(shù)據(jù)表的數(shù)據(jù)的方法和系統(tǒng),能夠避免大量的數(shù)據(jù)傳輸和比較,運(yùn)行速度快成本低,網(wǎng)絡(luò)資源占用量小。本申請(qǐng)第一方面提供了一種比較數(shù)據(jù)表的數(shù)據(jù)的方法,其特征在于,所述方法應(yīng)用于比較第一數(shù)據(jù)庫(kù)和第二數(shù)據(jù)庫(kù)的目標(biāo)數(shù)據(jù)表的數(shù)據(jù)的系統(tǒng),所述系統(tǒng)包括客戶(hù)端和多個(gè)服務(wù)端,其中,所述第一數(shù)據(jù)庫(kù)對(duì)應(yīng)至少一個(gè)第一服務(wù)端,所述第二數(shù)據(jù)庫(kù)對(duì)應(yīng)至少一個(gè)第二服務(wù)端,所述方法包括:所述客戶(hù)端獲取所述第一數(shù)據(jù)庫(kù)中所述目標(biāo)數(shù)據(jù)表的第一元數(shù)據(jù)和所述第二數(shù)據(jù)庫(kù)中所述目標(biāo)數(shù)據(jù)表的第二元數(shù)據(jù),所述第一元數(shù)據(jù)中包括所述目標(biāo)數(shù)據(jù)表的數(shù)據(jù)在所述第一數(shù)據(jù)庫(kù)的服務(wù)器中所對(duì)應(yīng)的第一范圍,所述第二元數(shù)據(jù)中包括所述目標(biāo)數(shù)據(jù)表的數(shù)據(jù)在所述第二數(shù)據(jù)庫(kù)的服務(wù)器中所對(duì)應(yīng)的第二范圍;所述客戶(hù)端根據(jù)所述第一范圍和所述第二范圍中的至少一個(gè),確定目標(biāo)范圍;所述至少一個(gè)第一服務(wù)端根據(jù)所述目標(biāo)范圍,對(duì)所述第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行簽名得到第一簽名;所述至少一個(gè)第二服務(wù)端根據(jù)所述目標(biāo)范圍,對(duì)所述第二數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行簽名得到第二簽名;所述客戶(hù)端根據(jù)所述第一簽名和所述第二簽名,確定所述第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)與所述第二數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)是否相同。第一方面的比較數(shù)據(jù)表的數(shù)據(jù)的方法,客戶(hù)端根據(jù)數(shù)據(jù)表的數(shù)據(jù)的分布確定目標(biāo)范圍,服務(wù)端根據(jù)目標(biāo)范圍對(duì)數(shù)據(jù)進(jìn)行簽名,客戶(hù)端比較兩個(gè)數(shù)據(jù)庫(kù)中數(shù)據(jù)表的數(shù)據(jù)對(duì)應(yīng)的簽名是否一致即可判斷出這兩個(gè)數(shù)據(jù)表的數(shù)據(jù)是否一致,避免了大量的數(shù)據(jù)傳輸和比較,運(yùn)行速度快成本低,網(wǎng)絡(luò)資源占用量小。在第一方面的一種可能的實(shí)現(xiàn)方式中,所述第一數(shù)據(jù)庫(kù)的每個(gè)服務(wù)器對(duì)應(yīng)一個(gè)第一服務(wù)端,所述第一范圍包括所述目標(biāo)數(shù)據(jù)表的數(shù)據(jù)在所述第一數(shù)據(jù)庫(kù)的每個(gè)服務(wù)器的子范圍,所述第二數(shù)據(jù)庫(kù)的每個(gè)服務(wù)器對(duì)應(yīng)一個(gè)第二服務(wù)端,所述第二范圍包括所述目標(biāo)數(shù)據(jù)表的數(shù)據(jù)在所述第二數(shù)據(jù)庫(kù)的每個(gè)服務(wù)器的子范圍,所述客戶(hù)端根據(jù)所述第一范圍和所述第二范圍中的至少一個(gè),確定目標(biāo)范圍,包括:所述客戶(hù)端根據(jù)所述目標(biāo)數(shù)據(jù)表的數(shù)據(jù)在所述第一數(shù)據(jù)庫(kù)的每個(gè)服務(wù)器的子范圍和所述目標(biāo)數(shù)據(jù)表的數(shù)據(jù)在所述第二數(shù)據(jù)庫(kù)的每個(gè)服務(wù)器的子范圍,確定所述目標(biāo)范圍的子范圍,每個(gè)所述子范圍對(duì)應(yīng)的數(shù)據(jù)在所述第一數(shù)據(jù)庫(kù)中分布在一個(gè)服務(wù)器上,并且在所述第二數(shù)據(jù)庫(kù)中分布在一個(gè)服務(wù)器上。本實(shí)現(xiàn)方式使得后續(xù)在對(duì)數(shù)據(jù)進(jìn)行簽名時(shí),不再需要跨服務(wù)器(跨rs)進(jìn)行數(shù)據(jù)傳輸,可以進(jìn)一步提高運(yùn)行速度,降低網(wǎng)絡(luò)資源的占用量。在第一方面的一種可能的實(shí)現(xiàn)方式中,在所述至少一個(gè)第一服務(wù)端根據(jù)所述目標(biāo)范圍,對(duì)所述第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行簽名得到第一簽名,所述至少一個(gè)第二服務(wù)端根據(jù)所述目標(biāo)范圍,對(duì)所述第二數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行簽名得到第二簽名之前,所述方法還包括:所述客戶(hù)端、所述至少一個(gè)第一服務(wù)端和所述至少一個(gè)第二服務(wù)端中的至少一種為每個(gè)所述子范圍進(jìn)行樹(shù)型分段;所述至少一個(gè)第一服務(wù)端根據(jù)所述目標(biāo)范圍,對(duì)所述第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行簽名得到第一簽名,包括:所述至少一個(gè)第一服務(wù)端根據(jù)所述樹(shù)型分段,對(duì)所述第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)的分段進(jìn)行簽名得到樹(shù)型的所述第一簽名;所述至少一個(gè)第二服務(wù)端根據(jù)所述目標(biāo)范圍,對(duì)所述第二數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行簽名得到第二簽名,包括:所述至少一個(gè)第二服務(wù)端根據(jù)所述樹(shù)型分段,對(duì)所述第二數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)的分段進(jìn)行簽名得到樹(shù)型的所述第二簽名。本實(shí)現(xiàn)方式對(duì)目標(biāo)范圍的子范圍進(jìn)行樹(shù)型分段可以得到更細(xì)化的簽名,能夠提高比較簽名時(shí)的效率。在第一方面的一種可能的實(shí)現(xiàn)方式中,所述客戶(hù)端根據(jù)所述第一簽名和所述第二簽名,確定所述第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)與所述第二數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)是否相同,包括:所述客戶(hù)端根據(jù)樹(shù)型的所述第一簽名和樹(shù)型的所述第二簽名,確定所述第一簽名和所述第二簽名的樹(shù)的相同層的簽名是否一致,當(dāng)簽名不一致時(shí),確定所述層對(duì)應(yīng)的分段在所述第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)與所述第二數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)不同。在第一方面的一種可能的實(shí)現(xiàn)方式中,所述客戶(hù)端、所述至少一個(gè)第一服務(wù)端和所述至少一個(gè)第二服務(wù)端中的至少一種為每個(gè)所述子范圍進(jìn)行樹(shù)型分段,包括:所述至少一個(gè)第一服務(wù)端和所述至少一個(gè)第二服務(wù)端對(duì)所述目標(biāo)范圍中數(shù)據(jù)的密度進(jìn)行統(tǒng)計(jì);所述至少一個(gè)第一服務(wù)端和所述至少一個(gè)第二服務(wù)端根據(jù)統(tǒng)計(jì)的結(jié)果,為每個(gè)所述子范圍進(jìn)行樹(shù)型分段。本實(shí)現(xiàn)方式可以使得各個(gè)服務(wù)器負(fù)載更均衡。在第一方面的一種可能的實(shí)現(xiàn)方式中,所述至少一個(gè)第一服務(wù)端根據(jù)所述目標(biāo)范圍,對(duì)所述第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行簽名得到第一簽名,包括:所述至少一個(gè)第一服務(wù)端根據(jù)所述目標(biāo)范圍,通過(guò)哈希算法對(duì)所述第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行簽名得到第一簽名;所述至少一個(gè)第二服務(wù)端根據(jù)所述目標(biāo)范圍,對(duì)所述第二數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行簽名得到第二簽名,包括:所述至少一個(gè)第二服務(wù)端根據(jù)所述目標(biāo)范圍,通過(guò)哈希算法對(duì)所述第二數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行簽名得到第二簽名。本申請(qǐng)第二方面提供了一種比較數(shù)據(jù)表的數(shù)據(jù)的系統(tǒng),其特征在于,所述系統(tǒng)用于比較第一數(shù)據(jù)庫(kù)和第二數(shù)據(jù)庫(kù)的目標(biāo)數(shù)據(jù)表的數(shù)據(jù),所述系統(tǒng)包括運(yùn)行客戶(hù)端的計(jì)算設(shè)備和運(yùn)行服務(wù)端的多個(gè)服務(wù)器,其中,所述第一數(shù)據(jù)庫(kù)包括運(yùn)行第一服務(wù)端的至少一個(gè)第一服務(wù)器,所述第二數(shù)據(jù)庫(kù)包括運(yùn)行第二服務(wù)端的至少一個(gè)第二服務(wù)器:所述計(jì)算設(shè)備用于獲取所述第一數(shù)據(jù)庫(kù)中所述目標(biāo)數(shù)據(jù)表的第一元數(shù)據(jù)和所述第二數(shù)據(jù)庫(kù)中所述目標(biāo)數(shù)據(jù)表的第二元數(shù)據(jù),所述第一元數(shù)據(jù)中包括所述目標(biāo)數(shù)據(jù)表的數(shù)據(jù)在所述第一數(shù)據(jù)庫(kù)的服務(wù)器中所對(duì)應(yīng)的第一范圍,所述第二元數(shù)據(jù)中包括所述目標(biāo)數(shù)據(jù)表的數(shù)據(jù)在所述第二數(shù)據(jù)庫(kù)的服務(wù)器中所對(duì)應(yīng)的第二范圍;所述計(jì)算設(shè)備還用于根據(jù)所述第一范圍和所述第二范圍中的至少一個(gè),確定目標(biāo)范圍;所述至少一個(gè)第一服務(wù)器用于根據(jù)所述目標(biāo)范圍,對(duì)所述第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行簽名得到第一簽名;所述至少一個(gè)第二服務(wù)器用于根據(jù)所述目標(biāo)范圍,對(duì)所述第二數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行簽名得到第二簽名;所述計(jì)算設(shè)備還用于根據(jù)所述第一簽名和所述第二簽名,確定所述第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)與所述第二數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)是否相同。在第二方面的一種可能的實(shí)現(xiàn)方式中,所述第一數(shù)據(jù)庫(kù)中用于存儲(chǔ)所述目標(biāo)數(shù)據(jù)表的每個(gè)服務(wù)器均為運(yùn)行所述第一服務(wù)端的所述第一服務(wù)器,所述第一范圍包括所述目標(biāo)數(shù)據(jù)表的數(shù)據(jù)在所述第一數(shù)據(jù)庫(kù)的每個(gè)所述第一服務(wù)器的子范圍,所述第二數(shù)據(jù)庫(kù)中用于存儲(chǔ)所述目標(biāo)數(shù)據(jù)表的每個(gè)服務(wù)器均為運(yùn)行所述第二服務(wù)端的所述第二服務(wù)器,所述第二范圍包括所述目標(biāo)數(shù)據(jù)表的數(shù)據(jù)在所述第二數(shù)據(jù)庫(kù)的每個(gè)所述第二服務(wù)器的子范圍,所述計(jì)算設(shè)備具體用于:根據(jù)所述目標(biāo)數(shù)據(jù)表的數(shù)據(jù)在所述第一數(shù)據(jù)庫(kù)的每個(gè)所述第一服務(wù)器的子范圍和所述目標(biāo)數(shù)據(jù)表的數(shù)據(jù)在所述第二數(shù)據(jù)庫(kù)的每個(gè)所述第二服務(wù)器的子范圍,確定所述目標(biāo)范圍的子范圍,每個(gè)所述子范圍對(duì)應(yīng)的數(shù)據(jù)在所述第一數(shù)據(jù)庫(kù)中分布在一個(gè)服務(wù)器上,并且在所述第二數(shù)據(jù)庫(kù)中分布在一個(gè)服務(wù)器上。在第二方面的一種可能的實(shí)現(xiàn)方式中,在所述第一服務(wù)器根據(jù)所述目標(biāo)范圍,對(duì)所述第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行簽名得到第一簽名,所述第二服務(wù)器根據(jù)所述目標(biāo)范圍,對(duì)所述第二數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行簽名得到第二簽名之前,所述計(jì)算設(shè)備、所述至少一個(gè)第一服務(wù)器和所述至少一個(gè)第二服務(wù)器中的至少一種用于為每個(gè)所述子范圍進(jìn)行樹(shù)型分段;所述至少一個(gè)第一服務(wù)器具體用于:根據(jù)所述樹(shù)型分段,對(duì)所述第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)的分段進(jìn)行簽名得到樹(shù)型的所述第一簽名;所述至少一個(gè)第二服務(wù)器具體用于:根據(jù)所述樹(shù)型分段,對(duì)所述第二數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)的分段進(jìn)行簽名得到樹(shù)型的所述第二簽名。在第二方面的一種可能的實(shí)現(xiàn)方式中,所述計(jì)算設(shè)備具體用于:根據(jù)樹(shù)型的所述第一簽名和樹(shù)型的所述第二簽名,確定所述第一簽名和所述第二簽名的樹(shù)的相同層的簽名是否一致,當(dāng)簽名不一致時(shí),確定所述層對(duì)應(yīng)的分段在所述第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)與所述第二數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)不同。在第二方面的一種可能的實(shí)現(xiàn)方式中,所述至少一個(gè)第一服務(wù)器和所述至少一個(gè)第二服務(wù)器用于對(duì)所述目標(biāo)范圍中數(shù)據(jù)的密度進(jìn)行統(tǒng)計(jì);所述至少一個(gè)第一服務(wù)器和所述至少一個(gè)第二服務(wù)器用于根據(jù)統(tǒng)計(jì)的結(jié)果,為每個(gè)所述子范圍進(jìn)行樹(shù)型分段。在第二方面的一種可能的實(shí)現(xiàn)方式中,所述至少一個(gè)第一服務(wù)器具體用于:根據(jù)所述目標(biāo)范圍,通過(guò)哈希算法對(duì)所述第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行簽名得到第一簽名;所述至少一個(gè)第二服務(wù)器具體用于:根據(jù)所述目標(biāo)范圍,通過(guò)哈希算法對(duì)所述第二數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行簽名得到第二簽名。本申請(qǐng)第三方面提供了一種存儲(chǔ)介質(zhì),該存儲(chǔ)介質(zhì)中存儲(chǔ)了程序,該程序被計(jì)算設(shè)備和服務(wù)器運(yùn)行時(shí),該計(jì)算設(shè)備和服務(wù)器執(zhí)行前述第一方面或第一方面的任一實(shí)現(xiàn)方式提供的比較數(shù)據(jù)表的數(shù)據(jù)的方法。該存儲(chǔ)介質(zhì)包括但不限于只讀存儲(chǔ)器,隨機(jī)訪(fǎng)問(wèn)存儲(chǔ)器,快閃存儲(chǔ)器、hdd或ssd。本申請(qǐng)第四方面提供了一種計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品包括程序指令,當(dāng)該計(jì)算機(jī)程序產(chǎn)品被計(jì)算設(shè)備和服務(wù)器執(zhí)行時(shí),該計(jì)算設(shè)備和服務(wù)器執(zhí)行前述第一方面或第一方面的任一實(shí)現(xiàn)方式提供的比較數(shù)據(jù)表的數(shù)據(jù)的方法。該計(jì)算機(jī)程序產(chǎn)品可以為一個(gè)軟件安裝包,在需要使用前述第一方面或第一方面的任一實(shí)現(xiàn)方式提供的比較數(shù)據(jù)表的數(shù)據(jù)的方法的情況下,可以下載該計(jì)算機(jī)程序產(chǎn)品并在計(jì)算設(shè)備和服務(wù)器上執(zhí)行該計(jì)算機(jī)程序產(chǎn)品。附圖說(shuō)明圖1是一種采用比較工具來(lái)比較數(shù)據(jù)表的數(shù)據(jù)的方法的示意圖。圖2是本發(fā)明一個(gè)實(shí)施例的比較數(shù)據(jù)表的數(shù)據(jù)的系統(tǒng)的示意性框圖。圖3是本發(fā)明另一個(gè)實(shí)施例的比較數(shù)據(jù)表的數(shù)據(jù)的系統(tǒng)的示意性框圖。圖4是本發(fā)明一個(gè)實(shí)施例的比較數(shù)據(jù)表的數(shù)據(jù)的方法的示意性流程圖。圖5是本發(fā)明一個(gè)實(shí)施例的切分目標(biāo)范圍的示意圖。圖6是本發(fā)明另一個(gè)實(shí)施例的切分目標(biāo)范圍的示意圖。圖7是本發(fā)明另一個(gè)實(shí)施例的切分目標(biāo)范圍的示意圖。圖8是本發(fā)明另一個(gè)實(shí)施例的切分目標(biāo)范圍的示意圖。圖9是本發(fā)明另一個(gè)實(shí)施例的切分目標(biāo)范圍的示意圖。圖10是本發(fā)明一個(gè)實(shí)施例的目標(biāo)范圍的切分結(jié)果的示意圖。圖11是本發(fā)明一個(gè)實(shí)施例的建立樹(shù)型的簽名的示意圖。圖12是本發(fā)明一個(gè)實(shí)施例的計(jì)算設(shè)備或服務(wù)器的示意性框圖。具體實(shí)施方式下面將結(jié)合附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行描述。對(duì)于校驗(yàn)兩個(gè)數(shù)據(jù)庫(kù)中數(shù)據(jù)的一致性,現(xiàn)有的比較工具是基于數(shù)據(jù)的比較工具。當(dāng)使用該比較工具對(duì)兩個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)表進(jìn)行內(nèi)容比較時(shí),該比較工具會(huì)將校驗(yàn)任務(wù)進(jìn)行并行化處理。下面結(jié)合hadoop數(shù)據(jù)庫(kù)(hadoopdatabase,hbase),以現(xiàn)有的比較工具為例,介紹比較數(shù)據(jù)庫(kù)中數(shù)據(jù)表的數(shù)據(jù)的流程。圖1是現(xiàn)有的比較工具比較數(shù)據(jù)表的數(shù)據(jù)的方法100的示意圖。該方法100包括:s110,現(xiàn)有的比較工具向數(shù)據(jù)中心(datacenter,dc)1的數(shù)據(jù)庫(kù)對(duì)應(yīng)的hbase集群提交一個(gè)mr作業(yè)。s120,hbase集群的遠(yuǎn)程控制器(remotemaster,rm)將mr作業(yè)分配到很多節(jié)點(diǎn)上并行執(zhí)行,即將mr作業(yè)分配給多個(gè)映射任務(wù)(maptask)。s130,每一個(gè)maptask負(fù)責(zé)一部分?jǐn)?shù)據(jù)的比較。每一個(gè)maptask分別從兩個(gè)數(shù)據(jù)中心dc1和dc2的hbase集群讀取數(shù)據(jù),然后進(jìn)行數(shù)據(jù)比較,并打印出不一致的數(shù)據(jù)。通常,hbase集群中的每個(gè)服務(wù)器上均配置有服務(wù)程序區(qū)域服務(wù)器(regionserver,rs),rs用于管理服務(wù)器上運(yùn)行的任務(wù)。現(xiàn)有的比較工具對(duì)數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行逐行比較,比較效率低下,比較工具運(yùn)行速度慢。其次,現(xiàn)有的比較工具不僅需要兩個(gè)hbase集群的參與,還需要集群提供rm作業(yè)的運(yùn)行節(jié)點(diǎn),比較工具的占用和運(yùn)行成本較高。另外,現(xiàn)有的比較技術(shù),需要映射框架在本地跟本地?cái)?shù)據(jù)庫(kù)的hbase集群的多個(gè)服務(wù)器的rs進(jìn)行通信,還可能需要跟遠(yuǎn)端數(shù)據(jù)庫(kù)的hbase集群的服務(wù)器的rs進(jìn)行通信,這會(huì)占用大量的網(wǎng)絡(luò)資源?;谝陨蠁?wèn)題,本發(fā)明實(shí)施例提供了一種比較數(shù)據(jù)表的數(shù)據(jù)的方法。圖2示出了本發(fā)明實(shí)施例的比較數(shù)據(jù)表的數(shù)據(jù)的系統(tǒng)200的示意性框圖。應(yīng)理解,圖2示出的系統(tǒng)200是軟件的角度的示意性框圖。如圖2所示,該系統(tǒng)200從軟件上看包括客戶(hù)端210和多個(gè)服務(wù)端,其中,每個(gè)數(shù)據(jù)庫(kù)對(duì)應(yīng)至少一個(gè)服務(wù)端,第一數(shù)據(jù)庫(kù)對(duì)應(yīng)至少一個(gè)第一服務(wù)端221,第二數(shù)據(jù)庫(kù)對(duì)應(yīng)至少一個(gè)第二服務(wù)端222。圖3示出了本發(fā)明實(shí)施例的比較數(shù)據(jù)表的數(shù)據(jù)的系統(tǒng)300的示意性框圖。應(yīng)理解,圖3示出的系統(tǒng)300是硬件的角度的示意性框圖。與圖2的軟件相對(duì)應(yīng)地,系統(tǒng)300包括運(yùn)行客戶(hù)端的計(jì)算設(shè)備310和運(yùn)行服務(wù)端的多個(gè)服務(wù)器??蛻?hù)端210可以部署在用戶(hù)的計(jì)算設(shè)備310上,計(jì)算設(shè)備310通常不是任意一個(gè)數(shù)據(jù)庫(kù)對(duì)應(yīng)的服務(wù)器,即通常不是dc的服務(wù)器;第一服務(wù)端221可以部署在第一數(shù)據(jù)庫(kù)對(duì)應(yīng)的第一dc的第一服務(wù)器321上;第二服務(wù)端222可以部署在第二數(shù)據(jù)庫(kù)對(duì)應(yīng)的第二dc的第二服務(wù)器322上。可選地,第一數(shù)據(jù)庫(kù)用于存儲(chǔ)數(shù)據(jù)表的每臺(tái)服務(wù)器上可以部署一個(gè)第一服務(wù)端221,即部署了第一服務(wù)端221的服務(wù)器認(rèn)為是第一服務(wù)器321;第二數(shù)據(jù)庫(kù)用于存儲(chǔ)數(shù)據(jù)表的每臺(tái)服務(wù)器上可以部署一個(gè)第二服務(wù)端222,即部署了第二服務(wù)端222的服務(wù)器認(rèn)為是第二服務(wù)器322。當(dāng)然每個(gè)數(shù)據(jù)庫(kù)的多臺(tái)服務(wù)器也可以共用一個(gè)服務(wù)端,本發(fā)明實(shí)施例對(duì)此不作限定。圖2示出的第一服務(wù)端和第二服務(wù)端的數(shù)量,以及圖3示出的第一服務(wù)器和第二服務(wù)器的數(shù)量?jī)H是示意性的,而非對(duì)本發(fā)明實(shí)施例的限定。另外,本發(fā)明實(shí)施例中涉及獲取元數(shù)據(jù)(metadata),元數(shù)據(jù)一般存儲(chǔ)在meta表中,meta表通常存儲(chǔ)在數(shù)據(jù)庫(kù)中區(qū)別于存儲(chǔ)數(shù)據(jù)表的服務(wù)器以外的另外的服務(wù)器上。圖3中示意性的示出第一數(shù)據(jù)庫(kù)的meta表存儲(chǔ)在第一數(shù)據(jù)庫(kù)的第三服務(wù)器323上,第二數(shù)據(jù)庫(kù)的meta表存儲(chǔ)在第二數(shù)據(jù)庫(kù)的第四服務(wù)器324上。當(dāng)然meta表也可以存儲(chǔ)在數(shù)據(jù)庫(kù)中存儲(chǔ)數(shù)據(jù)表的服務(wù)器上,本發(fā)明實(shí)施例對(duì)此不作限定。應(yīng)理解,系統(tǒng)300中的計(jì)算設(shè)備和服務(wù)器可以認(rèn)為是一個(gè)節(jié)點(diǎn)。其中,用于存儲(chǔ)數(shù)據(jù)表的服務(wù)器(例如第一服務(wù)器和第二服務(wù)器)可以認(rèn)為是存儲(chǔ)節(jié)點(diǎn),存儲(chǔ)節(jié)點(diǎn)上部署有服務(wù)端,服務(wù)端可以是rs的部分功能,也可以獨(dú)立與rs存在。存儲(chǔ)meta表的服務(wù)器可以認(rèn)為是元數(shù)據(jù)管理節(jié)點(diǎn)。還應(yīng)理解,本發(fā)明實(shí)施例的服務(wù)端可以作為rs的一個(gè)功能模塊,也可作為單獨(dú)的模塊或單元,本發(fā)明實(shí)施例對(duì)此不作限定。圖4示出了本發(fā)明實(shí)施例的比較數(shù)據(jù)表的數(shù)據(jù)的方法400的示意性流程圖。如圖4所示,方法400包括:s410,客戶(hù)端210獲取第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的第一元數(shù)據(jù)和第二數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的第二元數(shù)據(jù),第一元數(shù)據(jù)中包括目標(biāo)數(shù)據(jù)表的數(shù)據(jù)在第一數(shù)據(jù)庫(kù)的服務(wù)器中所對(duì)應(yīng)的第一范圍,第二元數(shù)據(jù)中包括目標(biāo)數(shù)據(jù)表的數(shù)據(jù)在第二數(shù)據(jù)庫(kù)的服務(wù)器中所對(duì)應(yīng)的第二范圍;s420,客戶(hù)端210根據(jù)第一范圍和第二范圍中的至少一個(gè),確定目標(biāo)范圍;s430,至少一個(gè)第一服務(wù)端221根據(jù)目標(biāo)范圍,對(duì)第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行簽名得到第一簽名;s440,至少一個(gè)第二服務(wù)端222根據(jù)目標(biāo)范圍,對(duì)第二數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行簽名得到第二簽名;s450,客戶(hù)端210根據(jù)第一簽名和第二簽名,確定第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)與第二數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)是否相同。本發(fā)明實(shí)施例的方法,客戶(hù)端根據(jù)數(shù)據(jù)表的數(shù)據(jù)的分布確定目標(biāo)范圍,服務(wù)端根據(jù)目標(biāo)范圍對(duì)數(shù)據(jù)進(jìn)行簽名,客戶(hù)端比較兩個(gè)數(shù)據(jù)庫(kù)中數(shù)據(jù)表的數(shù)據(jù)對(duì)應(yīng)的簽名是否一致即可判斷出這兩個(gè)數(shù)據(jù)表的數(shù)據(jù)是否一致,避免了大量的數(shù)據(jù)傳輸和比較,運(yùn)行速度快成本低,網(wǎng)絡(luò)資源占用量小。具體而言,本發(fā)明實(shí)施例的待比較的目標(biāo)數(shù)據(jù)表所在的第一數(shù)據(jù)庫(kù)和第二數(shù)據(jù)庫(kù)分別屬于不同的數(shù)據(jù)庫(kù),兩個(gè)數(shù)據(jù)庫(kù)進(jìn)一步可以分別屬于不同的數(shù)據(jù)中心的服務(wù)器的集群。當(dāng)然兩個(gè)數(shù)據(jù)庫(kù)也可以屬于同一個(gè)數(shù)據(jù)中心,本發(fā)明實(shí)施例對(duì)此不作限定。通常,數(shù)據(jù)庫(kù)中的數(shù)據(jù)表較大,一般需將數(shù)據(jù)表橫向切分,在多個(gè)服務(wù)器存放,以增強(qiáng)并發(fā)處理的速度。在s410中,客戶(hù)端210分別與存放目標(biāo)數(shù)據(jù)表的第一數(shù)據(jù)庫(kù)和第二數(shù)據(jù)庫(kù)的服務(wù)器通信,以得到第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的第一元數(shù)據(jù)和第二數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的第二元數(shù)據(jù)。元數(shù)據(jù)(metadata)一般存儲(chǔ)在meta表中,meta表通常存儲(chǔ)在數(shù)據(jù)庫(kù)中區(qū)別于存儲(chǔ)數(shù)據(jù)表的服務(wù)器以外的另外的服務(wù)器上,當(dāng)然meta表也可以存儲(chǔ)在數(shù)據(jù)庫(kù)中存儲(chǔ)數(shù)據(jù)表的服務(wù)器上,本發(fā)明實(shí)施例對(duì)此不作限定。客戶(hù)端210得到兩個(gè)數(shù)據(jù)庫(kù)的目標(biāo)數(shù)據(jù)表的對(duì)應(yīng)的兩張meta表,即得到第一元數(shù)據(jù)和第二元數(shù)據(jù)?,F(xiàn)假設(shè)每個(gè)數(shù)據(jù)庫(kù)分別包括3臺(tái)服務(wù)器,每臺(tái)服務(wù)器上運(yùn)行一個(gè)rs,每個(gè)rs對(duì)應(yīng)存儲(chǔ)目標(biāo)數(shù)據(jù)表的一個(gè)區(qū)域(region)。根據(jù)第一元數(shù)據(jù)和第二元數(shù)據(jù),得到每個(gè)region對(duì)應(yīng)一個(gè)范圍(range)分布情況,即開(kāi)始鍵(startkey)和結(jié)束鍵(endkey)。其中,第一元數(shù)據(jù)中包括目標(biāo)數(shù)據(jù)表的數(shù)據(jù)在第一數(shù)據(jù)庫(kù)的服務(wù)器中所對(duì)應(yīng)的第一范圍,第二元數(shù)據(jù)中包括目標(biāo)數(shù)據(jù)表的數(shù)據(jù)在第二數(shù)據(jù)庫(kù)的服務(wù)器中所對(duì)應(yīng)的第二范圍。在一個(gè)具體的例子中,目標(biāo)數(shù)據(jù)表table1的分布情況可以如表1所示。表1目標(biāo)數(shù)據(jù)表的分布情況第一數(shù)據(jù)庫(kù)的目標(biāo)數(shù)據(jù)表在第一數(shù)據(jù)庫(kù)的rs1上的key的范圍為1-30,在第一數(shù)據(jù)庫(kù)的rs2上的key的范圍為31-80,在第一數(shù)據(jù)庫(kù)的rs3上的key的范圍為81-100。第二數(shù)據(jù)庫(kù)的目標(biāo)數(shù)據(jù)表在第二數(shù)據(jù)庫(kù)的rs1上的key的范圍為1-25,在第二數(shù)據(jù)庫(kù)的rs2上的key的范圍為26-60,在第二數(shù)據(jù)庫(kù)的rs3上的key的范圍為61-100。在s320中,客戶(hù)端210根據(jù)第一范圍和第二范圍中的至少一個(gè),確定目標(biāo)范圍。可選地,上述例子中的分布符合:第一數(shù)據(jù)庫(kù)的每個(gè)服務(wù)器對(duì)應(yīng)一個(gè)第一服務(wù)端221,第一范圍包括目標(biāo)數(shù)據(jù)表的數(shù)據(jù)在第一數(shù)據(jù)庫(kù)的每個(gè)服務(wù)器的子范圍,第二數(shù)據(jù)庫(kù)的每個(gè)服務(wù)器對(duì)應(yīng)一個(gè)第二服務(wù)端222,第二范圍包括目標(biāo)數(shù)據(jù)表的數(shù)據(jù)在第二數(shù)據(jù)庫(kù)的每個(gè)服務(wù)器的子范圍。s420中客戶(hù)端210根據(jù)第一范圍和第二范圍中的至少一個(gè),確定目標(biāo)范圍,可以包括:客戶(hù)端210根據(jù)目標(biāo)數(shù)據(jù)表的數(shù)據(jù)在第一數(shù)據(jù)庫(kù)的每個(gè)服務(wù)器的子范圍和目標(biāo)數(shù)據(jù)表的數(shù)據(jù)在第二數(shù)據(jù)庫(kù)的每個(gè)服務(wù)器的子范圍,確定目標(biāo)范圍的子范圍,每個(gè)子范圍對(duì)應(yīng)的數(shù)據(jù)在第一數(shù)據(jù)庫(kù)中分布在一個(gè)服務(wù)器上,并且在第二數(shù)據(jù)庫(kù)中分布在一個(gè)服務(wù)器上。具體地,客戶(hù)端210可以根據(jù)兩個(gè)數(shù)據(jù)表分別對(duì)應(yīng)的第一范圍和第二范圍(即startkey和endkey的分布),作出重復(fù)范圍最大匹配目標(biāo)的切分,得到目標(biāo)范圍。目標(biāo)范圍包括多個(gè)子范圍,每個(gè)子范圍對(duì)應(yīng)的數(shù)據(jù)在第一數(shù)據(jù)庫(kù)中分布在一個(gè)服務(wù)器上,并且在第二數(shù)據(jù)庫(kù)中分布在一個(gè)服務(wù)器上。這樣,后續(xù)在對(duì)數(shù)據(jù)進(jìn)行簽名時(shí),不再需要跨服務(wù)器(跨rs)進(jìn)行數(shù)據(jù)傳輸,可以進(jìn)一步提高運(yùn)行速度,降低網(wǎng)絡(luò)資源的占用量。下面詳細(xì)介紹一種劃分目標(biāo)范圍的子范圍的方案。這種方案不僅使得目標(biāo)范圍的子范圍在第一數(shù)據(jù)庫(kù)中分布在一個(gè)服務(wù)器上,并且在第二數(shù)據(jù)庫(kù)中分布在一個(gè)服務(wù)器上;而且還能保證劃分出的子范圍的個(gè)數(shù)最少。切分的具體步驟可以如下。步驟1.客戶(hù)端210按照行鍵(rowkey)從小到大的順序?qū)蓚€(gè)數(shù)據(jù)庫(kù)的目標(biāo)數(shù)據(jù)表在服務(wù)器上分布的范圍形成兩個(gè)region隊(duì)列。第一范圍對(duì)應(yīng)region隊(duì)列a(a1,a2,…),第二范圍對(duì)應(yīng)region隊(duì)列b(b1,b2,…)??蛻?hù)端210分別從兩個(gè)region隊(duì)列中依次選取region。步驟2.客戶(hù)端210比較被選中兩個(gè)region(例如ax和by)的范圍(range),看這兩個(gè)region是否有重疊。這里又分為幾種情況:a)如果兩個(gè)region沒(méi)有重疊,則將startkey較小region作為已經(jīng)切分好的region(即目標(biāo)范圍的一個(gè)子范圍)輸出,然后從startkey較小的region所在的region隊(duì)列中取下一個(gè)region,然后繼續(xù)重復(fù)步驟2的操作,繼續(xù)比較。b)如果兩個(gè)region有重疊,又可以分為幾種情況:i.完全重疊的情況:如圖5所示,當(dāng)兩個(gè)region(a1和b1)完全重疊時(shí),將其中任意一個(gè)region作為已經(jīng)切分好的regionc1(即目標(biāo)范圍的一個(gè)子范圍)輸出,然后從兩個(gè)region隊(duì)列中分別取出下一個(gè)region,然后繼續(xù)重復(fù)步驟2的操作,繼續(xù)比較。ii.部分重疊的情況(startkey相同,endkey不同):如圖6所示,當(dāng)兩個(gè)region(a1和b1)有部分重疊時(shí),截取重疊部分,作為已經(jīng)切分好的regionc1(即目標(biāo)范圍的一個(gè)子范圍)輸出。將b1進(jìn)行截取,并將剩下的部分regionb1-作為新的region跟region隊(duì)列a的下一個(gè)regiona2進(jìn)行步驟2的比較。iii.部分重疊的情況(startkey不同,endkey也不同,一個(gè)region包含另一個(gè)region的情況):如圖7所示,當(dāng)regionb1中完全包含regiona1時(shí),用regiona1的startkey和endkey將regionb1做切分,得到的c1,c2和b1-(regionb1剩余的部分)。將c1和c2(分別為目標(biāo)范圍的子范圍)作為切分后的結(jié)果保存,將b1-和region隊(duì)列a的下一個(gè)regiona2作為待比較的兩個(gè)region,進(jìn)行步驟2的比較。iv.部分重疊的情況(startkey不同,endkey也不同,不存在一個(gè)region包含另一個(gè)region的情況):如圖8所示,regionb1的startkey小于regiona1的startkey,regionb1的endkey也小于regiona1的endkey,將regiona1的startkey和regionb1的endkey作為切分標(biāo)準(zhǔn),對(duì)regiona1和regionb1進(jìn)行切分。切分后得到的前兩個(gè)regionc1和regionc2(分別為目標(biāo)范圍的子范圍)作為結(jié)果輸出,將regiona1剩下的部分a1-和region隊(duì)列b的下一個(gè)regionb2作為待比較的兩個(gè)region進(jìn)行步驟2的比較。v.部分重疊的情況(startkey不同,endkey相同):在如圖9所示的例子中,將regiona1的startkey作為切分標(biāo)準(zhǔn),對(duì)regiona1和regionb1進(jìn)行切分。切分后得到兩個(gè)regionc1和regionc2(分別為目標(biāo)范圍的子范圍)作為切分結(jié)果輸出,然后將region隊(duì)列a的下一個(gè)regiona2和region隊(duì)列b的下一個(gè)regionb2作為待比較的兩個(gè)region進(jìn)行步驟2的比較。步驟3.客戶(hù)端210依次讀取兩個(gè)數(shù)據(jù)庫(kù)的目標(biāo)數(shù)據(jù)表對(duì)應(yīng)的第一范圍中的region和第二范圍中的region,直到劃分完畢。對(duì)表1所示的例子中目標(biāo)數(shù)據(jù)表的第一范圍中的region和第二范圍中的region進(jìn)行劃分后的結(jié)果如圖10所示。目標(biāo)范圍包括5個(gè)子范圍,每個(gè)子范圍不論是在第一數(shù)據(jù)庫(kù)還是在第二數(shù)據(jù)庫(kù)均分布在一個(gè)rs上,不會(huì)跨rs??蛇x地,在s320中,客戶(hù)端210也可以將第一范圍和第二范圍中的一個(gè),作為目標(biāo)范圍,本發(fā)明實(shí)施例對(duì)劃分目標(biāo)范圍的具體方式不作限定。在確定目標(biāo)范圍之后,可以直接以上述目標(biāo)范圍的各個(gè)子范圍作為最細(xì)粒度,通過(guò)服務(wù)端對(duì)兩個(gè)數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行簽名??蛇x地,作為一個(gè)實(shí)施例,在s330至少一個(gè)第一服務(wù)端根據(jù)所述目標(biāo)范圍,對(duì)所述第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行簽名得到第一簽名,s340至少一個(gè)第二服務(wù)端根據(jù)所述目標(biāo)范圍,對(duì)所述第二數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行簽名得到第二簽名之前,方法300還可以包括:客戶(hù)端、至少一個(gè)第一服務(wù)端和至少一個(gè)第二服務(wù)端中的至少一個(gè)為每個(gè)子范圍進(jìn)行樹(shù)型分段;s330至少一個(gè)第一服務(wù)端根據(jù)目標(biāo)范圍,對(duì)第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行簽名得到第一簽名,可以包括:至少一個(gè)第一服務(wù)端根據(jù)樹(shù)型分段,對(duì)第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)的分段進(jìn)行簽名得到樹(shù)型的第一簽名;s340至少一個(gè)第二服務(wù)端根據(jù)目標(biāo)范圍,對(duì)第二數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行簽名得到第二簽名,可以包括:至少一個(gè)第二服務(wù)端根據(jù)樹(shù)型分段,對(duì)第二數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)的分段進(jìn)行簽名得到樹(shù)型的第二簽名。這樣,對(duì)目標(biāo)范圍的子范圍進(jìn)行樹(shù)型分段可以得到更細(xì)化的簽名,能夠提高比較簽名時(shí)的效率。下面結(jié)合一個(gè)具體的實(shí)施例說(shuō)明本發(fā)明實(shí)施例的方法為每個(gè)子范圍進(jìn)行樹(shù)型分段的過(guò)程。在該實(shí)施例中,客戶(hù)端、至少一個(gè)第一服務(wù)端和至少一個(gè)第二服務(wù)端中的至少一個(gè)為每個(gè)子范圍進(jìn)行樹(shù)型分段,包括:至少一個(gè)第一服務(wù)端和至少一個(gè)第二服務(wù)端對(duì)目標(biāo)范圍中數(shù)據(jù)的密度進(jìn)行統(tǒng)計(jì);至少一個(gè)第一服務(wù)端和至少一個(gè)第二服務(wù)端根據(jù)統(tǒng)計(jì)的結(jié)果,為每個(gè)子范圍進(jìn)行樹(shù)型分段。具體而言,客戶(hù)端210將切分好的目標(biāo)范圍的子范圍的信息封裝成統(tǒng)計(jì)記數(shù)的請(qǐng)求,發(fā)送給兩個(gè)數(shù)據(jù)庫(kù)的服務(wù)端。因?yàn)榇容^的兩個(gè)數(shù)據(jù)庫(kù)中的目標(biāo)數(shù)據(jù)表的數(shù)據(jù)結(jié)構(gòu)是相同的,因此對(duì)每一個(gè)子范圍僅需要兩個(gè)數(shù)據(jù)庫(kù)中的任意一個(gè)數(shù)據(jù)庫(kù)的服務(wù)端進(jìn)行統(tǒng)計(jì)記數(shù)即可。在本發(fā)明的一個(gè)實(shí)施例中,對(duì)兩個(gè)數(shù)據(jù)庫(kù)中的服務(wù)端進(jìn)行負(fù)載均衡(loadbalance)操作。如表2所示,將子范圍[0-25]分配給第二數(shù)據(jù)庫(kù)的第二服務(wù)端(對(duì)應(yīng)于rs1)來(lái)統(tǒng)計(jì)密度,將子范圍[26-30]分配給第一數(shù)據(jù)庫(kù)的第一服務(wù)端(對(duì)應(yīng)于rs1)來(lái)統(tǒng)計(jì)密度。子范圍[81-100]則分配給第一數(shù)據(jù)庫(kù)的第一服務(wù)端或第二數(shù)據(jù)庫(kù)的第二服務(wù)端均可。這樣,沒(méi)有rs是閑置的,也沒(méi)有rs過(guò)于繁忙,可以使得各個(gè)服務(wù)器的負(fù)載均衡。當(dāng)然,在本發(fā)明的其他實(shí)施例中,可以不考慮各個(gè)服務(wù)器的負(fù)載均衡,客戶(hù)端210可以選擇兩個(gè)數(shù)據(jù)庫(kù)的任意一個(gè)數(shù)據(jù)庫(kù)的服務(wù)端來(lái)統(tǒng)計(jì)數(shù)據(jù)密度;或者,客戶(hù)端210可以從兩個(gè)數(shù)據(jù)庫(kù)中選擇一個(gè)數(shù)據(jù)庫(kù),統(tǒng)計(jì)數(shù)據(jù)密度均使用被選中的數(shù)據(jù)庫(kù)的服務(wù)端,本發(fā)明實(shí)施例對(duì)此不作限定。表2密度統(tǒng)計(jì)示意目標(biāo)范圍的子范圍第一數(shù)據(jù)庫(kù)第二數(shù)據(jù)庫(kù)1-25等待統(tǒng)計(jì)密度(rs1)26-30統(tǒng)計(jì)密度(rs1)等待31-58等待統(tǒng)計(jì)密度(rs2)59-80統(tǒng)計(jì)密度(rs2)等待81-100等待統(tǒng)計(jì)密度(rs3)根據(jù)表2,第二數(shù)據(jù)庫(kù)的rs2統(tǒng)計(jì)得到子范圍[31-58]中數(shù)據(jù)的密度,將子范圍進(jìn)行分段后得到,將該子范圍[31-58]分成每層具有兩個(gè)分支的樹(shù)形,樹(shù)形的最底層的各段(即粒度最細(xì)的各段)分別為[31-37][38-44][45-51][52-58]。第二數(shù)據(jù)庫(kù)的rs2將該信息封裝起來(lái)發(fā)送給第一數(shù)據(jù)庫(kù)的rs2,格式可以如下“startkey,endkey,leastsize,childsize”,其值為“31,58,7,2”。第一數(shù)據(jù)庫(kù)的rs2收到該信息后,得到樹(shù)形分組的信息。第一數(shù)據(jù)庫(kù)的第二服務(wù)端(對(duì)應(yīng)rs2)根據(jù)樹(shù)型分段讀取數(shù)據(jù),對(duì)第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)的分段進(jìn)行簽名得到樹(shù)型的第一簽名。應(yīng)理解,在本發(fā)明實(shí)施例中,讀取數(shù)據(jù)是花費(fèi)時(shí)間較長(zhǎng)的一個(gè)環(huán)節(jié),因此,第二數(shù)據(jù)庫(kù)的rs2可以一邊對(duì)目標(biāo)范圍的子范圍中數(shù)據(jù)的密度進(jìn)行統(tǒng)計(jì),一邊就完成了簽名。服務(wù)端根據(jù)樹(shù)型分段,對(duì)數(shù)據(jù)分段進(jìn)行簽名得到樹(shù)型的簽名的過(guò)程可以如下。服務(wù)端對(duì)每個(gè)子范圍的樹(shù)形的最底層的各段進(jìn)行簽名運(yùn)算,然后依據(jù)樹(shù)的分支,進(jìn)行自下而上的建樹(shù)操作。圖11示出了本發(fā)明一個(gè)實(shí)施例的建立樹(shù)型的簽名的示意圖。步驟a.先建立最細(xì)粒度的分段的數(shù)據(jù)的簽名。例如,v1=[31-37],v2=[38-44],v3=[45-51],v4=[52-58]。步驟b.按照樹(shù)的分支為2的設(shè)置,建立上一層的簽名。例如,v5=[31-44]=簽名(v1,v2),v6=[45-58]=簽名(v3,v4)。步驟c.如果該層的簽名個(gè)數(shù)不為1,重復(fù)執(zhí)行步驟b;如果該層的簽名個(gè)數(shù)為1則結(jié)束。最終得到最上邊一層的簽名v7=[31-58]=簽名(v5,v6)。可選地,本發(fā)明實(shí)施例采用哈希算法對(duì)數(shù)據(jù)進(jìn)行簽名,例如,可以通過(guò)消息摘要算法第五版(messagedigestalgorithm5,md5)對(duì)數(shù)據(jù)進(jìn)行簽名。相應(yīng)地,s330至少一個(gè)第一服務(wù)端根據(jù)目標(biāo)范圍,對(duì)第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行簽名得到第一簽名,可以包括:至少一個(gè)第一服務(wù)端根據(jù)目標(biāo)范圍,通過(guò)哈希算法對(duì)第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行簽名得到第一簽名;s340至少一個(gè)第二服務(wù)端根據(jù)目標(biāo)范圍,對(duì)第二數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行簽名得到第二簽名,可以包括:至少一個(gè)第二服務(wù)端根據(jù)目標(biāo)范圍,通過(guò)哈希算法對(duì)第二數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行簽名得到第二簽名。每個(gè)服務(wù)端得到簽名之后可以將樹(shù)形的第一簽名或樹(shù)形的第二簽名反饋給客戶(hù)端210。應(yīng)理解,本發(fā)明實(shí)施例中每個(gè)子范圍對(duì)應(yīng)一個(gè)樹(shù)形的簽名,因此可能存在多個(gè)第一簽名以及多個(gè)第二簽名。每個(gè)服務(wù)端也可以?xún)H將樹(shù)形的第一簽名的最高層的簽名或樹(shù)形的第二簽名的最高層的簽名反饋給客戶(hù)端210。當(dāng)最高層的簽名不一致時(shí),再將下層的簽名發(fā)送給客戶(hù)端210用于比較,本發(fā)明實(shí)施例對(duì)此不做限定??蛻?hù)端210收到來(lái)自?xún)蓚€(gè)數(shù)據(jù)庫(kù)的目標(biāo)范圍的子范圍的簽名??蛻?hù)端210對(duì)簽名進(jìn)行比較,如果最高層的簽名相等,則認(rèn)為兩個(gè)數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的內(nèi)容一致,比較結(jié)束。如果客戶(hù)端210發(fā)現(xiàn)最高層的簽名不相等,則依次比較下層的簽名,直到找到簽名不一致的最細(xì)粒度的分段,確定是哪些數(shù)據(jù)不一致?;蛘?,客戶(hù)端210發(fā)現(xiàn)最高層的簽名不相等,則要求服務(wù)端返回下一層的簽名,客戶(hù)端210繼續(xù)比較返回回來(lái)的簽名,如果發(fā)現(xiàn)其中有不一致的,繼續(xù)要求服務(wù)端返回下一層的簽名,直到找到簽名不一致的最細(xì)粒度的分段。概括而言,s350客戶(hù)端根據(jù)第一簽名和第二簽名,確定第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)與第二數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)是否相同,可以包括:客戶(hù)端根據(jù)樹(shù)型的第一簽名和樹(shù)型的第二簽名,確定第一簽名和第二簽名的樹(shù)的相同層的簽名是否一致,當(dāng)簽名不一致時(shí),確定層對(duì)應(yīng)的分段在第一數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)與第二數(shù)據(jù)庫(kù)中目標(biāo)數(shù)據(jù)表的數(shù)據(jù)不同??蛻?hù)端210可以根據(jù)簽名不一致的最細(xì)粒度的分段,對(duì)兩個(gè)數(shù)據(jù)庫(kù)的目標(biāo)數(shù)據(jù)表在該分段內(nèi)做一次小范圍查詢(xún),讀出來(lái)的數(shù)據(jù)在客戶(hù)端210內(nèi)部做一下字符串比較,即可得到詳細(xì)的數(shù)據(jù)表的差異。本發(fā)明實(shí)施例也可以不進(jìn)行詳細(xì)的比較,只給出目標(biāo)數(shù)據(jù)表的數(shù)據(jù)是否一致即可,本發(fā)明實(shí)施例對(duì)此不作限定。圖12示出了本發(fā)明實(shí)施例的設(shè)備500的示意性框圖,設(shè)備500可以對(duì)應(yīng)于本發(fā)明實(shí)施例的圖3中所涉及的任一計(jì)算設(shè)備或服務(wù)器。如圖12所示,設(shè)備500可以包括處理器510、存儲(chǔ)器520和網(wǎng)絡(luò)接口530。其中,處理器510可以用于執(zhí)行本發(fā)明實(shí)施例的方法,存儲(chǔ)器520可以用于存儲(chǔ)處理器510所執(zhí)行的代碼,網(wǎng)絡(luò)接口530用于與其他設(shè)備進(jìn)行通信。圖3的計(jì)算設(shè)備310還可以包括輸出設(shè)備或與輸出設(shè)備連接的輸出接口,用于輸出比較結(jié)果。輸出設(shè)備可以包括顯示器,打印機(jī)等等。設(shè)備500中的處理器、存儲(chǔ)器和網(wǎng)絡(luò)接口之間可以通過(guò)內(nèi)部連接通路互相通信,傳遞控制和/或數(shù)據(jù)信號(hào)。本領(lǐng)域普通技術(shù)人員可以意識(shí)到,結(jié)合本文中所公開(kāi)的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計(jì)算機(jī)軟件和電子硬件的結(jié)合來(lái)實(shí)現(xiàn)。這些功能究竟以硬件還是軟件方式來(lái)執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專(zhuān)業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來(lái)使用不同方法來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng)、裝置和單元的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再贅述。在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的系統(tǒng)實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以?xún)蓚€(gè)或兩個(gè)以上單元集成在一個(gè)單元中。所述功能如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷(xiāo)售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤(pán)、移動(dòng)硬盤(pán)、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本
技術(shù)領(lǐng)域:
:的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。當(dāng)前第1頁(yè)12當(dāng)前第1頁(yè)12