本發(fā)明實(shí)施例涉及通信
技術(shù)領(lǐng)域:
:,尤其涉及一種數(shù)據(jù)加載方法、終端和計算集群。
背景技術(shù):
::分布式鍵值KeyValue數(shù)據(jù)庫能有效減少讀寫磁盤的次數(shù),具有更好的讀寫性能,能夠?yàn)橛脩籼峁└玫臄?shù)據(jù)查詢服務(wù)。KeyValue數(shù)據(jù)庫常采用映射歸約MapReduce服務(wù)組件來批量加載數(shù)據(jù)。在批量加載數(shù)據(jù)的過程中,通過執(zhí)行MapReduce任務(wù),生成與KeyValue數(shù)據(jù)庫的定義的文件存儲格式相一致的目標(biāo)文件,并存儲到分布式文件系統(tǒng)中,而后從分布式文件系統(tǒng)加載到KeyValue數(shù)據(jù)庫中。其中,同時布署有MapReduce服務(wù)組件和KeyValue數(shù)據(jù)庫的集群的結(jié)構(gòu)示意圖可以參見圖1。在圖1所示的集群中,MapReduce任務(wù)執(zhí)行過程需要讀取大量的數(shù)據(jù),并且涉及到排序、分區(qū)等大量的計算,從而使得整個集群的中央處理器(CentralProcessingUnit,簡稱CPU)、網(wǎng)絡(luò)輸入/輸出(Input/Output,簡稱I/O)口、磁盤I/O口等資源的使用率非常高。KeyValue數(shù)據(jù)庫對讀寫時延要求較高,一般在毫秒級;但在使用MapReduce服務(wù)組件為KeyValue數(shù)據(jù)庫批量加載數(shù)據(jù)時,執(zhí)行MapReduce任務(wù)來加載數(shù)據(jù)的進(jìn)程會占用較多資源,導(dǎo)致可用于KeyValue數(shù)據(jù)庫的查詢服務(wù)的進(jìn)程的資源相對減少,從而影響KeyValue數(shù)據(jù)庫的讀寫時延,KeyValue數(shù)據(jù)庫的數(shù)據(jù)查詢性能降低,導(dǎo)致無法滿足用戶的業(yè)務(wù)需求。技術(shù)實(shí)現(xiàn)要素:本發(fā)明實(shí)施例提供一種數(shù)據(jù)加載方法、終端和計算集群,能夠降低KeyValue數(shù)據(jù)庫的讀寫時延,提高KeyValue數(shù)據(jù)庫的查詢性能。為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:第一方面,本發(fā)明實(shí)施例提供一種數(shù)據(jù)加載方法,應(yīng)用于計算集群。其中涉及查詢集群,計算集群用于數(shù)據(jù)加載,查詢集群用于KeyValue數(shù)據(jù)庫的數(shù)據(jù)查詢,計算集群與查詢集群為不同集群。該方法包括:首先,計算集群接收數(shù)據(jù)加載請求,數(shù)據(jù)加載請求攜帶有待加載數(shù)據(jù)表的分區(qū)信息。其次,計算集群根據(jù)分區(qū)信息確定第一數(shù)據(jù)分區(qū)。其中,分區(qū)信息指示的所有分區(qū)分別綁定一個第一數(shù)據(jù)分區(qū)。然后,計算集群從分布式文件系統(tǒng)中分別獲取分區(qū)信息指示的每個分區(qū)的源數(shù)據(jù),對每個分區(qū)的源數(shù)據(jù)分別執(zhí)行映射任務(wù)。之后,計算集群根據(jù)分區(qū)信息指示的分區(qū)與第一數(shù)據(jù)分區(qū)的綁定關(guān)系,將執(zhí)行每個映射任務(wù)所得的中間數(shù)據(jù)對應(yīng)地寫入第一數(shù)據(jù)分區(qū)。而后,計算集群對每個第一數(shù)據(jù)分區(qū)中的中間數(shù)據(jù)分別執(zhí)行歸約任務(wù),執(zhí)行得到每個歸約任務(wù)的目標(biāo)文件,該目標(biāo)文件供KeyValue數(shù)據(jù)庫的加載數(shù)據(jù)表進(jìn)行數(shù)據(jù)查詢使用。這樣,可以通過計算集群中的資源執(zhí)行MapReduce任務(wù),生成與KeyValue數(shù)據(jù)庫定義的文件存儲格式相同的目標(biāo)文件,以供在查詢集群中KeyValue數(shù)據(jù)庫的加載數(shù)據(jù)表進(jìn)行數(shù)據(jù)查詢使用。其中,由于執(zhí)行MapReduce任務(wù)的是計算集群,與為用戶提供查詢服務(wù)的查詢集群是相互獨(dú)立的兩個集群,因而即使在執(zhí)行MapReduce任務(wù)的過程中,會占用大量的CPU、I/O口等資源,但這些資源為計算集群中的資源,MapReduce任務(wù)的執(zhí)行不會占用查詢集群的相關(guān)資源,從而可以使得查詢集群的負(fù)載較低,因而能夠降低查詢集群中KeyValue數(shù)據(jù)庫的讀寫時延,提高KeyValue數(shù)據(jù)庫的查詢性能。在第一方面的一種可能的實(shí)現(xiàn)方式中,該方法還包括:計算集群將目標(biāo)文件發(fā)送至查詢集群。第二方面,本發(fā)明實(shí)施例提供一種數(shù)據(jù)加載方法,應(yīng)用于終端。其中涉及計算集群和查詢集群,計算集群用于數(shù)據(jù)加載,查詢集群用于KeyValue數(shù)據(jù)庫的數(shù)據(jù)查詢,計算集群與查詢集群為不同集群。該包括:終端向計算集群發(fā)送數(shù)據(jù)加載請求,數(shù)據(jù)加載請求攜帶有待加載數(shù)據(jù)表的分區(qū)信息。其中,數(shù)據(jù)加載請求指示計算集群根據(jù)分區(qū)信息確定第一數(shù)據(jù)分區(qū)。分區(qū)信息指示的所有分區(qū)分別綁定一個第一數(shù)據(jù)分區(qū)。第一數(shù)據(jù)分區(qū)用于存儲對于第一數(shù)據(jù)分區(qū)綁定的分區(qū)中的源數(shù)據(jù)執(zhí)行映射任務(wù)所得的中間數(shù)據(jù),以便對第一數(shù)據(jù)分區(qū)中的中間數(shù)據(jù)執(zhí)行歸約任務(wù)來獲取目標(biāo)文件。在第二方面的一種可能的實(shí)現(xiàn)方式中,查詢集群與計算集群具有各自的分布式文件系統(tǒng),查詢集群與計算集群各自具有的分布式文件系統(tǒng)相互隔離,這種情況下,終端或者查詢集群需要請求計算集群將每個第一數(shù)據(jù)分區(qū)對應(yīng)的目標(biāo)文件發(fā)送至查詢集群,以便在KeyValue數(shù)據(jù)庫的待加載數(shù)據(jù)表進(jìn)行數(shù)據(jù)查詢時使用目標(biāo)文件。在第二方面的一種可能的實(shí)現(xiàn)方式中,查詢集群與計算集群共享分布式文件系統(tǒng),查詢集群從分布式文件系統(tǒng)中獲取目標(biāo)文件。在計算集群生成目標(biāo)文件后,可以將目標(biāo)文件保存在與查詢集群共享的分布式文件系統(tǒng)中,查詢集群可以直接從分布式文件系統(tǒng)中獲取目標(biāo)文件并加載,以便在KeyValue數(shù)據(jù)庫的待加載數(shù)據(jù)表進(jìn)行數(shù)據(jù)查詢時使用該目標(biāo)文件。在第二方面的一種可能的實(shí)現(xiàn)方式中,在終端向計算集群發(fā)送數(shù)據(jù)加載請求之前,該方法還包括:終端向查詢集群請求待加載數(shù)據(jù)表的分區(qū)信息。從而,終端可以根據(jù)從查詢集群獲取的分區(qū)信息確定第一數(shù)據(jù)分區(qū)。在第二方面的一種可能的實(shí)現(xiàn)方式中,終端上保存有查詢集群的連接配置集和計算集群的連接配置集。在終端向查詢集群請求待加載數(shù)據(jù)表的分區(qū)信息之前,該方法還包括:終端根據(jù)查詢集群的連接配置集向查詢集群發(fā)送第一建立連接請求。在終端向計算集群發(fā)送數(shù)據(jù)加載請求之前,該方法還包括:終端根據(jù)計算集群的連接配置集向所計算集群發(fā)送第二建立連接請求。從而,在終端與查詢集群/計算集群建立連接后,終端可以與查詢集群/計算集群進(jìn)行消息交互。在第二方面的一種可能的實(shí)現(xiàn)方式中,連接配置集包括IP地址、端口和安全訪問配置信息中的至少一個。第三方面,本發(fā)明實(shí)施例提供一種數(shù)據(jù)加載方法,應(yīng)用于查詢集群。其中涉及計算集群,查詢集群用于KeyValue數(shù)據(jù)庫的數(shù)據(jù)查詢,計算集群用于數(shù)據(jù)加載,計算集群與查詢集群為不同集群。該方法包括:查詢集群接收計算集群發(fā)送的每個第一數(shù)據(jù)分區(qū)對應(yīng)的目標(biāo)文件。而后,查詢集群將每個第一數(shù)據(jù)分區(qū)對應(yīng)的目標(biāo)文件加載至KeyValue數(shù)據(jù)庫中,以便在KeyValue數(shù)據(jù)庫的待加載數(shù)據(jù)表進(jìn)行數(shù)據(jù)查詢時使用目標(biāo)文件。這樣,在計算集群生成目標(biāo)文件后,終端或者查詢集群可以請求計算集群將目標(biāo)文件發(fā)送至查詢集群;查詢集群在接收到計算集群發(fā)送的目標(biāo)文件后,可以將目標(biāo)文件加載至KeyValue數(shù)據(jù)庫中,以便在KeyValue數(shù)據(jù)庫的待加載數(shù)據(jù)表進(jìn)行數(shù)據(jù)查詢時使用該目標(biāo)文件。結(jié)合上述任一方面,在一種可能的實(shí)現(xiàn)方式中,分區(qū)信息指示的每個分區(qū)的Key值范圍不同;對于具有綁定關(guān)系的分區(qū)與第一數(shù)據(jù)分區(qū),分區(qū)的源數(shù)據(jù)與第一數(shù)據(jù)分區(qū)的中間數(shù)據(jù)具有相同的Key值范圍。這樣,計算集群在執(zhí)行映射歸約任務(wù)時,可以根據(jù)Key值范圍分別獲取每個分區(qū)的源數(shù)據(jù),并將相同Key范圍的中間數(shù)據(jù)分發(fā)至每個分區(qū)對應(yīng)的第一數(shù)據(jù)分區(qū)中。結(jié)合上述任一方面,在一種可能的實(shí)現(xiàn)方式中,查詢集群中具有第二數(shù)據(jù)分區(qū),所有第二數(shù)據(jù)分區(qū)對應(yīng)的Key值范圍與第一數(shù)據(jù)分區(qū)對應(yīng)的Key值范圍相同,第二數(shù)據(jù)分區(qū)用于存儲對應(yīng)Key值范圍的目標(biāo)文件。這樣,在查詢集群接收到計算集群發(fā)送的目標(biāo)文件后,或者從與計算集群共享的分布式文件系統(tǒng)中獲取目標(biāo)文件后,可以將與每個第一數(shù)據(jù)文件對應(yīng)目標(biāo)文件,分別存儲在一個對應(yīng)的第二數(shù)據(jù)分區(qū)中,且第二數(shù)據(jù)分區(qū)對應(yīng)的Key值范圍與第一數(shù)據(jù)分區(qū)對應(yīng)的Key值范圍相同。結(jié)合上述任一方面,在一種可能的實(shí)現(xiàn)方式中,分區(qū)指示信息用于指示查詢集群的KeyValue數(shù)據(jù)庫中,待加載數(shù)據(jù)表對應(yīng)的Key值范圍與M個目標(biāo)第二數(shù)據(jù)分區(qū)的對應(yīng)關(guān)系。并且,目標(biāo)第一數(shù)據(jù)分區(qū)及其對應(yīng)的目標(biāo)第二數(shù)據(jù)分區(qū)對應(yīng)相同的Key值范圍。第四方面,本發(fā)明實(shí)施例提供一種計算集群,包括:接收模塊,用于接收數(shù)據(jù)加載請求,數(shù)據(jù)加載請求攜帶有待加載數(shù)據(jù)表的分區(qū)信息。確定模塊,用于根據(jù)分區(qū)信息確定第一數(shù)據(jù)分區(qū)。其中,分區(qū)信息指示的所有分區(qū)分別綁定一個第一數(shù)據(jù)分區(qū)。執(zhí)行模塊,用于從分布式文件系統(tǒng)中分別獲取分區(qū)信息指示的每個分區(qū)的源數(shù)據(jù),對每個分區(qū)的源數(shù)據(jù)分別執(zhí)行映射任務(wù)。寫入模塊,用于根據(jù)分區(qū)信息指示的分區(qū)與第一數(shù)據(jù)分區(qū)的綁定關(guān)系,將執(zhí)行每個映射任務(wù)所得的中間數(shù)據(jù)對應(yīng)地寫入第一數(shù)據(jù)分區(qū)。執(zhí)行模塊還用于,對每個第一數(shù)據(jù)分區(qū)中的中間數(shù)據(jù)分別執(zhí)行歸約任務(wù),執(zhí)行得到每個歸約任務(wù)的目標(biāo)文件,目標(biāo)文件供查詢集群的KeyValue數(shù)據(jù)庫的加載數(shù)據(jù)表進(jìn)行數(shù)據(jù)查詢使用。在第四方面的一種可能的實(shí)現(xiàn)方式中,分區(qū)信息指示的每個分區(qū)的Key值范圍不同。對于具有綁定關(guān)系的分區(qū)與第一數(shù)據(jù)分區(qū),分區(qū)的源數(shù)據(jù)與第一數(shù)據(jù)分區(qū)的中間數(shù)據(jù)具有相同的Key值范圍。在第四方面的一種可能的實(shí)現(xiàn)方式中,計算集群還包括:發(fā)送模塊,用于將目標(biāo)文件發(fā)送至查詢集群。在第四方面的一種可能的實(shí)現(xiàn)方式中,查詢集群中具有第二數(shù)據(jù)分區(qū),所有第二數(shù)據(jù)分區(qū)對應(yīng)的Key值范圍與第一數(shù)據(jù)分區(qū)對應(yīng)的Key值范圍相同,第二數(shù)據(jù)分區(qū)用于存儲對應(yīng)Key值范圍的目標(biāo)文件。第五方面,本發(fā)明實(shí)施例提供一種終端,包括:發(fā)送模塊,用于向計算集群發(fā)送數(shù)據(jù)加載請求。數(shù)據(jù)加載請求攜帶有待加載數(shù)據(jù)表的分區(qū)信息。數(shù)據(jù)加載請求指示計算集群根據(jù)分區(qū)信息確定第一數(shù)據(jù)分區(qū)。分區(qū)信息指示的所有分區(qū)分別綁定一個第一數(shù)據(jù)分區(qū)。第一數(shù)據(jù)分區(qū)用于存儲對于第一數(shù)據(jù)分區(qū)綁定的分區(qū)中的源數(shù)據(jù)執(zhí)行映射任務(wù)所得的中間數(shù)據(jù),以便對第一數(shù)據(jù)分區(qū)中的中間數(shù)據(jù)執(zhí)行歸約任務(wù)來獲取目標(biāo)文件。請求模塊,用于請求計算集群將每個第一數(shù)據(jù)分區(qū)對應(yīng)的目標(biāo)文件發(fā)送至查詢集群,以便在查詢集群的KeyValue數(shù)據(jù)庫的待加載數(shù)據(jù)表進(jìn)行數(shù)據(jù)查詢時使用目標(biāo)文件。在第五方面的一種可能的實(shí)現(xiàn)方式中,查詢集群中具有第二數(shù)據(jù)分區(qū),所有第二數(shù)據(jù)分區(qū)對應(yīng)的Key值范圍與第一數(shù)據(jù)分區(qū)對應(yīng)的Key值范圍相同,第二數(shù)據(jù)分區(qū)用于存儲對應(yīng)Key值范圍的目標(biāo)文件。在第五方面的一種可能的實(shí)現(xiàn)方式中,請求模塊還用于:在向查詢集群請求待加載數(shù)據(jù)表的分區(qū)信息之前,向查詢集群請求待加載數(shù)據(jù)表的分區(qū)信息。第六方面,本發(fā)明實(shí)施例提供一種查詢集群,包括:接收模塊,用于接收計算集群發(fā)送的每個第一數(shù)據(jù)分區(qū)對應(yīng)的目標(biāo)文件。加載模塊,用于將每個第一數(shù)據(jù)分區(qū)對應(yīng)的目標(biāo)文件加載至KeyValue數(shù)據(jù)庫中,以便在KeyValue數(shù)據(jù)庫的待加載數(shù)據(jù)表進(jìn)行數(shù)據(jù)查詢時使用目標(biāo)文件。在第六方面的一種可能的實(shí)現(xiàn)方式中,查詢集群中具有第二數(shù)據(jù)分區(qū),所有第二數(shù)據(jù)分區(qū)對應(yīng)的Key值范圍與第一數(shù)據(jù)分區(qū)對應(yīng)的Key值范圍相同,第二數(shù)據(jù)分區(qū)用于存儲對應(yīng)Key值范圍的目標(biāo)文件。又一方面,本發(fā)明實(shí)施例提供了一種計算集群,包括多個計算節(jié)點(diǎn),多個計算節(jié)點(diǎn)中的一個計算節(jié)點(diǎn)執(zhí)行第一方面或者第一方面的任一可能的實(shí)現(xiàn)方式提供的數(shù)據(jù)加載方法,或者多個計算節(jié)點(diǎn)中的至少兩個計算節(jié)點(diǎn)之間進(jìn)行數(shù)據(jù)交互來執(zhí)行第一方面或者第一方面的任一可能的實(shí)現(xiàn)方式提供的數(shù)據(jù)加載方法。再一方面,本發(fā)明實(shí)施例提供了一種計算機(jī)存儲介質(zhì),用于儲存為上述計算集群所用的計算機(jī)軟件指令,其包含用于執(zhí)行實(shí)現(xiàn)上述第一方面或者第一方面的任一可能的實(shí)現(xiàn)方式提供的數(shù)據(jù)加載方法所設(shè)計的程序。又一方面,本發(fā)明實(shí)施例提供了一種終端,包括至少一個處理器、存儲器和通信接口;所述至少一個處理器、所述存儲器和所述通信接口均通過總線連接;所述存儲器,用于存儲計算機(jī)執(zhí)行指令;所述至少一個處理器,用于執(zhí)行所述存儲器存儲的計算機(jī)執(zhí)行指令,使得所述計算終端通過所述通信接口與計算集群和/或查詢集群進(jìn)行數(shù)據(jù)交互,來執(zhí)行上述實(shí)施例提供的數(shù)據(jù)加載方法。再一方面,本發(fā)明實(shí)施例提供了一種計算機(jī)存儲介質(zhì),用于儲存為上述終端所用的計算機(jī)軟件指令,包含用于執(zhí)行實(shí)現(xiàn)上述第二方面或者第二方面的任一可能的實(shí)現(xiàn)方式提供的數(shù)據(jù)加載方法所設(shè)計的程序。又一方面,本發(fā)明實(shí)施例提供了一種查詢集群,包括多個查詢節(jié)點(diǎn),多個查詢節(jié)點(diǎn)中的一個查詢節(jié)點(diǎn)執(zhí)行第一方面或者第一方面的任一可能的實(shí)現(xiàn)方式提供的數(shù)據(jù)加載方法,或者多個查詢節(jié)點(diǎn)中的至少兩個查詢節(jié)點(diǎn)之間進(jìn)行數(shù)據(jù)交互,來執(zhí)行第一方面或者第一方面的任一可能的實(shí)現(xiàn)方式提供的數(shù)據(jù)加載方法。再一方面,本發(fā)明實(shí)施例提供了一種計算機(jī)存儲介質(zhì),用于儲存為上述查詢集群所用的計算機(jī)軟件指令,包含用于執(zhí)行實(shí)現(xiàn)上述第三方面或者第三方面的任一可能的實(shí)現(xiàn)方式提供的數(shù)據(jù)加載方法所設(shè)計的程序。再一方面,本發(fā)明實(shí)施例提供了一種通信系統(tǒng),包括上述方面描述的終端、計算集群和查詢集群。附圖說明為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為現(xiàn)有技術(shù)中的一種集群的結(jié)構(gòu)示意圖;圖2為本發(fā)明實(shí)施例提供的一種系統(tǒng)架構(gòu)示意圖;圖3為本發(fā)明實(shí)施例提供的另一種系統(tǒng)架構(gòu)示意圖;圖4為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)加載方法流程圖;圖5為本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)加載方法流程圖;圖6為本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)加載方法流程圖;圖7為本發(fā)明實(shí)施例提供的一種計算集群的結(jié)構(gòu)示意圖;圖8為本發(fā)明實(shí)施例提供的一種終端的結(jié)構(gòu)示意圖;圖9為本發(fā)明實(shí)施例提供的一種查詢集群的結(jié)構(gòu)示意圖;圖10為本發(fā)明實(shí)施例提供的一種計算設(shè)備的結(jié)構(gòu)示意圖。具體實(shí)施方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。采用MapReduce服務(wù)組件為KeyValue數(shù)據(jù)庫批量加載數(shù)據(jù)所涉及的系統(tǒng)架構(gòu)可以如圖2所示,該系統(tǒng)具體可以包括集群和多個終端。其中,該終端是可以向集群提交批量加載數(shù)據(jù)任務(wù)和查詢?nèi)蝿?wù)等請求的設(shè)備,例如可以是臺式計算機(jī)、筆記本電腦、iPad、智能手機(jī)等。該集群可以包括多個節(jié)點(diǎn)設(shè)備,該節(jié)點(diǎn)設(shè)備可以是具有計算能力的計算設(shè)備;該集群同時布署有MapReduce服務(wù)組件和KeyValue數(shù)據(jù)庫,以及分布式文件系統(tǒng)。MapReduce服務(wù)組件具有高性能的并行計算能力,可以為KeyValue數(shù)據(jù)庫批量加載數(shù)據(jù)。KeyValue數(shù)據(jù)庫可以響應(yīng)終端的讀寫請求,為終端用戶提供查詢服務(wù)。分布式文件系統(tǒng)可以為KeyValue數(shù)據(jù)庫提供高可靠性的底層存儲支持。示例性的,該集群具體可以是Hadoop集群,該分布式文件系統(tǒng)具體可以是HDFS(HadoopDistributedFileSystem),該KeyValue數(shù)據(jù)庫具體可以是HBase。其中,在利用MapReduce服務(wù)組件為KeyValue數(shù)據(jù)庫批量加載數(shù)據(jù)時,終端可以向集群提交一個數(shù)據(jù)加載請求,MapReduce服務(wù)組件中的一個管理節(jié)點(diǎn)接收到數(shù)據(jù)加載請求后,執(zhí)行MapReduce任務(wù)。具體的,MapReduce任務(wù)包括Map任務(wù)和Reduce任務(wù),其中,執(zhí)行Map任務(wù)的階段可以包括Shuffle階段,執(zhí)行Reduce任務(wù)的階段可以包括Sort階段。集群執(zhí)行Map任務(wù)讀取源數(shù)據(jù),并對源數(shù)據(jù)進(jìn)行解析得到中間數(shù)據(jù)<Key,Value>對;再將執(zhí)行Map任務(wù)解析得到的<Key,Value>對,在Shuffle階段按照key寫到數(shù)據(jù)分區(qū)Partition中,以便執(zhí)行Reduce任務(wù)時從該P(yáng)artition獲取數(shù)據(jù)??蛇x地,可以在執(zhí)行Reduce任務(wù)時首先對Partition中的<Key,Value>對進(jìn)行Sort處理。每個Reduce任務(wù)對應(yīng)一個數(shù)據(jù)分區(qū)Partition,每個Partition對應(yīng)KeyValue數(shù)據(jù)庫中的一個數(shù)據(jù)分區(qū)Region。每個Reduce任務(wù)生成對應(yīng)Partition的目標(biāo)文件。其中,Reduce階段任務(wù)生成的目標(biāo)文件供KeyValue數(shù)據(jù)庫的查詢服務(wù)使用,因此Reduce任務(wù)生成的目標(biāo)文件滿足KeyValue數(shù)據(jù)庫定義的文件存儲格式。而后,集群從分布式文件系統(tǒng)中將Reduce任務(wù)生成的目標(biāo)文件加載至KeyValue數(shù)據(jù)庫中,以供查詢使用。在圖2所示的系統(tǒng)架構(gòu)中,由于MapReduce服務(wù)組件執(zhí)行MapReduce任務(wù)的進(jìn)程與KeyValue數(shù)據(jù)庫執(zhí)行的查詢服務(wù)的進(jìn)程位于同一集群中,MapReduce服務(wù)組件在執(zhí)行批量加載數(shù)據(jù)任務(wù)的過程中,需要讀取大量的數(shù)據(jù),并且涉及到排序和分區(qū)等大量的計算,使得整個集群的負(fù)載很大,資源使用率非常高,從而極大地影響了集群中KeyValue數(shù)據(jù)庫的讀寫時延,降低了KeyValue數(shù)據(jù)庫的查詢性能。針對該問題,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)加載方法、終端和計算系統(tǒng),通過將MapReduce服務(wù)組件和KeyValue數(shù)據(jù)庫分別設(shè)置在不同的集群中,來降低KeyValue數(shù)據(jù)庫所在集群的負(fù)載,降低KeyValue數(shù)據(jù)庫的讀寫時延,提高KeyValue數(shù)據(jù)庫的查詢性能;同時MapReduce服務(wù)組件能夠獲得足夠的資源來執(zhí)行MapReduce任務(wù),提高了MapReduce任務(wù)的執(zhí)行效率。如圖3所示,本發(fā)明實(shí)施例提供的數(shù)據(jù)加載方法所涉及的系統(tǒng)架構(gòu)可以包括查詢集群和計算集群兩個不同集群,以及終端,每個集群中均可以包括多個節(jié)點(diǎn)設(shè)備,該節(jié)點(diǎn)設(shè)備可以是具有計算能力的計算設(shè)備。查詢集群布署有KeyValue數(shù)據(jù)庫和分布式文件系統(tǒng),可以為用戶提供查詢服務(wù)。示例性的,該KeyValue數(shù)據(jù)庫具體可以是GoogleBigtable、ApacheHBase或ApacheCassandra等。計算集群布署有MapReduce服務(wù)組件和分布式文件系統(tǒng),可以保存有源數(shù)據(jù)文件并執(zhí)行MapReduce任務(wù),為KeyValue數(shù)據(jù)庫批量加載數(shù)據(jù)。其中,查詢集群中的分布式文件系統(tǒng)和計算集群中的分布式文件系統(tǒng),可以是兩個分別獨(dú)立的分布式文件系統(tǒng),也可以是兩個集群共享的同一個分布式文件系統(tǒng),這里不作具體限定?;趫D3所示的系統(tǒng)架構(gòu),本發(fā)明實(shí)施例提供一種數(shù)據(jù)加載方法,參見圖4,該方法可以包括:101、終端向計算集群發(fā)送數(shù)據(jù)加載請求,數(shù)據(jù)加載請求攜帶有待加載數(shù)據(jù)表的分區(qū)信息,數(shù)據(jù)加載請求指示計算集群根據(jù)分區(qū)信息確定第一數(shù)據(jù)分區(qū),分區(qū)信息指示的所有分區(qū)分別綁定一個第一數(shù)據(jù)分區(qū),第一數(shù)據(jù)分區(qū)用于存儲對于第一數(shù)據(jù)分區(qū)綁定的分區(qū)中的源數(shù)據(jù)執(zhí)行映射任務(wù)所得的中間數(shù)據(jù),以便對第一數(shù)據(jù)分區(qū)中的中間數(shù)據(jù)執(zhí)行歸約任務(wù)來獲取目標(biāo)文件。在圖3所示的系統(tǒng)架構(gòu)中,計算集群布署有MapReduce服務(wù)組件,終端可以向計算集群發(fā)送數(shù)據(jù)加載請求,以請求利用計算集群中的各項(xiàng)資源執(zhí)行MapReduce任務(wù),從而在MapReduce任務(wù)執(zhí)行完成后進(jìn)行數(shù)據(jù)加載。其中,數(shù)據(jù)加載請求中攜帶有待加載數(shù)據(jù)表的分區(qū)信息,該分區(qū)指示信息用于指示至少一個分區(qū)。該數(shù)據(jù)加載請求可以指示計算集群根據(jù)其中的分區(qū)信息,確定與分區(qū)信息指示的分區(qū)一一綁定的第一數(shù)據(jù)分區(qū)。第一數(shù)據(jù)分區(qū)可以用于存儲,與第一數(shù)據(jù)分區(qū)綁定的分區(qū)中的源數(shù)據(jù)執(zhí)行映射任務(wù)后所得的中間數(shù)據(jù),從而使得計算集群可以對第一數(shù)據(jù)分區(qū)中的中間數(shù)據(jù)執(zhí)行歸約任務(wù),進(jìn)而獲取目標(biāo)文件。具體的,第一數(shù)據(jù)分區(qū)可以為圖3所示計算集群中的數(shù)據(jù)分區(qū)Partition。102、計算集群在接收到終端發(fā)送的數(shù)據(jù)加載請求后,根據(jù)分區(qū)信息確定第一數(shù)據(jù)分區(qū)。計算集群在接收到終端發(fā)送的攜帶有分區(qū)指示信息的數(shù)據(jù)加載請求后,可以根據(jù)分區(qū)信息確定與分區(qū)信息指示的分區(qū)一一綁定的第一數(shù)據(jù)分區(qū)。示例性的,當(dāng)分區(qū)指示信息指示的分區(qū)為3個時,計算集群確定的第一數(shù)據(jù)分區(qū)也為3個,具體可以為圖3所示系統(tǒng)架構(gòu)中的第一數(shù)據(jù)分區(qū)A(PartitionA)、第一數(shù)據(jù)分區(qū)B(PartitionB)和第一數(shù)據(jù)分區(qū)C(PartitionC)。103、計算集群從分布式文件系統(tǒng)中分別獲取分區(qū)信息指示的每個分區(qū)的源數(shù)據(jù),對每個分區(qū)的源數(shù)據(jù)分別執(zhí)行映射任務(wù)。計算集群在接收到數(shù)據(jù)加載請求后,執(zhí)行MapReduce任務(wù)。具體的,計算集群可以首先從分布式文件系統(tǒng)中分別獲取分區(qū)信息指示的每個分區(qū)的源數(shù)據(jù),并對每個分區(qū)的源數(shù)據(jù)分別執(zhí)行映射Map任務(wù),得到中間數(shù)據(jù)<Key,Value>對。104、計算集群根據(jù)分區(qū)信息指示的分區(qū)與第一數(shù)據(jù)分區(qū)的綁定關(guān)系,將執(zhí)行每個映射任務(wù)所得的中間數(shù)據(jù)對應(yīng)地寫入第一數(shù)據(jù)分區(qū)。其中,計算集群執(zhí)行映射Map任務(wù)的階段可以包括Shuffle階段。計算集群在執(zhí)行Map任務(wù)解析得到<Key,Value>對后,可以在Shuffle階段,按照key將對每個分區(qū)的源數(shù)據(jù)執(zhí)行映射Map任務(wù)所得的中間數(shù)據(jù)<Key,Value>對,對應(yīng)地寫到每個分區(qū)對應(yīng)的第一數(shù)據(jù)分區(qū)Partition中。105、計算集群對每個第一數(shù)據(jù)分區(qū)中的中間數(shù)據(jù)分別執(zhí)行歸約任務(wù),執(zhí)行得到每個歸約任務(wù)的目標(biāo)文件,目標(biāo)文件供在KeyValue數(shù)據(jù)庫的加載數(shù)據(jù)表進(jìn)行數(shù)據(jù)查詢使用。在將執(zhí)行每個映射Map任務(wù)所得的中間數(shù)據(jù)對應(yīng)地寫入第一數(shù)據(jù)分區(qū)之后,計算集群可以對每個第一數(shù)據(jù)分區(qū)中的中間數(shù)據(jù)<Key,Value>對,分別執(zhí)行歸約Reduce任務(wù),從而得到每個第一數(shù)據(jù)分區(qū)的歸約Reduce任務(wù)對應(yīng)的目標(biāo)文件。其中,該目標(biāo)文件的格式遵循KeyValue數(shù)據(jù)庫定義的文件存儲格式,從而可以供KeyValue數(shù)據(jù)庫的加載數(shù)據(jù)表進(jìn)行數(shù)據(jù)查詢使用。示例性的,當(dāng)KeyValue數(shù)據(jù)庫為HBase時,目標(biāo)文件可以為HFile格式??梢姡景l(fā)明實(shí)施例提供的數(shù)據(jù)加載方法,通過計算集群中的資源執(zhí)行MapReduce任務(wù),生成與KeyValue數(shù)據(jù)庫定義的文件存儲格式相同的目標(biāo)文件,以供在查詢集群中KeyValue數(shù)據(jù)庫的加載數(shù)據(jù)表進(jìn)行數(shù)據(jù)查詢使用。其中,由于執(zhí)行MapReduce任務(wù)的是計算集群,與為用戶提供查詢服務(wù)的查詢集群是相互獨(dú)立的兩個集群,因而即使在執(zhí)行MapReduce任務(wù)的過程中,會占用大量的CPU、I/O口等資源,但這些資源為計算集群中的資源,而不會占用查詢集群的相關(guān)資源,從而可以使得查詢集群的負(fù)載較低,降低查詢集群中KeyValue數(shù)據(jù)庫的讀寫時延,提高KeyValue數(shù)據(jù)庫的查詢性能。也就是說,本發(fā)明實(shí)施例提供的數(shù)據(jù)加載方法,通過將MapReduce服務(wù)組件和KeyValue數(shù)據(jù)庫分別布署在不同的集群中,可以避免占用大量資源的MapReduce任務(wù)進(jìn)程對查詢服務(wù)進(jìn)程的影響,從而降低KeyValue數(shù)據(jù)庫所在集群的負(fù)載,提高KeyValue數(shù)據(jù)庫的查詢性能。此外,在上述步驟101中,數(shù)據(jù)加載請求還可以攜帶有源數(shù)據(jù)文件存儲路徑和輸出路徑。計算集群可以在步驟103中,從源數(shù)據(jù)文件存儲路下獲取源數(shù)據(jù),并在步驟105中生成與每個第一數(shù)據(jù)分區(qū)對應(yīng)的目標(biāo)文件后,將這些目標(biāo)文件存儲在輸出路徑下。需要說明的是,計算集群在生成目標(biāo)文件后,具體可以將目標(biāo)文件保存在本地磁盤中,也可以將目標(biāo)文件保存在分布式文件系統(tǒng)中。并且,計算集群的分布式文件系統(tǒng)可以是與查詢集群的分布式文件系統(tǒng)相互獨(dú)立的分布式文件系統(tǒng),也可以是與查詢集群的分布式文件系統(tǒng)共享的同一個分布式文件系統(tǒng)。一方面,在計算集群將目標(biāo)文件存儲在本地磁盤或者與查詢集群的分布式文件系統(tǒng)相獨(dú)立的分布式文件系統(tǒng)中的情況下,參見圖5,在步驟105之后,該方法還可以包括:106、終端請求計算集群將每個第一數(shù)據(jù)分區(qū)對應(yīng)的目標(biāo)文件發(fā)送至查詢集群,以便在KeyValue數(shù)據(jù)庫的待加載數(shù)據(jù)表進(jìn)行數(shù)據(jù)查詢時使用目標(biāo)文件。107、計算集群將每個第一數(shù)據(jù)分區(qū)對應(yīng)的目標(biāo)文件發(fā)送至查詢集群。108、查詢集群接收計算集群發(fā)送的每個第一數(shù)據(jù)分區(qū)對應(yīng)的目標(biāo)文件。109、查詢集群將每個第一數(shù)據(jù)分區(qū)對應(yīng)的目標(biāo)文件加載至KeyValue數(shù)據(jù)庫中,以便在KeyValue數(shù)據(jù)庫的待加載數(shù)據(jù)表進(jìn)行數(shù)據(jù)查詢時使用目標(biāo)文件。該種情況下,終端可以請求計算集群將計算集群的本地磁盤或分布式文件系統(tǒng)中保存的每個第一數(shù)據(jù)分區(qū)對應(yīng)的目標(biāo)文件,發(fā)送給查詢集群;查詢集群在接收到計算集群發(fā)送的每個第一數(shù)據(jù)分區(qū)對應(yīng)的目標(biāo)文件后,可以將每個第一數(shù)據(jù)分區(qū)對應(yīng)的目標(biāo)文件保存在本地磁盤,或者保存在查詢集群使用的分布式文件系統(tǒng)(與計算集群的分布式文件系統(tǒng)獨(dú)立的分布式文件系統(tǒng))中,以便可以將本地磁盤或分布式文件系統(tǒng)中的目標(biāo)文件加載至KeyValue數(shù)據(jù)庫中,供KeyValue數(shù)據(jù)庫的待加載數(shù)據(jù)表進(jìn)行數(shù)據(jù)查詢時使用。另一方面,在計算集群將目標(biāo)文件存儲在與查詢集群的分布式文件系統(tǒng)共享的同一個分布式文件系統(tǒng)中的情況下,計算集群不需要將目標(biāo)文件發(fā)送至查詢集群。在步驟105之后,該方法還可以包括:110、查詢集群從分布式文件系統(tǒng)中獲取目標(biāo)文件。在步驟105之后,查詢集群可以直接從與計算集群共享的分布式文件系統(tǒng)中獲取目標(biāo)文件來進(jìn)行數(shù)據(jù)加載,以便在KeyValue數(shù)據(jù)庫的待加載數(shù)據(jù)表進(jìn)行數(shù)據(jù)查詢時使用獲取的目標(biāo)文件。其中,查詢集群具體可以根據(jù)分區(qū)信息,從與計算集群共享的分布式文件系統(tǒng)中獲取每個第一數(shù)據(jù)分區(qū)對應(yīng)的目標(biāo)文件。進(jìn)一步地,參見圖6,在上述步驟101之前,該方法還可以包括:111、終端向查詢集群請求待加載數(shù)據(jù)表的分區(qū)信息。其中,終端向查詢集群請求的待加載數(shù)據(jù)表的分區(qū)信息用于指示待加載數(shù)據(jù)表對應(yīng)的至少一個分區(qū)。分區(qū)信息的表示形式可以有多種,本發(fā)明實(shí)施例對其具體形式不作限定。在KeyValue數(shù)據(jù)庫中,待加載數(shù)據(jù)表中的數(shù)據(jù)對應(yīng)一個Key值范圍,待加載數(shù)據(jù)表可以根據(jù)Key值范圍劃分為至少一個分區(qū),分區(qū)信息指示的每個分區(qū)的Key值范圍不同。其中,Key是一個關(guān)鍵字,具體可以是待加載數(shù)據(jù)表中的一個字段、屬性或特征。示例性的,KeyValue數(shù)據(jù)庫中的待加載數(shù)據(jù)表為“用戶信息表”,“用戶信息表”具體包括“身份標(biāo)識”、“姓名”、“電話”和“地址”4個字段,用戶的“身份標(biāo)識”的范圍為00000000-29999999。該“用戶數(shù)據(jù)表”的具體格式可以參見如下表1:表1身份標(biāo)識姓名電話地址00000000………00000001………00000002…………………29999999………在表1所示的待加載數(shù)據(jù)表中,若key為“身份標(biāo)識”這一字段,則待加載數(shù)據(jù)表對應(yīng)的Key值范圍為00000000-29999999。待加載數(shù)據(jù)表可以根據(jù)分界點(diǎn)Key值劃分分區(qū)。例如,當(dāng)分界點(diǎn)Key值為10000000和20000000時,待加載數(shù)據(jù)表可以劃分為3個分區(qū):與Key值范圍00000000-09999999對應(yīng)的分區(qū)1,與Key值范圍10000000-19999999對應(yīng)的分區(qū)2,以及與Key值范圍20000000-29999999對應(yīng)的分區(qū)3。在該示例中,分區(qū)指示信息可以為待加載數(shù)據(jù)表對應(yīng)的Key范圍00000000-29999999,以及分界點(diǎn)Key值10000000和20000000。該分區(qū)指示信息指示待加載數(shù)據(jù)表對應(yīng)3個分區(qū),且分區(qū)1對應(yīng)的Key值范圍為00000000-09999999,分區(qū)2對應(yīng)的Key值范圍為10000000-19999999,分區(qū)3對應(yīng)的Key值范圍為20000000-29999999。當(dāng)分區(qū)信息指示的每個分區(qū)的Key值范圍不同時,對于具有綁定關(guān)系的分區(qū)與第一數(shù)據(jù)分區(qū),分區(qū)的源數(shù)據(jù)與第一數(shù)據(jù)分區(qū)的中間數(shù)據(jù)具有相同的Key值范圍。示例性的,當(dāng)分區(qū)1對應(yīng)的Key值范圍為00000000-09999999,分區(qū)2對應(yīng)的Key值范圍為10000000-19999999,分區(qū)3對應(yīng)的Key值范圍為20000000-29999999時,若分區(qū)1綁定的第一數(shù)據(jù)分區(qū)為PartitionA,分區(qū)2綁定的第一數(shù)據(jù)分區(qū)為PartitionB,分區(qū)3綁定的第一數(shù)據(jù)分區(qū)為PartitionC,則:PartitionA的源數(shù)據(jù)以及PartitionA的中間數(shù)據(jù)對應(yīng)Key值范圍00000000-09999999;PartitionB的源數(shù)據(jù)以及PartitionB的中間數(shù)據(jù)對應(yīng)Key值范圍10000000-19999999;PartitionC的源數(shù)據(jù)以及PartitionC的中間數(shù)據(jù)對應(yīng)Key值范圍20000000-29999999。從而,在步驟103中,計算集群可以從分布式文件系統(tǒng)中獲取與分區(qū)1對應(yīng)的源數(shù)據(jù),源數(shù)據(jù)的Key值范圍為00000000-09999999;并且,在步驟104中,計算集群可以將執(zhí)行映射Map任務(wù)得到的Key值范圍在00000000-09999999之間的中間數(shù)據(jù),對應(yīng)地寫入PartitionA中。類似地,計算集群可以從分布式文件系統(tǒng)中獲取與分區(qū)2對應(yīng)的源數(shù)據(jù),源數(shù)據(jù)的Key值范圍為10000000-19999999;并且,在步驟104中,計算集群可以將執(zhí)行映射Map任務(wù)得到的Key值范圍在10000000-19999999之間的中間數(shù)據(jù),對應(yīng)地寫入PartitionB中。并且,計算集群可以從分布式文件系統(tǒng)中獲取與分區(qū)3對應(yīng)的源數(shù)據(jù),源數(shù)據(jù)的Key值范圍為20000000-29999999;并且,在步驟104中,計算集群可以將執(zhí)行映射Map任務(wù)得到的Key值范圍在20000000-29999999之間的中間數(shù)據(jù),對應(yīng)地寫入PartitionC中。進(jìn)一步地,查詢集群中還可以具有第二數(shù)據(jù)分區(qū),所有第二數(shù)據(jù)分區(qū)對應(yīng)的Key值范圍與第一數(shù)據(jù)分區(qū)對應(yīng)的Key值范圍相同,第二數(shù)據(jù)分區(qū)用于存儲對應(yīng)Key值范圍的目標(biāo)文件。在此基礎(chǔ)上,查詢集群在步驟108中接收計算集群發(fā)送的每個第一數(shù)據(jù)分區(qū)對應(yīng)的目標(biāo)文件后,還可以包括:查詢集群將每個第一數(shù)據(jù)分區(qū)對應(yīng)的目標(biāo)文件,分別保存至與每個第一數(shù)據(jù)分區(qū)對應(yīng)相同Key值范圍的第二數(shù)據(jù)分區(qū)中,從而將每個第二數(shù)據(jù)分區(qū)對應(yīng)的目標(biāo)文件加載至KeyValue數(shù)據(jù)庫中,以便在KeyValue數(shù)據(jù)庫的待加載數(shù)據(jù)表進(jìn)行數(shù)據(jù)查詢時使用該目標(biāo)文件。查詢集群在步驟110中直接從與計算集群共享的分布式文件系統(tǒng)中,獲取每個第一數(shù)據(jù)分區(qū)對應(yīng)的目標(biāo)文件之后,還可以將每個第一數(shù)據(jù)分區(qū)對應(yīng)的目標(biāo)文件,分別保存至與每個第一數(shù)據(jù)分區(qū)對應(yīng)相同Key值范圍的第二數(shù)據(jù)分區(qū)中,從而將每個第二數(shù)據(jù)分區(qū)對應(yīng)的目標(biāo)文件加載至KeyValue數(shù)據(jù)庫中,以便在KeyValue數(shù)據(jù)庫的待加載數(shù)據(jù)表進(jìn)行數(shù)據(jù)查詢時使用該目標(biāo)文件。示例性的,查詢集群中的第二數(shù)據(jù)分區(qū)可以為如圖3所示的Region。其中,Region1可以與PartitionA對應(yīng)相同的Key值范圍00000000-09999999,Region1可以用于存儲對應(yīng)Key值范圍00000000-09999999的目標(biāo)文件。Region2可以與PartitionB對應(yīng)相同的Key值范圍10000000-19999999,Region2可以用于存儲對應(yīng)Key值范圍10000000-19999999的目標(biāo)文件。Region3可以與PartitionC對應(yīng)相同的Key值范圍20000000-29999999,Region3可以用于存儲對應(yīng)Key值范圍20000000-29999999的目標(biāo)文件。在步驟108或110中,查詢集群可以將Key值范圍00000000-09999999對應(yīng)的目標(biāo)文件,存儲至第二數(shù)據(jù)分區(qū)Region1中;將Key值范圍10000000-19999999對應(yīng)的目標(biāo)文件,存儲至第二數(shù)據(jù)分區(qū)Region2中;將Key值范圍20000000-29999999對應(yīng)的目標(biāo)文件,存儲至第二數(shù)據(jù)分區(qū)Region3中,以便在KeyValue數(shù)據(jù)庫的待加載數(shù)據(jù)表進(jìn)行數(shù)據(jù)查詢時使用該目標(biāo)文件。另外,終端向查詢集群請求待加載數(shù)據(jù)表的分區(qū)信息時,還可以將待加載數(shù)據(jù)表的標(biāo)識信息發(fā)送給查詢集群,以使得查詢集群可以根據(jù)待加載數(shù)據(jù)表的標(biāo)識信息,確定待加載數(shù)據(jù)表以及待加載數(shù)據(jù)表的分區(qū)信息。其中,待加載數(shù)據(jù)表的標(biāo)識信息用于指示待加載數(shù)據(jù)表,例如可以為待加載數(shù)據(jù)表的表名、編號等,這里不做具體限定。此外,終端上還可以保存有查詢集群的連接配置集和計算集群的連接配置集。其中,連接配置集用于保存終端與查詢集群/計算集群建立連接時需要的配置信息,本發(fā)明實(shí)施例對連接配置集的具體內(nèi)容不做具體限定。示例性的,該連接配置集可以包括網(wǎng)絡(luò)協(xié)議IP地址、端口和安全訪問配置信息中的至少一個。其中,連接配置集中的IP地址可以是查詢集群/計算集群中管理節(jié)點(diǎn)的IP地址,也可以包括查詢集群/計算集群中所有節(jié)點(diǎn)的IP地址;連接配置集中的端口可以是提供相關(guān)服務(wù)的端口。進(jìn)一步地,參見圖6,在上述步驟111之前,該方法還可以包括:112、終端根據(jù)查詢集群的連接配置集向查詢集群發(fā)送第一建立連接請求。在上述步驟101之前,該方法還可以包括:113、終端根據(jù)計算集群的連接配置集向計算集群發(fā)送第二建立連接請求。進(jìn)一步地,在上述步驟112之前,該方法還可以包括:114、終端啟動數(shù)據(jù)加載任務(wù)。其中,數(shù)據(jù)加載任務(wù)是指向查詢集群中的KeyValue數(shù)據(jù)庫加載數(shù)據(jù)的任務(wù)。終端啟動數(shù)據(jù)加載任務(wù)的具體方式可以有多種,例如終端可以接收用戶輸入的觸發(fā)指令,從而啟動批量數(shù)據(jù)加載任務(wù);終端開機(jī)后自動啟動批量數(shù)據(jù)加載任務(wù);或者終端周期性地啟動批量數(shù)據(jù)加載任務(wù)等,這里不做具體限定。本發(fā)明實(shí)施例提供一種計算集群700,參見圖7,該計算集群700可以包括接收模塊701、確定模塊702、執(zhí)行模塊703、寫入模塊704和發(fā)送模塊705。具體的,該計算集群700可以包括多個計算節(jié)點(diǎn),該計算節(jié)點(diǎn)可以是具有計算能力的計算設(shè)備;計算集群700中的至少一個計算節(jié)點(diǎn)用于部署計算集群700各模塊的功能。其中,接收模塊701可以用于,接收數(shù)據(jù)加載請求,數(shù)據(jù)加載請求攜帶有待加載數(shù)據(jù)表的分區(qū)信息;確定模塊702可以用于,根據(jù)分區(qū)信息確定第一數(shù)據(jù)分區(qū),其中,分區(qū)信息指示的所有分區(qū)分別綁定一個第一數(shù)據(jù)分區(qū);執(zhí)行模塊703可以用于,從分布式文件系統(tǒng)中分別獲取分區(qū)信息指示的每個分區(qū)的源數(shù)據(jù),對每個分區(qū)的源數(shù)據(jù)分別執(zhí)行映射任務(wù);寫入模塊704可以用于,根據(jù)分區(qū)信息指示的分區(qū)與第一數(shù)據(jù)分區(qū)的綁定關(guān)系,將執(zhí)行每個映射任務(wù)所得的中間數(shù)據(jù)對應(yīng)地寫入第一數(shù)據(jù)分區(qū);執(zhí)行模塊703還可以用于,對每個第一數(shù)據(jù)分區(qū)中的中間數(shù)據(jù)分別執(zhí)行歸約任務(wù),執(zhí)行得到每個歸約任務(wù)的目標(biāo)文件,目標(biāo)文件供查詢集群的KeyValue數(shù)據(jù)庫的加載數(shù)據(jù)表進(jìn)行數(shù)據(jù)查詢使用。此外,發(fā)送模塊705可以用于執(zhí)行圖5中的步驟107。圖7中的計算集群700可以用于執(zhí)行上述方法流程中的任一流程,本發(fā)明實(shí)施例在此不再詳述。本發(fā)明實(shí)施例還提供了一種計算機(jī)存儲介質(zhì),用于儲存為上述圖7所示計算集群所用的計算機(jī)軟件指令,包含用于執(zhí)行上述方法實(shí)施例所設(shè)計的程序。通過執(zhí)行存儲的所述程序,可以實(shí)現(xiàn)數(shù)據(jù)加載。本發(fā)明實(shí)施例提供一種終端800,參見圖8,該終端800可以包括發(fā)送模塊801和請求模塊802。其中,發(fā)送模塊801可以用于,向計算集群發(fā)送數(shù)據(jù)加載請求,數(shù)據(jù)加載請求攜帶有待加載數(shù)據(jù)表的分區(qū)信息,數(shù)據(jù)加載請求指示計算集群根據(jù)分區(qū)信息確定第一數(shù)據(jù)分區(qū),分區(qū)信息指示的所有分區(qū)分別綁定一個第一數(shù)據(jù)分區(qū),第一數(shù)據(jù)分區(qū)用于存儲對于第一數(shù)據(jù)分區(qū)綁定的分區(qū)中的源數(shù)據(jù)執(zhí)行映射任務(wù)所得的中間數(shù)據(jù),以便對第一數(shù)據(jù)分區(qū)中的中間數(shù)據(jù)執(zhí)行歸約任務(wù)來獲取目標(biāo)文件。請求模塊802可以用于,請求計算集群將每個第一數(shù)據(jù)分區(qū)對應(yīng)的目標(biāo)文件發(fā)送至查詢集群,以便在查詢集群的KeyValue數(shù)據(jù)庫的待加載數(shù)據(jù)表進(jìn)行數(shù)據(jù)查詢時使用目標(biāo)文件。此外,請求模塊802可以用于執(zhí)行圖6中的步驟111。圖8中的終端800可以用于執(zhí)行上述方法流程中的任一流程,本發(fā)明實(shí)施例在此不再詳述。本發(fā)明實(shí)施例還提供了一種計算機(jī)存儲介質(zhì),用于儲存為上述圖8所示終端所用的計算機(jī)軟件指令,其包含用于執(zhí)行上述方法實(shí)施例所設(shè)計的程序。通過執(zhí)行存儲的所述程序,可以實(shí)現(xiàn)數(shù)據(jù)加載。本發(fā)明實(shí)施例提供一種查詢集群900,參見圖9,該查詢集群900可以包括接收模塊901和加載模塊902。具體的,該查詢集群900可以包括多個查詢節(jié)點(diǎn),該查詢節(jié)點(diǎn)可以是具有計算能力的計算設(shè)備;查詢集群900中的至少一個查詢節(jié)點(diǎn)用于部署查詢集群900各模塊的功能。其中,接收模塊901可以用于,接收計算集群發(fā)送的每個第一數(shù)據(jù)分區(qū)對應(yīng)的目標(biāo)文件。加載模塊902可以用于,將每個第一數(shù)據(jù)分區(qū)對應(yīng)的目標(biāo)文件加載至KeyValue數(shù)據(jù)庫中,以便在KeyValue數(shù)據(jù)庫的待加載數(shù)據(jù)表進(jìn)行數(shù)據(jù)查詢時使用目標(biāo)文件。此外,圖9中的查詢集群900可以用于執(zhí)行上述方法流程中的任一流程,本發(fā)明實(shí)施例在此不再詳述。本發(fā)明實(shí)施例還提供了一種計算機(jī)存儲介質(zhì),用于儲存為上述圖9所示查詢集群所用的計算機(jī)軟件指令,其包含用于執(zhí)行上述方法實(shí)施例所設(shè)計的程序。通過執(zhí)行存儲的所述程序,可以實(shí)現(xiàn)數(shù)據(jù)加載。參見圖10,本發(fā)明實(shí)施例還提供一種計算設(shè)備1000,計算設(shè)備1000包括至少一個處理器1001、存儲器1002和通信接口1003;所述至少一個處理器1001、所述存儲器1002和所述通信接口1003均通過總線1004連接;所述存儲器1002,用于存儲計算機(jī)執(zhí)行指令;所述至少一個處理器1001,用于執(zhí)行所述存儲器1002存儲的計算機(jī)執(zhí)行指令,使得所述計算設(shè)備1000通過所述通信接口1003與其它具有計算能力的設(shè)備(例如查詢集群中的查詢節(jié)點(diǎn)、終端或者計算集群中的計算節(jié)點(diǎn))進(jìn)行數(shù)據(jù)交互,來執(zhí)行上述實(shí)施例提供的數(shù)據(jù)加載方法。一種可選實(shí)施例,本發(fā)明實(shí)施例提供的計算集群包括的計算節(jié)點(diǎn)為計算設(shè)備1000,所述計算集群的計算設(shè)備1000通過所述通信接口1003,與計算集群中的其它計算設(shè)備1000、終端和查詢集群的查詢節(jié)點(diǎn)進(jìn)行數(shù)據(jù)交互,來執(zhí)行上述實(shí)施例提供的數(shù)據(jù)加載方法。一種可選實(shí)施例,本發(fā)明實(shí)施例提供的查詢集群包括的查詢節(jié)點(diǎn)為計算設(shè)備1000,所述查詢集群的計算設(shè)備1000通過所述通信接口1003,與查詢集群中的其它計算設(shè)備1000、終端和計算集群的計算節(jié)點(diǎn)進(jìn)行數(shù)據(jù)交互來執(zhí)行上述實(shí)施例提供的數(shù)據(jù)加載方法。一種可選實(shí)施例,本發(fā)明實(shí)施例提供的終端為計算設(shè)備1000,所述計算設(shè)備1000通過所述通信接口1003,與計算集群的計算節(jié)點(diǎn)和查詢集群的查詢節(jié)點(diǎn)進(jìn)行數(shù)據(jù)交互,來執(zhí)行上述實(shí)施例提供的數(shù)據(jù)加載方法??蛇x地,至少一個處理器1001,可以包括不同類型的處理器1001,或者包括相同類型的處理器1001;處理器1001可以是以下的任一種:中央處理器CPU、ARM處理器、現(xiàn)場可編程門陣列(FieldProgrammableGateArray,簡稱FPGA)、專用處理器等具有計算處理能力的器件。一種可選實(shí)施方式,所述至少一個處理器1001還可以集成為眾核處理器??蛇x地,存儲器1002可以是以下的任一種或任一種組合:隨機(jī)存取存儲器(RandomAccessMemory,簡稱RAM)、只讀存儲器(ReadOnlyMemory,簡稱ROM)、非易失性存儲器(Non-volatileMemory,簡稱NVM)、固態(tài)硬盤(SolidStateDrives,簡稱SSD)、機(jī)械硬盤、磁盤、磁盤陣列等存儲介質(zhì)??蛇x地,通信接口1003用于計算設(shè)備1000與其他具有計算能力或者存儲能力的設(shè)備進(jìn)行數(shù)據(jù)交互。通信接口1003可以是以下的任一種或任一種組合:網(wǎng)絡(luò)接口(例如以太網(wǎng)接口)、無線網(wǎng)卡等具有網(wǎng)絡(luò)接入功能的器件。該總線1004可以包括地址總線、數(shù)據(jù)總線、控制總線等,為便于表示,圖10用一條粗線表示該總線??偩€1004可以是以下的任一種或任一種組合:工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(IndustryStandardArchitecture,簡稱ISA)總線、外設(shè)組件互連標(biāo)準(zhǔn)(PeripheralComponentInterconnect,簡稱PCI)總線、擴(kuò)展工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(ExtendedIndustryStandardArchitecture,簡稱EISA)總線等有線數(shù)據(jù)傳輸?shù)钠骷?。本發(fā)明另一實(shí)施例提供一種通信系統(tǒng),可以包括終端、計算集群和查詢集群,該通信系統(tǒng)的結(jié)構(gòu)示意圖可以參見圖3。該通信系統(tǒng)中的終端、計算集群和查詢集群可以執(zhí)行上述方法實(shí)施例中的數(shù)據(jù)加載方法。最后應(yīng)說明的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。當(dāng)前第1頁1 2 3 當(dāng)前第1頁1 2 3