本申請涉及數(shù)據(jù)庫
技術領域:
:,特別涉及一種數(shù)據(jù)處理的方法、存儲節(jié)點及協(xié)調(diào)節(jié)點。
背景技術:
::社會各行業(yè)的業(yè)務系統(tǒng)越來越互聯(lián)網(wǎng)化,服務的范圍無限擴大化,導致海量用戶、海量智能設備的參與,從而導致數(shù)據(jù)爆發(fā)性的增長。傳統(tǒng)基于單機的數(shù)據(jù)庫技術已經(jīng)無法支撐海量數(shù)據(jù)的分析處理,在此情況下,基于mpp(massivelyparallelprocessing)并行計算的并行數(shù)據(jù)庫集群應運而生。在這些使用場景中,常常存在數(shù)據(jù)量很大的表,而且這種表的字段很多,甚至能達到幾百個字段。為了取得較好的性能,這樣的大表都會做水平分區(qū)(根據(jù)某個字段做hash分區(qū),或者隨機分布),將表中數(shù)據(jù)分布到集群的不同節(jié)點上。在表中數(shù)據(jù)分布到集群的不同節(jié)點上,在進行大表間的表連接操作(join操作)時,如果節(jié)點間傳輸?shù)臄?shù)據(jù)量很大,一般通過把數(shù)據(jù)打包壓縮的方式進行傳輸,這種方案在一定程度上減少了節(jié)點間數(shù)據(jù)傳輸量,但是在接收到數(shù)據(jù)后還需要解壓縮后才能進行下一步操作,因此在內(nèi)存占用量上沒有變化;,因為數(shù)據(jù)傳輸量變小,節(jié)點間數(shù)據(jù)傳輸時間變短,因此總執(zhí)行時間變短。但是上述方案雖然使用壓縮技術減少了節(jié)點間數(shù)據(jù)傳輸量,但是不必要的數(shù)據(jù)量只是減少了,并沒有完全消失,同時內(nèi)存占用量并沒有減少,在數(shù)據(jù)壓縮后解壓縮占用了中央處理器(centralprocessingunit,cpu)時間,即雖然傳輸時間減少,但cpu處理時間增加,總執(zhí)行時間并沒有顯著減少。技術實現(xiàn)要素:本申請實施例提供了一種數(shù)據(jù)處理的方法、存儲節(jié)點及協(xié)調(diào)節(jié)點,大大降低了表連接操作時節(jié)點間數(shù)據(jù)的傳輸,極大節(jié)省了網(wǎng)絡帶寬,同時減少了表連接操作的總執(zhí)行時間。一方面,本申請的實施例提供一種數(shù)據(jù)處理的方法,應用于并行計算的并行數(shù)據(jù)庫集群mppdb,該mppdb中可以包括多個存儲節(jié)點以及協(xié)調(diào)節(jié)點,每個存儲節(jié)點中可以保存多個表格的數(shù)據(jù)的一部分,本申請實施例中,該mppdb至少包括第一存儲節(jié)點,該第一存儲節(jié)點保存了第一表格數(shù)據(jù)的一部分和第二表格數(shù)據(jù)的一部分,該方法包括:第一存儲節(jié)點獲取客戶端設備發(fā)起的表連接操作的請求,該請求為將第一表格數(shù)據(jù)中運算列數(shù)據(jù)和第二表格數(shù)據(jù)中運算列數(shù)據(jù)進行表連接操作的請求,運算列數(shù)據(jù)指的是表格數(shù)據(jù)中將要進行連接操作對應的該行或該列數(shù)據(jù),由于行和列是相對的,行換一個方向即為列,此處用運算列數(shù)據(jù)中的“列”不限“行”的情況;第一存儲節(jié)點根據(jù)本地保存的第一表格數(shù)據(jù)中運算列數(shù)據(jù)生成第一中間數(shù)據(jù),根據(jù)本地保存的第二表格數(shù)據(jù)中運算列數(shù)據(jù)生成第二中間數(shù)據(jù),其中,第一中間數(shù)據(jù)包括所述第一表格數(shù)據(jù)中連接運算列數(shù)據(jù)和存儲所述第一表格數(shù)據(jù)中非連接運算列數(shù)據(jù)的位置信息,第二中間數(shù)據(jù)包括所述第二表格數(shù)據(jù)中連接運算列數(shù)據(jù)和存儲第二表格數(shù)據(jù)中非連接運算列數(shù)據(jù)的位置信息,此處所描述的連接運算列數(shù)據(jù)指運算列數(shù)據(jù)中參與連接運算的數(shù)據(jù);第一存儲節(jié)點獲取第二存儲節(jié)點的第三中間數(shù)據(jù)的集合,第二存儲節(jié)點包括所述mppdb中除所述第一存儲節(jié)點外存儲了所述第二表格數(shù)據(jù)的所有存儲節(jié)點,第三中間數(shù)據(jù)包括第二存儲節(jié)點中第二表格數(shù)據(jù)中連接運算列數(shù)據(jù)和存儲第二存儲節(jié)點中第二表格數(shù)據(jù)中非連接運算列數(shù)據(jù)的位置信息;第一存儲節(jié)點將第一中間數(shù)據(jù)與第二中間數(shù)據(jù)、第三中間數(shù)據(jù)進行表連接操作,得到計算結(jié)果,并將計算結(jié)果發(fā)送給目標接收節(jié)點。本申請實施例中,由于第一中間數(shù)據(jù)、第二中間數(shù)據(jù),第三中間數(shù)據(jù)只包括相應的連接運算列數(shù)據(jù)和非連接運算列數(shù)據(jù)的位置信息,并不包括非連接運算列數(shù)據(jù)的實際數(shù)據(jù),因此第一存儲節(jié)點中第一表格中運算列數(shù)據(jù)與獲取的所有的第二表格的運算列數(shù)據(jù)進行的表連接操作,實際進行的是它們對應的中間數(shù)據(jù)進行的表連接操作,大大降低了表連接操作時節(jié)點間數(shù)據(jù)的傳輸,極大節(jié)省了網(wǎng)絡帶寬,同時減少了表連接操作的總執(zhí)行時間。在一個可能的設計中,可以設定中間數(shù)據(jù)的數(shù)據(jù)格式,以方便運算,具 體的,可以采用如下方式:第一中間數(shù)據(jù)、第二中間數(shù)據(jù)、第三中間數(shù)據(jù)均為混合數(shù)據(jù)格式,該混合數(shù)據(jù)格式中存儲非連接運算列數(shù)據(jù)的位置信息包括:節(jié)點標識id和表id和表中的行id。在另一個可能的設計中,所述將所述計算結(jié)果發(fā)送給目標接收節(jié)點,可以包括:第一存儲節(jié)點將所述計算結(jié)果進行格式轉(zhuǎn)化,將位置信息是相同節(jié)點id且相同表id的數(shù)據(jù)合并到一起表示,將格式轉(zhuǎn)化后的計算結(jié)果發(fā)送給目標接收節(jié)點。此時,由于將位置信息是相同節(jié)點id和相同表id的數(shù)據(jù)進行了合并,進一步減少了計算結(jié)果中數(shù)據(jù)量,從而進一步降低了對傳輸帶寬的要求和存儲空間的要求。在另一個可能的設計中,所述將所述計算結(jié)果發(fā)送給目標接收節(jié)點可以,包括:第一存儲節(jié)點將所述計算結(jié)果進行分組整理,同一個分組的數(shù)據(jù)只使用一個分組標識,將整理后的計算結(jié)果發(fā)送給目標接收節(jié)點。此時,由于對計算結(jié)果進行了分組整合,減少了計算結(jié)果中的數(shù)據(jù)標識,同樣也進一步減少了計算結(jié)果中數(shù)據(jù)量,從而進一步降低了對傳輸帶寬的要求和存儲空間的要求。在另一個可能的設計中,所述目標接收節(jié)點可以為所述客戶端設備,此時,存儲節(jié)點直接將計算結(jié)果發(fā)送給客戶端設備了,讓客戶端設備根據(jù)計算結(jié)果去請求實際數(shù)據(jù);所述目標接收節(jié)點還可以為協(xié)調(diào)節(jié)點,此時,協(xié)調(diào)節(jié)點可以接收多個存儲節(jié)點計算的計算結(jié)果,將這些計算結(jié)果一起轉(zhuǎn)發(fā)給客戶端設備,客戶端設備可以通過協(xié)調(diào)節(jié)點來獲取計算結(jié)果的實際數(shù)據(jù)。第二方面,本申請實施例中提供一種數(shù)據(jù)處理的方法,該方法應用于并行計算的并行數(shù)據(jù)庫集群mppdb,該mppdb中包括協(xié)調(diào)節(jié)點和第一存儲節(jié)點,第一存儲節(jié)點中保存了第一表格數(shù)據(jù)的一部分和第二表格數(shù)據(jù)的一部分,該方法具體可以包括:協(xié)調(diào)節(jié)點接收第一存儲節(jié)點中發(fā)送第一請求的計算結(jié)果,該第一請求為 客戶端設備發(fā)起的將第一表格數(shù)據(jù)中第一運算列數(shù)據(jù)和第二表格數(shù)據(jù)中第二運算列數(shù)據(jù)進行表連接操作的請求,該計算結(jié)果為第一存儲節(jié)點將第一中間數(shù)據(jù)與第二中間數(shù)據(jù)、第三中間數(shù)據(jù)進行表連接操作后得到的,該第一中間數(shù)據(jù)包括第一表格數(shù)據(jù)中連接運算列數(shù)據(jù)和存儲第一表格數(shù)據(jù)中非連接運算列數(shù)據(jù)的位置信息,第二中間數(shù)據(jù)包括所述第二表格數(shù)據(jù)中連接運算列數(shù)據(jù)和存儲所述第二表格數(shù)據(jù)中非連接運算列數(shù)據(jù)的位置信息,第三中間數(shù)據(jù)包括第二存儲節(jié)點中第二表格數(shù)據(jù)中連接運算列數(shù)據(jù)和存儲所述第二存儲節(jié)點中第二表格數(shù)據(jù)中非連接運算列數(shù)據(jù)的位置信息,第二存儲節(jié)點包括所述mppdb中除第一存儲節(jié)點外存儲了所述第二表格數(shù)據(jù)的所有存儲節(jié)點;協(xié)調(diào)節(jié)點根據(jù)所述計算結(jié)果,從第一存儲節(jié)點、第二存儲節(jié)點中獲取第一表格數(shù)據(jù)和第二表格數(shù)據(jù)進行表連接操作的非連接運算列數(shù)據(jù);協(xié)調(diào)節(jié)點將獲取的非連接運算列數(shù)據(jù)發(fā)送給客戶端設備。本申請實施例中,由于協(xié)調(diào)節(jié)點接收的計算結(jié)果是第一存儲節(jié)點中第一表格中運算列數(shù)據(jù)與獲取的所有的第二表格的運算列數(shù)據(jù)它們對應的中間數(shù)據(jù)進行的表連接操作,協(xié)調(diào)節(jié)點是在獲取計算結(jié)果后再去獲取的計算結(jié)果對應非連接運算列對應的實際數(shù)據(jù),避免了現(xiàn)有計算過程中邊計算邊傳遞計算數(shù)據(jù),以防萬一出現(xiàn)故障而導致數(shù)據(jù)傳輸中斷,需要重新發(fā)起請求的問題,降低了表連接操作時節(jié)點間數(shù)據(jù)的傳輸,極大節(jié)省了網(wǎng)絡帶寬,減少了表連接操作的總執(zhí)行時間。在一個可能的設計中,所述第一中間數(shù)據(jù)、第二中間數(shù)據(jù)、第三中間數(shù)據(jù)均為混合數(shù)據(jù)格式,所述混合數(shù)據(jù)格式中存儲非連接運算列數(shù)據(jù)的位置信息包括:節(jié)點標識id和表id和表中的行id。在另一個可能的設計中,所述方法還可以包括:協(xié)調(diào)節(jié)點根據(jù)所述計算結(jié)果,生成所述混合數(shù)據(jù)格式的所述計算結(jié)果對應的物化視圖并保存。此時,協(xié)調(diào)節(jié)點可以將每個請求對應的計算結(jié)果,生成物化視圖進行保存,以便后續(xù)相同的請求,直接根據(jù)物化視圖去獲取相應的數(shù)據(jù),而不用重新利用存儲節(jié)點進行計算,提高了效率,同時由于本地保存的物化視圖也是以所述混合數(shù)據(jù)格式保存的,因此可以大大減少本地保存的數(shù)據(jù)量,節(jié)約了 存儲空間占用。在另一個可能的設計中,所述方法還可以包括:協(xié)調(diào)節(jié)點接收所述客戶端設備發(fā)送的第二請求,所述第二請求與所述第一請求相同;協(xié)調(diào)節(jié)點根據(jù)所述計算結(jié)果對應的物化視圖,從第一存儲節(jié)點、第二存儲節(jié)點中獲取第一表格數(shù)據(jù)和第二表格數(shù)據(jù)進行表連接操作的非連接運算列數(shù)據(jù);協(xié)調(diào)節(jié)點將獲取的非連接運算列數(shù)據(jù)發(fā)送給客戶端設備。此時,協(xié)調(diào)節(jié)點在保存了第一請求的計算結(jié)果對應的物化視圖的情況下,若獲取的到與第一請求相同的第二請求,則可以根據(jù)第一請求的計算結(jié)果對應的物化視圖,直接獲取對應的計算數(shù)據(jù),響應第二請求,提高了處理效率。在另一個可能的設計中,協(xié)調(diào)節(jié)點還可以將保存的物化視圖發(fā)送到所述mppdb外的第三存儲節(jié)點保存,此時,該方法還可以包括:協(xié)調(diào)節(jié)點將所述計算結(jié)果對應的物化視圖發(fā)送給所述mppdb外的第三存儲節(jié)點保存,所述第三存儲節(jié)點中保存的物化視圖可供包括所述mppdb的至少兩個mppdb訪問。這時候,一方面,由于上述物化視圖是以所述混合數(shù)據(jù)格式保存的,其數(shù)據(jù)量相對于實際數(shù)據(jù)大大減少,為物化視圖數(shù)據(jù)發(fā)送到其他節(jié)點存儲提供了可能,另一方面,協(xié)調(diào)節(jié)點將生成的物化視圖保存所述mppdb外的一個可供多個集群訪問的目標集群節(jié)點,使得已進行的表連接操作結(jié)果可以供多個集群訪問,獲取已進行的表連接操作結(jié)果的實際數(shù)據(jù),擴大了物化視圖的應用場景和范圍。第三方面,本申請實施例中提供一種存儲節(jié)點,應用于并行計算的并行數(shù)據(jù)庫集群mppdb,所述存儲節(jié)點包括接收器、發(fā)送器、處理器和存儲器,所述存儲器保存了第一表格數(shù)據(jù)的一部分和第二表格數(shù)據(jù)的一部分;所述接收器用于獲取客戶端設備發(fā)起的表連接操作的請求,所述請求為將所述第一表格數(shù)據(jù)中運算列數(shù)據(jù)和所述第二表格數(shù)據(jù)中運算列數(shù)據(jù)進行表連接操作的請求;所述處理器用于根據(jù)本地保存的所述第一表格數(shù)據(jù)中運算列數(shù)據(jù)生成第 一中間數(shù)據(jù),根據(jù)本地保存的所述第二表格數(shù)據(jù)中運算列數(shù)據(jù)生成第二中間數(shù)據(jù),其中,所述第一中間數(shù)據(jù)包括所述第一表格數(shù)據(jù)中連接運算列數(shù)據(jù)和存儲所述第一表格數(shù)據(jù)中非連接運算列數(shù)據(jù)的位置信息,第二中間數(shù)據(jù)包括所述第二表格數(shù)據(jù)中連接運算列數(shù)據(jù)和存儲所述第二表格數(shù)據(jù)中非連接運算列數(shù)據(jù)的位置信息;所述接收器還用于獲取目標存儲節(jié)點的第三中間數(shù)據(jù)的集合,所述目標存儲節(jié)點包括所述mppdb中除所述存儲節(jié)點外存儲了所述第二表格數(shù)據(jù)的所有存儲節(jié)點,所述第三中間數(shù)據(jù)包括所述目標存儲節(jié)點中第二表格數(shù)據(jù)中連接運算列數(shù)據(jù)和存儲所述目標存儲節(jié)點中第二表格數(shù)據(jù)中非連接運算列數(shù)據(jù)的位置信息;所述處理器還用于將所述第一中間數(shù)據(jù)與所述第二中間數(shù)據(jù)、所述第三中間數(shù)據(jù)進行表連接操作,得到計算結(jié)果;所述發(fā)送器用于將所述計算結(jié)果發(fā)送給目標接收節(jié)點。在一個可能的設計中,所述第一中間數(shù)據(jù)、第二中間數(shù)據(jù)、第三中間數(shù)據(jù)均為混合數(shù)據(jù)格式,所述混合數(shù)據(jù)格式中存儲所述非連接運算列數(shù)據(jù)的位置信息包括:節(jié)點標識id和表id和表中的行id。在另一個可能的設計中,所述處理器還用于將所述計算結(jié)果進行格式轉(zhuǎn)化,將位置信息是相同節(jié)點id且相同表id的數(shù)據(jù)合并到一起表示,所述發(fā)送器具體用于將格式轉(zhuǎn)化后的計算結(jié)果發(fā)送給所述目標接收節(jié)點。在另一個可能的設計中,所述處理器還用于將所述計算結(jié)果進行分組整理,同一個分組的數(shù)據(jù)只使用一個分組標識,所述發(fā)送器具體用于將整理后的計算結(jié)果發(fā)送給所述目標接收節(jié)點。在另一個可能的設計中,所述目標接收節(jié)點為協(xié)調(diào)節(jié)點或者所述客戶端設備。第四方面,本申請實施例提供一種協(xié)調(diào)節(jié)點,應用于并行計算的并行數(shù)據(jù)庫集群mppdb,所述mppdb中還包括第一存儲節(jié)點,所述第一存儲節(jié)點中保存了第一表格數(shù)據(jù)的一部分和第二表格數(shù)據(jù)的一部分,所述協(xié)調(diào)節(jié)點包括:接收器,用于接收所述第一存儲節(jié)點中發(fā)送第一請求的計算結(jié)果,所述 第一請求為客戶端設備發(fā)起的將所述第一表格數(shù)據(jù)中第一運算列數(shù)據(jù)和所述第二表格數(shù)據(jù)中第二運算列數(shù)據(jù)進行表連接操作的請求,所述計算結(jié)果為所述第一存儲節(jié)點將所述第一中間數(shù)據(jù)與所述第二中間數(shù)據(jù)、所述第三中間數(shù)據(jù)進行表連接操作后得到的,所述第一中間數(shù)據(jù)包括所述第一表格數(shù)據(jù)中連接運算列數(shù)據(jù)和存儲所述第一表格數(shù)據(jù)中非連接運算列數(shù)據(jù)的位置信息,第二中間數(shù)據(jù)包括所述第二表格數(shù)據(jù)中連接運算列數(shù)據(jù)和存儲所述第二表格數(shù)據(jù)中非連接運算列數(shù)據(jù)的位置信息,所述第三中間數(shù)據(jù)包括第二存儲節(jié)點中第二表格數(shù)據(jù)中連接運算列數(shù)據(jù)和存儲所述第二存儲節(jié)點中第二表格數(shù)據(jù)中非連接運算列數(shù)據(jù)的位置信息,所述第二存儲節(jié)點包括所述mppdb中除所述第一存儲節(jié)點外存儲了所述第二表格數(shù)據(jù)的所有存儲節(jié)點;處理器,用于根據(jù)所述計算結(jié)果,從所述第一存儲節(jié)點、所述第二存儲節(jié)點中獲取所述第一表格數(shù)據(jù)和所述第二表格數(shù)據(jù)進行表連接操作的非連接運算列數(shù)據(jù);發(fā)送器,用于將獲取的非連接運算列數(shù)據(jù)發(fā)送給客戶端設備。在一個可能的設計中,所述第一中間數(shù)據(jù)、第二中間數(shù)據(jù)、第三中間數(shù)據(jù)均為混合數(shù)據(jù)格式,所述混合數(shù)據(jù)格式中存儲非連接運算列數(shù)據(jù)的位置信息包括:節(jié)點標識id和表id和表中的行id。在另一個可能的設計中,所述處理器還用于根據(jù)所述計算結(jié)果,生成所述混合數(shù)據(jù)格式的所述計算結(jié)果對應的物化視圖并保存。在另一個可能的設計中,所述接收器還用于接收所述客戶端設備發(fā)送的第二請求,所述第二請求與所述第一請求相同;所述處理器還用于根據(jù)所述計算結(jié)果對應的物化視圖,從所述第一存儲節(jié)點、所述第二存儲節(jié)點中獲取所述第一表格數(shù)據(jù)和所述第二表格數(shù)據(jù)進行表連接操作的非連接運算列數(shù)據(jù);所述發(fā)送器還用于將獲取的非連接運算列數(shù)據(jù)發(fā)送給客戶端設備。在另一個可能的設計中,所述發(fā)送器還用于將所述計算結(jié)果對應的物化視圖發(fā)送給所述mppdb外的第三存儲節(jié)點保存,所述第三存儲節(jié)點中保存的物化視圖可供包括所述mppdb的至少兩個mppdb訪問。從以上技術方案可以看出,本申請實施例具有以下優(yōu)點:本申請實施例中,由于第一中間數(shù)據(jù)、第二中間數(shù)據(jù),第三中間數(shù)據(jù)只包括相應的連接運算列數(shù)據(jù)和非連接運算列數(shù)據(jù)的位置信息,并不包括非連接運算列數(shù)據(jù)的實際數(shù)據(jù),因此第一存儲節(jié)點中第一表格中運算列數(shù)據(jù)與獲取的所有的第二表格的運算列數(shù)據(jù)進行的表連接操作,實際進行的是它們對應的中間數(shù)據(jù)進行的表連接操作,大大降低了表連接操作時節(jié)點間數(shù)據(jù)的傳輸,極大節(jié)省了網(wǎng)絡帶寬,同時減少了表連接操作的總執(zhí)行時間。附圖說明圖1是本申請實施例中應用場景示意;圖2是本申請實施例中數(shù)據(jù)處理的方法的一個實施例示意圖;圖3是本申請實施例中計算結(jié)果的一種轉(zhuǎn)換格式的實施例示意圖;圖4是本申請實施例中計算結(jié)果的一中分組方式的實施例示意圖;圖5是本申請實施例中數(shù)據(jù)處理的方法的另一個實施例示意圖;圖6是本申請實施例中存儲節(jié)點的一個實施例示意圖;圖7是本申請實施例中協(xié)調(diào)節(jié)點的一個實施例示意圖。具體實施方式本申請實施例提供了一種數(shù)據(jù)處理的方法、存儲節(jié)點及協(xié)調(diào)節(jié)點,大大降低了表連接操作時節(jié)點間數(shù)據(jù)的傳輸,極大節(jié)省了網(wǎng)絡帶寬,同時減少了表連接操作的總執(zhí)行時間。為了使本
技術領域:
:的人員更好地理解本申請方案,下面將結(jié)合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分的實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本申請保護的范圍。本申請的說明書和權利要求書及上述附圖中的術語“第一”、“第二”等(如果存在)是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使用的數(shù)據(jù)在適當情況下可以互換,以便這里描述的實施例能夠以除了在這里圖示或描述的內(nèi)容以外的順序?qū)嵤?。此外,術語“包括”和“具有”以及它們的任何變形,意圖在于覆蓋不排他的包含,例如,包含 了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設備固有的其它步驟或單元。本申請實施例應用于并行計算的并行數(shù)據(jù)庫集群(英文全稱:massivelyparallelprocessingdatabase,英文簡稱:mppdb),在mppdb中,大表會進行水平分區(qū),即將表中的數(shù)據(jù)分布到集群中不同的存儲節(jié)點上,一般mppdb中,會包括多個用于存儲數(shù)據(jù)的存儲節(jié)點和用于管理的協(xié)調(diào)節(jié)點,協(xié)調(diào)節(jié)點可以用于獲取客戶端設備發(fā)起的表連接操作請求,并將表連接操作請求轉(zhuǎn)發(fā)給對應的存儲節(jié)點。如圖1所示,為本申請實施例中應用場景示意圖,該應用場景中包括mppdb和客戶端設備,mppdb中包括協(xié)調(diào)節(jié)點和多個存儲節(jié)點,客戶端設備可以與協(xié)調(diào)節(jié)點和存儲節(jié)點交互數(shù)據(jù)。下面首先介紹本申請實施例數(shù)據(jù)處理的方法。請參閱圖2,本申請實施例中數(shù)據(jù)處理的方法應用于上述mppdb中,所述mppdb中包括第一存儲節(jié)點,所述第一存儲節(jié)點保存了第一表格數(shù)據(jù)的一部分和第二表格數(shù)據(jù)的一部分,所述方法包括:201、第一存儲節(jié)點獲取客戶端設備發(fā)起的表連接操作的請求;其中,所述請求為將所述第一表格數(shù)據(jù)中運算列數(shù)據(jù)和所述第二表格數(shù)據(jù)中運算列數(shù)據(jù)進行表連接操作的請求;運算列數(shù)據(jù)指的是表格數(shù)據(jù)中將要進行連接操作對應的該行或該列數(shù)據(jù),由于行和列是相對的,行換一個方向即為列,此處用運算列數(shù)據(jù)中的“列”不限“行”的情況。一般情況下,mppdb中存儲節(jié)點存儲的表格數(shù)據(jù)中的運算列數(shù)據(jù),包括參與對應運算的運算列數(shù)據(jù)以及和不參與對應運算的非運算列數(shù)據(jù),例如本申請實施例中,連接運算列數(shù)據(jù)和非連接運算列數(shù)據(jù),連接運算列數(shù)據(jù)即指運算列數(shù)據(jù)中參與連接運算的數(shù)據(jù),非連接運算列數(shù)據(jù)即運算列數(shù)據(jù)中不參與連接操作的數(shù)據(jù)。本實施例中,第一存儲節(jié)點獲取客戶端設備發(fā)起的表連接操作的請求的方式可以是:客戶端設備向mppdb發(fā)起表連接操作請求,mppdb中的協(xié)調(diào) 節(jié)點獲取該表連接操作請求,并將該表連接操作請求發(fā)送給存儲第一表格數(shù)據(jù)和第二表格數(shù)據(jù)的所有節(jié)點。202、第一存儲節(jié)點根據(jù)本地保存的第一表格數(shù)據(jù)中運算列數(shù)據(jù)生成第一中間數(shù)據(jù),根據(jù)本地保存的第二表格數(shù)據(jù)中運算列數(shù)據(jù)生成第二中間數(shù)據(jù);其中,第一中間數(shù)據(jù)包括所述第一表格數(shù)據(jù)中連接運算列數(shù)據(jù)和存儲所述第一表格數(shù)據(jù)中非連接運算列數(shù)據(jù)的位置信息,第二中間數(shù)據(jù)包括所述第二表格數(shù)據(jù)中連接運算列數(shù)據(jù)和存儲第二表格數(shù)據(jù)中非連接運算列數(shù)據(jù)的位置信息;可選的,本申請實施例中可以設定中間數(shù)據(jù)的數(shù)據(jù)格式,以方便運算,具體的,可以采用如下方式:第一中間數(shù)據(jù)、第二中間數(shù)據(jù)、第三中間數(shù)據(jù)均為混合數(shù)據(jù)格式,該混合數(shù)據(jù)格式中存儲非連接運算列數(shù)據(jù)的位置信息包括:節(jié)點標識id和表id和表中的行id。其中,節(jié)點id指的是存儲節(jié)點的id,例如第一存儲節(jié)點的節(jié)點id可以為dn1,表id可以指表的名稱,例如表t1-a,行id指的是多少行,同上,由于行和列是相對的,本申請實施例除了應用于行存數(shù)據(jù)的mppdb外,也可以應用于列存數(shù)據(jù)的mppdb?;旌蠑?shù)據(jù)格式可以如下表1所示:表1連接運算列數(shù)據(jù)節(jié)點id表id行id以連接運算列數(shù)據(jù)為5,存儲于節(jié)點id為1中的表1的a部分(即表id為t1-a)的第5行為例,混合數(shù)據(jù)格式的表示方式如下表1-1:表1-15dn1t1-a5203、第一存儲節(jié)點獲取第二存儲節(jié)點的第三中間數(shù)據(jù)的集合;其中,第二存儲節(jié)點包括所述mppdb中除所述第一存儲節(jié)點外存儲了所述第二表格數(shù)據(jù)的所有存儲節(jié)點,第三中間數(shù)據(jù)包括第二存儲節(jié)點中第二表格數(shù)據(jù)中連接運算列數(shù)據(jù)和存儲第二存儲節(jié)點中第二表格數(shù)據(jù)中非連接運算列數(shù)據(jù)的位置信息。204、第一存儲節(jié)點將所述第一中間數(shù)據(jù)與所述第二中間數(shù)據(jù)、所述第三 中間數(shù)據(jù)進行表連接操作,得到計算結(jié)果,并將所述計算結(jié)果發(fā)送給目標接收節(jié)點。本實施例中,所述接收節(jié)點可以為所述mppdb中的協(xié)調(diào)節(jié)點或者所述客戶端設備,即第一存儲節(jié)點可以將計算結(jié)果直接發(fā)送給客戶端設備,以使得客戶端設備根據(jù)接收的所有所述表連接操作的計算結(jié)果,去請求所有對應的存儲節(jié)點獲取計算結(jié)果對應的實際數(shù)據(jù),也可以是第一存儲節(jié)點將計算結(jié)果發(fā)送給協(xié)調(diào)節(jié)點,協(xié)調(diào)節(jié)點可以接收所有進行該表連接操作的節(jié)點的計算結(jié)果之后,根據(jù)獲取的所有結(jié)果,去各存儲節(jié)點獲取實際數(shù)據(jù),發(fā)送實際數(shù)據(jù)給客戶端設備,此處不作限定。本申請實施例中,由于第一中間數(shù)據(jù)、第二中間數(shù)據(jù),第三中間數(shù)據(jù)只包括相應的連接運算列數(shù)據(jù)和非連接運算列數(shù)據(jù)的位置信息,并不包括非連接運算列數(shù)據(jù)的實際數(shù)據(jù),因此第一存儲節(jié)點中第一表格中運算列數(shù)據(jù)與獲取的所有的第二表格的運算列數(shù)據(jù)進行的表連接操作,實際進行的是它們對應的中間數(shù)據(jù)進行的表連接操作,大大降低了表連接操作時節(jié)點間數(shù)據(jù)的傳輸,極大節(jié)省了網(wǎng)絡帶寬,同時減少了表連接操作的總執(zhí)行時間。下面以一具體應用場景為例對上述實施例進行描述。t1表數(shù)據(jù)分布在node1和node2兩個節(jié)點上,分別是t1-a和t1-b;t2表的數(shù)據(jù)同樣如此分布在node1和node2兩個節(jié)點上,分別是t2-a和t2-b,假設node1為本申請中的第一存儲節(jié)點,第一存儲節(jié)點的節(jié)點id為dn1,在執(zhí)行sql語句:select*fromt1,t2wheret1.id1=t2.id2這樣的表連接操作時,node1會獲取到這樣的表連接操作請求,即將所述第一表格數(shù)據(jù)(t1)中運算列數(shù)據(jù)(id1)和所述第二表格數(shù)據(jù)(t2)中運算列數(shù)據(jù)(id2)進行表連接操作的請求,此時,在node1上t1a需要和t2表全部數(shù)據(jù)做連接操作,由于node1中保存的t1表和t2表數(shù)據(jù)分別為t1-a和t1-b,因此node1需要將本地保存的表t1-a中id1的運算列數(shù)據(jù)轉(zhuǎn)換為第一中間數(shù)據(jù),假設表t1-a中id1的運算列數(shù)據(jù)在第5行,將本地保存的表t1-b中id2的運算列數(shù)據(jù)轉(zhuǎn)換為第二中間數(shù)據(jù),假設表t1-b中id2的運算列數(shù)據(jù)在第3行。假設表t1-a、t1-b(表格中實際數(shù)據(jù)已略)分別具體為如下:表t1-aid13………………5………………7………………11………………表t1-bid211………………7………………8………………5………………因此,上面得到第一中間數(shù)據(jù)、第二中間數(shù)據(jù)格式可以類似如下:第一中間數(shù)據(jù)格式如下表1-2:表1-2id1dn1t1-a5第二中間數(shù)據(jù)格式如下表1-3:表1-3id2dn1t1-b3由于是t1和t2的連接操作,id1=id2,則第一存儲節(jié)點上的第一中間數(shù)據(jù)和第二中間數(shù)據(jù)做連接運算產(chǎn)生的中間結(jié)果如下表1-4所示:表1-45dn1t1-a2dn1t1-b47dn1t1-a3dn1t1-b211dn1t1-a4dn1t1-b1同理,第一存儲節(jié)點上的第一中間數(shù)據(jù)和獲取的第二存儲節(jié)點的第三中間數(shù)據(jù),也可以采用如上所述的運算方式,此處不再贅述。本申請實施例中,為了進一步降低節(jié)點間數(shù)據(jù)量的傳輸,上述將所述計算結(jié)果發(fā)送給目標接收節(jié)點可以采用如下多種方式:(1)在混合數(shù)據(jù)格式中存儲非連接運算列數(shù)據(jù)的位置信息中包括節(jié)點 id、表id和行id時,所述將所述計算結(jié)果發(fā)送給目標接收節(jié)點,可以包括:所述第一存儲節(jié)點將所述計算結(jié)果進行格式轉(zhuǎn)化,將位置信息是相同節(jié)點id且相同表id的數(shù)據(jù)合并到一起表示,將格式轉(zhuǎn)化后的計算結(jié)果發(fā)送給目標接收節(jié)點。具體的,將所述計算結(jié)果進行格式轉(zhuǎn)化可以定義數(shù)據(jù)分塊算法,得到的轉(zhuǎn)化后計算結(jié)果格式如下表2所示:表2pos1pos2pos3…posn其中,pos0,pos1…posn中每一個pos中包括一個連接運算列數(shù)據(jù)和它對應的非運算列數(shù)據(jù)的位置信息。而每個posn(n大于等于1的正整數(shù))的格式如下表3:表3positionitempos1pos2detail:節(jié)點id,表id其中,positionitem代表連接運算列數(shù)據(jù),例如表t1-a中的5,7,11等,pos1分別表示該連接運算列數(shù)據(jù)處于不同表格數(shù)據(jù)的行id,例如,pos1表示該連接運算列數(shù)據(jù)處于第一表格數(shù)據(jù)的行id,pos2表示該連接運算列數(shù)據(jù)處于第二表格數(shù)據(jù)的行id;detail:節(jié)點id,表id,是定義前面的運算列數(shù)據(jù)都是屬于該節(jié)點id中該表id的數(shù)據(jù),以表1-4中運算列數(shù)據(jù)為5的數(shù)據(jù)為例,該detail即為:dn1,t1,即該連接運算列數(shù)據(jù)為5的數(shù)據(jù)屬于節(jié)點id為dn1,表id為t1的數(shù)據(jù)。圖3即為以上述第一中間數(shù)據(jù)和第二中間數(shù)據(jù)做連接運算產(chǎn)生的計算結(jié)果進行格式轉(zhuǎn)換表示為例。(2)所述將所述計算結(jié)果發(fā)送給目標接收節(jié)點,也可以包括:所述第一存儲節(jié)點將所述計算結(jié)果進行分組整理,同一個分組的數(shù)據(jù)只使用一個分組標識,將整理后的計算結(jié)果發(fā)送給目標接收節(jié)點。具體的,在混合數(shù)據(jù)格式中存儲所述非連接運算列數(shù)據(jù)的位置信息中包括節(jié)點id、表id和行id時,根據(jù)相同的節(jié)點id和表id對所述計算結(jié)果進行分組,每組結(jié)果都是使用相同的節(jié)點id和表id位置信息,每組結(jié)果內(nèi)不再存儲節(jié)點id和表id等位置信息,只保存運算列數(shù)據(jù)的行號或列號信息。圖4即為以上述第一中間數(shù)據(jù)和第二中間數(shù)據(jù)做連接運算產(chǎn)生的計算結(jié)果,根據(jù)相同的節(jié)點id和表id對所述計算結(jié)果進行分組后的表示實例,其中,recordnumber為運算列數(shù)據(jù)的id,nodeid即為節(jié)點id,tableid即為表id。下面介紹本申請實施例中協(xié)調(diào)節(jié)點側(cè)數(shù)據(jù)處理的方法的實施例。請參閱圖5,本申請實施例中數(shù)據(jù)處理的方法的另一個實施例應用于mppdb,該mppdb中包括協(xié)調(diào)節(jié)點和第一存儲節(jié)點,第一存儲節(jié)點中保存了第一表格數(shù)據(jù)的一部分和第二表格數(shù)據(jù)的一部分,該方法具體可以包括:501、協(xié)調(diào)節(jié)點接收第一存儲節(jié)點中發(fā)送第一請求的計算結(jié)果;其中,該第一請求為客戶端設備發(fā)起的將第一表格數(shù)據(jù)中第一運算列數(shù)據(jù)和第二表格數(shù)據(jù)中第二運算列數(shù)據(jù)進行表連接操作的請求,該計算結(jié)果為第一存儲節(jié)點將第一中間數(shù)據(jù)與第二中間數(shù)據(jù)、第三中間數(shù)據(jù)進行表連接操作后得到的,該第一中間數(shù)據(jù)包括第一表格數(shù)據(jù)中連接運算列數(shù)據(jù)和存儲第一表格數(shù)據(jù)中非連接運算列數(shù)據(jù)的位置信息,第二中間數(shù)據(jù)包括所述第二表格數(shù)據(jù)中連接運算列數(shù)據(jù)和存儲所述第二表格數(shù)據(jù)中非連接運算列數(shù)據(jù)的位置信息,第三中間數(shù)據(jù)包括第二存儲節(jié)點中第二表格數(shù)據(jù)中連接運算列數(shù)據(jù)和存儲所述第二存儲節(jié)點中第二表格數(shù)據(jù)中非連接運算列數(shù)據(jù)的位置信息,第二存儲節(jié)點包括所述mppdb中除第一存儲節(jié)點外存儲了所述第二表格數(shù)據(jù)的所有存儲節(jié)點;可選的,所述第一中間數(shù)據(jù)、第二中間數(shù)據(jù)、第三中間數(shù)據(jù)均為混合數(shù)據(jù)格式,所述混合數(shù)據(jù)格式中存儲非連接運算列數(shù)據(jù)的位置信息包括:節(jié)點標識id和表id和表中的行id。502、協(xié)調(diào)節(jié)點根據(jù)所述計算結(jié)果,從第一存儲節(jié)點、第二存儲節(jié)點中獲取第一表格數(shù)據(jù)和第二表格數(shù)據(jù)進行表連接操作的非連接運算列數(shù)據(jù);本申請實施例中,由于上述實施例中第一存儲節(jié)點的發(fā)送的混合數(shù)據(jù)格式的計算結(jié)果有多種形式,有直接的混合數(shù)據(jù)格式,也有經(jīng)過壓縮處理的混合數(shù)據(jù)格式,因此此處協(xié)調(diào)節(jié)點根據(jù)所述計算結(jié)果,從所述至少兩個存儲節(jié)點中獲取所述第一表格數(shù)據(jù)中第一運算列數(shù)據(jù)和所述第二表格數(shù)據(jù)中第二運算列數(shù)據(jù)進行表連接操作的實際數(shù)據(jù)有多種方式:(1)若所述計算結(jié)果是直接的混合數(shù)據(jù)格式,即如上表1中混合數(shù)據(jù)格 式,則協(xié)調(diào)節(jié)點根據(jù)預置的該表1的混合數(shù)據(jù)格式存儲所述非連接運算列數(shù)據(jù)的位置信息,從所述至少兩個存儲節(jié)點中獲取所述第一表格數(shù)據(jù)中運算列數(shù)據(jù)和所述第二表格數(shù)據(jù)中運算列數(shù)據(jù)進行表連接操作的非連接運算列數(shù)據(jù);(2)若所述計算結(jié)果是表1中混合數(shù)據(jù)格式經(jīng)過如圖3或圖4所示的實施例中所描述的處理后(例如轉(zhuǎn)換格式、結(jié)果分組)的計算結(jié)果,則所述協(xié)調(diào)節(jié)點需要采用與上相同的規(guī)則,獲知該計算結(jié)果中的非連接運算列數(shù)據(jù)的位置信息,根據(jù)該位置信息從第一存儲節(jié)點和第二存儲節(jié)點中獲取所述第一表格數(shù)據(jù)中運算列數(shù)據(jù)和所述第二表格數(shù)據(jù)中運算列數(shù)據(jù)進行表連接操作的非連接運算列數(shù)據(jù)。503、協(xié)調(diào)節(jié)點將獲取的非連接運算列數(shù)據(jù)發(fā)送給客戶端設備。本申請實施例中,由于協(xié)調(diào)節(jié)點接收的計算結(jié)果是第一存儲節(jié)點中第一表格中運算列數(shù)據(jù)與獲取的所有的第二表格的運算列數(shù)據(jù)它們對應的中間數(shù)據(jù)進行的表連接操作,協(xié)調(diào)節(jié)點是在獲取計算結(jié)果后再去獲取的計算結(jié)果對應非連接運算列對應的實際數(shù)據(jù),避免了現(xiàn)有計算過程中邊計算邊傳遞計算數(shù)據(jù),以防萬一出現(xiàn)故障而導致數(shù)據(jù)傳輸中斷,需要重新發(fā)起請求的問題,降低了表連接操作時節(jié)點間數(shù)據(jù)的傳輸,極大節(jié)省了網(wǎng)絡帶寬,減少了表連接操作的總執(zhí)行時間??蛇x的,在所述第一中間數(shù)據(jù)、第二中間數(shù)據(jù)、第三中間數(shù)據(jù)均為混合數(shù)據(jù)格式時,所述方法還可以包括:所述協(xié)調(diào)節(jié)點根據(jù)所述計算結(jié)果,生成所述混合數(shù)據(jù)格式的所述計算結(jié)果對應的物化視圖并保存。此時,生成物化視圖進行保存,以便后續(xù)相同的請求,直接根據(jù)物化視圖去獲取相應的數(shù)據(jù),而不用重新利用存儲節(jié)點進行計算,提高了效率,同時由于本地保存的物化視圖也是以所述混合數(shù)據(jù)格式保存的,因此可以大大減少本地保存的數(shù)據(jù)量,節(jié)約了存儲空間占用。可選的,所述方法還可以包括:協(xié)調(diào)節(jié)點接收所述客戶端設備發(fā)送的第二請求,所述第二請求與所述第一請求相同;協(xié)調(diào)節(jié)點根據(jù)所述計算結(jié)果對應的物化視圖,從第一存儲節(jié)點、第二存 儲節(jié)點中獲取第一表格數(shù)據(jù)和第二表格數(shù)據(jù)進行表連接操作的非連接運算列數(shù)據(jù);協(xié)調(diào)節(jié)點將獲取的非連接運算列數(shù)據(jù)發(fā)送給客戶端設備。此時,協(xié)調(diào)節(jié)點在本地保存物化視圖,在之后客戶端設備發(fā)起同樣的表連接操作請求,協(xié)調(diào)節(jié)點可以直接獲取計算結(jié)果,根據(jù)計算結(jié)果獲取實際數(shù)據(jù),而不用各存儲節(jié)點重新計算,提高了數(shù)據(jù)處理效率??蛇x的,協(xié)調(diào)節(jié)點還可以將保存的物化視圖發(fā)送到所述mppdb外的第三存儲節(jié)點保存,此時,該方法還可以包括:協(xié)調(diào)節(jié)點將所述計算結(jié)果對應的物化視圖發(fā)送給所述mppdb外的第三存儲節(jié)點保存,所述第三存儲節(jié)點中保存的物化視圖可供包括所述mppdb的至少兩個mppdb訪問。此時,一方面,由于上述物化視圖是以所述混合數(shù)據(jù)格式保存的,其數(shù)據(jù)量相對于實際數(shù)據(jù)大大減少,為物化視圖數(shù)據(jù)發(fā)送到其他節(jié)點存儲提供了可能,另一方面,協(xié)調(diào)節(jié)點將生成的物化視圖保存所述mppdb外的一個可供多個集群訪問的目標集群節(jié)點,使得已進行的表連接操作結(jié)果可以供多個集群訪問,獲取已進行的表連接操作結(jié)果的實際數(shù)據(jù),擴大了物化視圖的應用場景和范圍。下面在介紹本申請實施例中存儲節(jié)點的實施例。請參閱圖6,為本申請實施例中存儲節(jié)點的一個實施例,該存儲節(jié)點600應用于mppdb,該存儲節(jié)點包括接收器601、發(fā)送器602、處理器603(可以為一個或多個)和存儲器604,所述存儲器604保存了第一表格數(shù)據(jù)的一部分和第二表格數(shù)據(jù)的一部分;在本申請的一些實施例中,接收器601、發(fā)送器602、處理器603和存儲器604可通過總線或其它方式連接,其中,圖6中以通過總線連接為例。所述接收器601用于獲取客戶端設備發(fā)起的表連接操作的請求,所述請求為將所述第一表格數(shù)據(jù)中運算列數(shù)據(jù)和所述第二表格數(shù)據(jù)中運算列數(shù)據(jù)進行表連接操作的請求;所述處理器603用于根據(jù)本地保存的所述第一表格數(shù)據(jù)中運算列數(shù)據(jù)生成第一中間數(shù)據(jù),根據(jù)本地保存的所述第二表格數(shù)據(jù)中運算列數(shù)據(jù)生成第二 中間數(shù)據(jù),其中,所述第一中間數(shù)據(jù)包括所述第一表格數(shù)據(jù)中連接運算列數(shù)據(jù)和存儲所述第一表格數(shù)據(jù)中非連接運算列數(shù)據(jù)的位置信息,第二中間數(shù)據(jù)包括所述第二表格數(shù)據(jù)中連接運算列數(shù)據(jù)和存儲所述第二表格數(shù)據(jù)中非連接運算列數(shù)據(jù)的位置信息;所述接收器601還用于獲取目標存儲節(jié)點的第三中間數(shù)據(jù)的集合,所述目標存儲節(jié)點包括所述mppdb中除所述存儲節(jié)點外存儲了所述第二表格數(shù)據(jù)的所有存儲節(jié)點,所述第三中間數(shù)據(jù)包括所述目標存儲節(jié)點中第二表格數(shù)據(jù)中連接運算列數(shù)據(jù)和存儲所述目標存儲節(jié)點中第二表格數(shù)據(jù)中非連接運算列數(shù)據(jù)的位置信息;所述處理器603還用于將所述第一中間數(shù)據(jù)與所述第二中間數(shù)據(jù)、所述第三中間數(shù)據(jù)進行表連接操作,得到計算結(jié)果;所述發(fā)送器602用于將所述計算結(jié)果發(fā)送給目標接收節(jié)點??蛇x的,所述第一中間數(shù)據(jù)、第二中間數(shù)據(jù)、第三中間數(shù)據(jù)均為混合數(shù)據(jù)格式,所述混合數(shù)據(jù)格式中存儲所述非連接運算列數(shù)據(jù)的位置信息包括:節(jié)點標識id和表id和表中的行id??蛇x的,所述處理器還用于將所述計算結(jié)果進行格式轉(zhuǎn)化,將位置信息是相同節(jié)點id且相同表id的數(shù)據(jù)合并到一起表示,所述發(fā)送器具體用于將格式轉(zhuǎn)化后的計算結(jié)果發(fā)送給所述目標接收節(jié)點??蛇x的,所述處理器還用于將所述計算結(jié)果進行分組整理,同一個分組的數(shù)據(jù)只使用一個分組標識,所述發(fā)送器具體用于將整理后的計算結(jié)果發(fā)送給所述目標接收節(jié)點??蛇x的,所述目標接收節(jié)點為協(xié)調(diào)節(jié)點或者所述客戶端設備。下面介紹本申請實施例中協(xié)調(diào)節(jié)點的實施例。請參閱圖7,為本申請實施例中協(xié)調(diào)節(jié)點的一個實施例,該協(xié)調(diào)節(jié)點700應用于mppdb,所述mppdb中還包括第一存儲節(jié)點,所述第一存儲節(jié)點中保存了第一表格數(shù)據(jù)的一部分和第二表格數(shù)據(jù)的一部分,所述協(xié)調(diào)節(jié)點包括:接收器601,用于接收所述第一存儲節(jié)點中發(fā)送第一請求的計算結(jié)果,所述第一請求為客戶端設備發(fā)起的將所述第一表格數(shù)據(jù)中第一運算列數(shù)據(jù)和所述第二表格數(shù)據(jù)中第二運算列數(shù)據(jù)進行表連接操作的請求,所述計算結(jié)果為 所述第一存儲節(jié)點將所述第一中間數(shù)據(jù)與所述第二中間數(shù)據(jù)、所述第三中間數(shù)據(jù)進行表連接操作后得到的,所述第一中間數(shù)據(jù)包括所述第一表格數(shù)據(jù)中連接運算列數(shù)據(jù)和存儲所述第一表格數(shù)據(jù)中非連接運算列數(shù)據(jù)的位置信息,第二中間數(shù)據(jù)包括所述第二表格數(shù)據(jù)中連接運算列數(shù)據(jù)和存儲所述第二表格數(shù)據(jù)中非連接運算列數(shù)據(jù)的位置信息,所述第三中間數(shù)據(jù)包括第二存儲節(jié)點中第二表格數(shù)據(jù)中連接運算列數(shù)據(jù)和存儲所述第二存儲節(jié)點中第二表格數(shù)據(jù)中非連接運算列數(shù)據(jù)的位置信息,所述第二存儲節(jié)點包括所述mppdb中除所述第一存儲節(jié)點外存儲了所述第二表格數(shù)據(jù)的所有存儲節(jié)點;處理器602,用于根據(jù)所述計算結(jié)果,從所述第一存儲節(jié)點、所述第二存儲節(jié)點中獲取所述第一表格數(shù)據(jù)和所述第二表格數(shù)據(jù)進行表連接操作的非連接運算列數(shù)據(jù);發(fā)送器603,用于將獲取的非連接運算列數(shù)據(jù)發(fā)送給客戶端設備??蛇x的,所述第一中間數(shù)據(jù)、第二中間數(shù)據(jù)、第三中間數(shù)據(jù)均為混合數(shù)據(jù)格式,所述混合數(shù)據(jù)格式中存儲非連接運算列數(shù)據(jù)的位置信息包括:節(jié)點標識id和表id和表中的行id。可選的,所述處理器602還用于根據(jù)所述計算結(jié)果,生成所述混合數(shù)據(jù)格式的所述計算結(jié)果對應的物化視圖并保存??蛇x的,所述接收器601還用于接收所述客戶端設備發(fā)送的第二請求,所述第二請求與所述第一請求相同;所述處理器602還用于根據(jù)所述計算結(jié)果對應的物化視圖,從所述第一存儲節(jié)點、所述第二存儲節(jié)點中獲取所述第一表格數(shù)據(jù)和所述第二表格數(shù)據(jù)進行表連接操作的非連接運算列數(shù)據(jù);所述發(fā)送器603還用于將獲取的非連接運算列數(shù)據(jù)發(fā)送給客戶端設備??蛇x的,所述發(fā)送器603還用于將所述計算結(jié)果對應的物化視圖發(fā)送給所述mppdb外的第三存儲節(jié)點保存,所述第三存儲節(jié)點中保存的物化視圖可供包括所述mppdb的至少兩個mppdb訪問。本申請實施例涉及的存儲節(jié)點和協(xié)調(diào)節(jié)點可以具有比圖6、圖7所示出的更多或更少的部件,可以組合兩個或更多個部件,或者可以具有不同的部件配置或設置,各個部件可以在包括一個或多個信號處理和/或?qū)S眉呻娐吩? 內(nèi)的硬件、軟件或硬件和軟件的組合實現(xiàn),例如圖6中處理器可以是一個或多個處理器的集合,圖7中也可以包括單獨的存儲器,此處不作限定。本申請實施例還提供一種計算機存儲介質(zhì),其中,該計算機存儲介質(zhì)可存儲有程序,該程序執(zhí)行時包括上述方法實施例中記載的至少數(shù)據(jù)處理的方法的部分或全部步驟。所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本申請并不受所描述的動作順序的限制,因為依據(jù)本申請,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本申請所必須的。在本申請所提供的幾個實施例中,應該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上。可以根據(jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。另外,在本申請各個實施例中的各功能單元可以集成在一個處理器中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售 或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中。基于這樣的理解,本申請的技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本申請各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。以上所述,以上實施例僅用以說明本申請的技術方案,而非對其限制;盡管參照前述實施例對本申請進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質(zhì)脫離本申請各實施例技術方案的精神和范圍。當前第1頁12當前第1頁12