亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種數(shù)據(jù)加載方法及裝置制造方法

文檔序號:6516808閱讀:141來源:國知局
一種數(shù)據(jù)加載方法及裝置制造方法
【專利摘要】本發(fā)明涉及數(shù)據(jù)處理領域,尤其涉及一種數(shù)據(jù)加載方法及裝置,用以提高對系統(tǒng)內(nèi)各個數(shù)據(jù)節(jié)點的資源及網(wǎng)絡帶寬的利用效率;本發(fā)明數(shù)據(jù)加載方法中,第一數(shù)據(jù)節(jié)點在接收到所屬的數(shù)據(jù)庫系統(tǒng)的主節(jié)點發(fā)送的數(shù)據(jù)加載指令后,從加載服務器中獲取數(shù)據(jù)塊,并檢測獲取的數(shù)據(jù)塊中每條邏輯記錄所屬的數(shù)據(jù)節(jié)點,針對其中任意一條邏輯記錄,在檢測到該條邏輯記錄屬于本節(jié)點后,將該條邏輯記錄存儲在本地,在檢測到該條邏輯記錄屬于所述數(shù)據(jù)庫系統(tǒng)的其它數(shù)據(jù)節(jié)點后,將該條邏輯記錄轉(zhuǎn)發(fā)給所述其它數(shù)據(jù)節(jié)點。本發(fā)明將分布式數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)重分布能力布置在數(shù)據(jù)庫系統(tǒng)中的每個數(shù)據(jù)節(jié)點,從而可以充分利用數(shù)據(jù)庫系統(tǒng)中每個數(shù)據(jù)節(jié)點的資源及網(wǎng)絡帶寬。
【專利說明】—種數(shù)據(jù)加載方法及裝置
【技術(shù)領域】
[0001]本發(fā)明涉及數(shù)據(jù)處理領域,尤其涉及一種數(shù)據(jù)加載方法及裝置。
【背景技術(shù)】
[0002]分布式數(shù)據(jù)庫系統(tǒng)是在集中式數(shù)據(jù)庫系統(tǒng)的基礎上發(fā)展起來的,是計算機技術(shù)和網(wǎng)絡技術(shù)相結(jié)合的產(chǎn)物。相比集中式數(shù)據(jù)庫系統(tǒng),分布式數(shù)據(jù)庫系統(tǒng)具有許多優(yōu)勢:首先,分布式數(shù)據(jù)庫系統(tǒng)可以允許各個分散部門將其常用的數(shù)據(jù)存儲在本地,從而可以降低數(shù)據(jù)傳送的成本,提高響應速率,其次,由于分布式數(shù)據(jù)庫系統(tǒng)允許在網(wǎng)絡出現(xiàn)故障時,對局部數(shù)據(jù)庫進行操作,從而可以提高系統(tǒng)的可靠性,再次,由于在分布式數(shù)據(jù)庫系統(tǒng)中增加一個新的局部數(shù)據(jù)庫,或在某個位置擴充一臺適當?shù)男⌒陀嬎銠C,都很容易實現(xiàn),因此,分布式數(shù)據(jù)庫系統(tǒng)的可擴展性也比較高。分布式數(shù)據(jù)庫系統(tǒng)的低延遲、高可靠、易擴展等優(yōu)點成為企業(yè)部署數(shù)據(jù)庫系統(tǒng)的首選。
[0003]分布式數(shù)據(jù)庫系統(tǒng)主要包括一個主節(jié)點(master)和多個數(shù)據(jù)節(jié)點(datanode),在該系統(tǒng)中,進行數(shù)據(jù)加載的方式是采用主節(jié)點或系統(tǒng)外的數(shù)據(jù)導入組件作為數(shù)據(jù)加載的入口,由該主節(jié)點或數(shù)據(jù)導入組件對需要入庫的數(shù)據(jù)進行拆分解析等處理,確定不同數(shù)據(jù)所屬的數(shù)據(jù)節(jié)點,并將處理后的數(shù)據(jù)分發(fā)給數(shù)據(jù)庫中對應的數(shù)據(jù)節(jié)點,因此,分布式數(shù)據(jù)庫系統(tǒng)的整體加載性能依賴于上述主節(jié)點或數(shù)據(jù)導入組件的處理性能,在數(shù)據(jù)量較大、系統(tǒng)內(nèi)數(shù)據(jù)節(jié)點數(shù)量較多時,上述主節(jié)點或數(shù)據(jù)導入組件需要將大量的數(shù)據(jù)進行拆分解析后,分別分發(fā)給對應的各個數(shù)據(jù)節(jié)點,耗時較長,這時,上述主節(jié)點或數(shù)據(jù)導入組件會成為整個數(shù)據(jù)庫系統(tǒng)進行數(shù)據(jù)加載的瓶頸,在主節(jié)點或數(shù)據(jù)導入組件將數(shù)據(jù)分發(fā)到數(shù)據(jù)節(jié)點之前,該數(shù)據(jù)節(jié)點無法對數(shù)據(jù)進行任何處理,因此,采用這種加載方式對系統(tǒng)內(nèi)各個數(shù)據(jù)節(jié)點的資源及網(wǎng)絡帶寬的利用效率較低。

【發(fā)明內(nèi)容】

[0004]本發(fā)明實施例提供一種數(shù)據(jù)加載方法及裝置,用以解決分布式數(shù)據(jù)庫系統(tǒng)中由主節(jié)點或數(shù)據(jù)導入組件作為數(shù)據(jù)加載的入口的方式對系統(tǒng)內(nèi)各個數(shù)據(jù)節(jié)點的資源及網(wǎng)絡帶寬的利用效率較低的問題。
[0005]第一方面,提供一種數(shù)據(jù)加載方法,該方法應用于數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的加載,該數(shù)據(jù)庫系統(tǒng)包括多個數(shù)據(jù)節(jié)點和管理各數(shù)據(jù)節(jié)點的主節(jié)點,該方法采用加載服務器為所述數(shù)據(jù)庫系統(tǒng)提供數(shù)據(jù)塊,所述數(shù)據(jù)塊為包括多條邏輯記錄的數(shù)據(jù)傳輸單元,其中每條邏輯記錄對應數(shù)據(jù)庫中存儲的一行數(shù)據(jù),包括:
[0006]第一數(shù)據(jù)節(jié)點在接收到所屬的數(shù)據(jù)庫系統(tǒng)的主節(jié)點發(fā)送的數(shù)據(jù)加載指令后,從加載服務器中獲取數(shù)據(jù)塊;
[0007]所述第一數(shù)據(jù)節(jié)點檢測獲取的數(shù)據(jù)塊中每條邏輯記錄所屬的數(shù)據(jù)節(jié)點;
[0008]針對數(shù)據(jù)塊中的任意一條邏輯記錄,所述第一數(shù)據(jù)節(jié)點在檢測到該條邏輯記錄屬于本節(jié)點后,將該條邏輯記錄存儲在本地,在檢測到該條邏輯記錄屬于所述數(shù)據(jù)庫系統(tǒng)的其它數(shù)據(jù)節(jié)點后,將該條邏輯記錄轉(zhuǎn)發(fā)給所述其它數(shù)據(jù)節(jié)點。
[0009]結(jié)合第一方面,在第一種可能的實現(xiàn)方式中,所述第一數(shù)據(jù)節(jié)點從加載服務器中獲取數(shù)據(jù)塊,包括:
[0010]所述第一數(shù)據(jù)節(jié)點至少一次向多個加載服務器中的第一加載服務器發(fā)送數(shù)據(jù)請求消息,每次接收所述第一加載服務器分配的一個數(shù)據(jù)塊;
[0011]若所述第一數(shù)據(jù)節(jié)點確定所述第一加載服務器分配數(shù)據(jù)塊的速率低于設定閾值,則在將最近一次獲取的數(shù)據(jù)塊處理完畢后,至少一次向第二加載服務器發(fā)送數(shù)據(jù)請求消息,每次接收所述第二加載服務器分配的一個數(shù)據(jù)塊。
[0012]結(jié)合第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述第一數(shù)據(jù)節(jié)點至少一次向所述第二加載服務器發(fā)送數(shù)據(jù)請求消息,包括:
[0013]所述第一數(shù)據(jù)節(jié)點確定第一次向所述第二加載服務器發(fā)送的數(shù)據(jù)請求消息;所述確定的數(shù)據(jù)請求消息中包括已獲取的數(shù)據(jù)塊對應的文件偏移量信息;
[0014]所述第一數(shù)據(jù)節(jié)點向所述第二加載服務器發(fā)送確定的所述數(shù)據(jù)請求消息,以使所述第二加載服務器根據(jù)接收的數(shù)據(jù)請求消息中包括的所述文件偏移量信息確定需要分配給所述第一數(shù)據(jù)節(jié)點的數(shù)據(jù)塊;
[0015]其中,所述第一加載服務器中存儲的數(shù)據(jù)與所述第二加載服務器中存儲的數(shù)據(jù)相同,且屬于同一數(shù)據(jù)文件。
[0016]第二方面,提供一種數(shù)據(jù)加載方法,該方法應用于數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的加載,該數(shù)據(jù)庫系統(tǒng)包括多個數(shù)據(jù)節(jié)點和管理各數(shù)據(jù)節(jié)點的主節(jié)點,該方法采用加載服務器為所述數(shù)據(jù)庫系統(tǒng)提供數(shù)據(jù)塊,所述數(shù)據(jù)塊為包括多條邏輯記錄的數(shù)據(jù)傳輸單元,其中每條邏輯記錄對應數(shù)據(jù)庫中存儲的一行數(shù)據(jù),包括:
[0017]第一加載服務器接收并存儲需要提供給數(shù)據(jù)庫系統(tǒng)內(nèi)的數(shù)據(jù)節(jié)點的數(shù)據(jù);
[0018]所述第一加載服務器將接收的數(shù)據(jù)劃分為多個數(shù)據(jù)塊;
[0019]所述第一加載服務器在接收到所述數(shù)據(jù)庫系統(tǒng)內(nèi)的多個數(shù)據(jù)節(jié)點根據(jù)所述主節(jié)點的指示發(fā)送的數(shù)據(jù)請求消息后,分別基于劃分的數(shù)據(jù)塊為所述多個數(shù)據(jù)節(jié)點中的每個數(shù)據(jù)節(jié)點分配不同的數(shù)據(jù)塊,以使每個數(shù)據(jù)節(jié)點在獲取數(shù)據(jù)塊后,將獲取的數(shù)據(jù)塊中的每條邏輯記錄分配到該條邏輯記錄所屬的數(shù)據(jù)節(jié)點。
[0020]結(jié)合第二方面,在第一種可能的實現(xiàn)方式中,所述第一加載服務器接收并存儲的數(shù)據(jù)與其它為所述數(shù)據(jù)庫系統(tǒng)內(nèi)的數(shù)據(jù)節(jié)點提供數(shù)據(jù)塊的加載服務器接收并存儲的數(shù)據(jù)不同;所述第一加載服務器劃分的每個數(shù)據(jù)塊中的數(shù)據(jù)是行完整的。
[0021]結(jié)合第二方面,在第二種可能的實現(xiàn)方式中,所述第一加載服務器接收并存儲的數(shù)據(jù)與其它為所述數(shù)據(jù)庫系統(tǒng)內(nèi)的數(shù)據(jù)節(jié)點提供數(shù)據(jù)塊的加載服務器接收并存儲的數(shù)據(jù)相同,且屬于同一個數(shù)據(jù)文件;
[0022]所述第一加載服務器分別為所述多個數(shù)據(jù)節(jié)點中的每個數(shù)據(jù)節(jié)點分配不同的數(shù)據(jù)塊之前,還包括:
[0023]針對一個數(shù)據(jù)節(jié)點,若該數(shù)據(jù)節(jié)點在向所述第一加載服務器發(fā)送數(shù)據(jù)請求消息之前,已從其它加載服務器獲取了數(shù)據(jù)塊,則所述第一加載服務器根據(jù)該數(shù)據(jù)節(jié)點發(fā)送的文件偏移量信息,確定需要發(fā)送給該數(shù)據(jù)節(jié)點的數(shù)據(jù)塊。
[0024]結(jié)合第二方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述第一加載服務器將接收的數(shù)據(jù)劃分為多個數(shù)據(jù)塊,包括:
[0025]所述第一加載服務器根據(jù)所述數(shù)據(jù)庫系統(tǒng)內(nèi)的數(shù)據(jù)節(jié)點的個數(shù)M,將存儲的數(shù)據(jù)劃分為M個數(shù)據(jù)組,并將每個數(shù)據(jù)組中的數(shù)據(jù)劃分為多個數(shù)據(jù)塊;其中,M為正整數(shù),每個數(shù)據(jù)組對應一個數(shù)據(jù)節(jié)點;
[0026]所述第一加載服務器分別為所述多個數(shù)據(jù)節(jié)點中的每個數(shù)據(jù)節(jié)點分配不同的數(shù)據(jù)塊,包括:
[0027]針對一個數(shù)據(jù)節(jié)點,所述第一加載服務器從對應該數(shù)據(jù)節(jié)點的數(shù)據(jù)組中選擇一個數(shù)據(jù)塊分配給該數(shù)據(jù)節(jié)點。
[0028]結(jié)合第二方面的第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述第一加載服務器將存儲的數(shù)據(jù)劃分為M個數(shù)據(jù)組之后,還包括:
[0029]所述第一加載服務器根據(jù)不同數(shù)據(jù)節(jié)點的數(shù)據(jù)處理速率的不同,調(diào)整劃分的每個數(shù)據(jù)組的數(shù)據(jù)量。
[0030]第三方面,提供一種數(shù)據(jù)加載方法,該方法應用于數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的加載,該數(shù)據(jù)庫系統(tǒng)包括多個數(shù)據(jù)節(jié)點和管理各數(shù)據(jù)節(jié)點的主節(jié)點,該方法采用加載服務器為所述數(shù)據(jù)庫系統(tǒng)提供數(shù)據(jù)塊,所述數(shù)據(jù)塊為包括多條邏輯記錄的數(shù)據(jù)傳輸單元,其中每條邏輯記錄對應數(shù)據(jù)庫中存儲的一行數(shù)據(jù),該方法包括:
[0031]主節(jié)點接收數(shù)據(jù)加載指令;
[0032]所述主節(jié)點將所述數(shù)據(jù)加載指令發(fā)送給所屬的數(shù)據(jù)庫系統(tǒng)內(nèi)的每個數(shù)據(jù)節(jié)點,指示所述每個數(shù)據(jù)節(jié)點從加載服務器中獲取數(shù)據(jù)塊,并將獲取的數(shù)據(jù)塊中的每條邏輯記錄分配到該條邏輯記錄所屬的數(shù)據(jù)節(jié)點。
[0033]第四方面,提供一種數(shù)據(jù)加載裝置,該裝置應用于數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的加載,該數(shù)據(jù)庫系統(tǒng)包括多個數(shù)據(jù)節(jié)點和管理各數(shù)據(jù)節(jié)點的主節(jié)點,所述裝置設置于每個數(shù)據(jù)節(jié)點中,所述數(shù)據(jù)庫系統(tǒng)外設置有加載服務器為所述數(shù)據(jù)庫系統(tǒng)提供數(shù)據(jù)塊,所述數(shù)據(jù)塊為包括多條邏輯記錄的數(shù)據(jù)傳輸單元,其中每條邏輯記錄對應數(shù)據(jù)庫中存儲的一行數(shù)據(jù),該裝置包括:
[0034]獲取模塊,用于在接收到所屬的數(shù)據(jù)庫系統(tǒng)的主節(jié)點發(fā)送的數(shù)據(jù)加載指令后,從加載服務器中獲取數(shù)據(jù)塊,并將獲取的數(shù)據(jù)塊傳輸至檢測模塊;
[0035]檢測模塊,用于檢測所述獲取模塊獲取的數(shù)據(jù)塊中每條邏輯記錄所屬的數(shù)據(jù)節(jié)
占.[0036]處理模塊,用于針對數(shù)據(jù)塊中的任意一條邏輯記錄,在所述檢測模塊檢測到該條邏輯記錄屬于本節(jié)點后,將該條邏輯記錄存儲在本地,在檢測到該條邏輯記錄屬于所述數(shù)據(jù)庫系統(tǒng)的其它數(shù)據(jù)節(jié)點后,將該條邏輯記錄轉(zhuǎn)發(fā)給所述其它數(shù)據(jù)節(jié)點。
[0037]結(jié)合第四方面,在第一種可能的實現(xiàn)方式中,所述獲取模塊具體用于:
[0038]至少一次向多個加載服務器中的第一加載服務器發(fā)送數(shù)據(jù)請求消息,每次接收所述第一加載服務器分配的一個數(shù)據(jù)塊;若確定所述第一加載服務器分配數(shù)據(jù)塊的速率低于設定閾值,則在將最近一次獲取的數(shù)據(jù)塊處理完畢后,至少一次向第二加載服務器發(fā)送數(shù)據(jù)請求消息,每次接收所述第二加載服務器分配的一個數(shù)據(jù)塊。
[0039]結(jié)合第四方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述獲取模塊具體用于:[0040]確定第一次向所述第二加載服務器發(fā)送的數(shù)據(jù)請求消息,所述確定的數(shù)據(jù)請求消息中包括已獲取的數(shù)據(jù)塊對應的文件偏移量信息,向所述第二加載服務器發(fā)送確定的所述數(shù)據(jù)請求消息,以使所述第二加載服務器根據(jù)接收的數(shù)據(jù)請求消息中包括的所述文件偏移量信息確定需要分配給所述第一數(shù)據(jù)節(jié)點的數(shù)據(jù)塊;其中,所述第一加載服務器中存儲的數(shù)據(jù)與所述第二加載服務器中存儲的數(shù)據(jù)相同,且屬于同一數(shù)據(jù)文件。
[0041]第五方面,提供一種數(shù)據(jù)加載裝置,該裝置應用于數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的加載,該數(shù)據(jù)庫系統(tǒng)包括多個數(shù)據(jù)節(jié)點和管理各數(shù)據(jù)節(jié)點的主節(jié)點,該裝置設置于加載服務器中,所述加載服務器用于為所述數(shù)據(jù)庫系統(tǒng)提供數(shù)據(jù)塊,所述數(shù)據(jù)塊為包括多條邏輯記錄的數(shù)據(jù)傳輸單元,其中每條邏輯記錄對應數(shù)據(jù)庫中存儲的一行數(shù)據(jù),該裝置包括:
[0042]接收模塊,用于接收并存儲需要提供給數(shù)據(jù)庫系統(tǒng)內(nèi)的數(shù)據(jù)節(jié)點的數(shù)據(jù),并將接收的數(shù)據(jù)傳輸至劃分模塊;
[0043]劃分模塊,用于將接收模塊接收的數(shù)據(jù)劃分為多個數(shù)據(jù)塊,并將劃分的數(shù)據(jù)塊傳輸至分配模塊;
[0044]分配模塊,用于在接收到所述數(shù)據(jù)庫系統(tǒng)內(nèi)的多個數(shù)據(jù)節(jié)點根據(jù)所述主節(jié)點的指示發(fā)送的數(shù)據(jù)請求消息后,分別基于劃分模塊劃分的數(shù)據(jù)塊為所述多個數(shù)據(jù)節(jié)點中的每個數(shù)據(jù)節(jié)點分配不同的數(shù)據(jù)塊,以使每個數(shù)據(jù)節(jié)點在獲取數(shù)據(jù)塊后,將獲取的數(shù)據(jù)塊中的每條邏輯記錄分配到該條邏輯記錄所屬的數(shù)據(jù)節(jié)點。
[0045]結(jié)合第五方面,在第一種可能的實現(xiàn)方式中,所述接收模塊接收并存儲的數(shù)據(jù)與為所述數(shù)據(jù)庫系統(tǒng)內(nèi)的數(shù)據(jù)節(jié)點提供數(shù)據(jù)塊的其它加載服務器接收并存儲的數(shù)據(jù)不同;所述劃分模塊劃分的每個數(shù)據(jù)塊中的數(shù)據(jù)是行完整的。
[0046]結(jié)合第五方面,在第二種可能的實現(xiàn)方式中,所述接收模塊接收并存儲的數(shù)據(jù)與為所述數(shù)據(jù)庫系統(tǒng)內(nèi)的數(shù)據(jù)節(jié)點提供數(shù)據(jù)塊的其它加載服務器接收并存儲的數(shù)據(jù)相同,且屬于同一個數(shù)據(jù)文件;
[0047]所述分配模塊具體用于:針對一個數(shù)據(jù)節(jié)點,若該數(shù)據(jù)節(jié)點在向所述第一加載服務器發(fā)送數(shù)據(jù)請求消息之前,已從其它加載服務器獲取了數(shù)據(jù)塊,則根據(jù)該數(shù)據(jù)節(jié)點發(fā)送的文件偏移量信息,確定需要發(fā)送給該數(shù)據(jù)節(jié)點的數(shù)據(jù)塊。
[0048]結(jié)合第五方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述劃分模塊具體用于:根據(jù)所述數(shù)據(jù)庫系統(tǒng)內(nèi)的數(shù)據(jù)節(jié)點的個數(shù)M,將存儲的數(shù)據(jù)劃分為M個數(shù)據(jù)組,并將每個數(shù)據(jù)組中的數(shù)據(jù)劃分為多個數(shù)據(jù)塊;其中,M為正整數(shù),每個數(shù)據(jù)組對應一個數(shù)據(jù)節(jié)點;
[0049]所述分配模塊具體用于:針對一個數(shù)據(jù)節(jié)點,從對應該數(shù)據(jù)節(jié)點的數(shù)據(jù)組中選擇一個數(shù)據(jù)塊分配給該數(shù)據(jù)節(jié)點。
[0050]結(jié)合第五方面的第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,,所述劃分模塊還用于:
[0051]所述第一加載服務器根據(jù)不同數(shù)據(jù)節(jié)點的數(shù)據(jù)處理速率的不同,調(diào)整劃分的每個數(shù)據(jù)組的數(shù)據(jù)量。
[0052]第六方面,提供一種數(shù)據(jù)加載裝置,該裝置應用于數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的加載,該數(shù)據(jù)庫系統(tǒng)包括多個數(shù)據(jù)節(jié)點和管理各數(shù)據(jù)節(jié)點的主節(jié)點,所述裝置設置于所述主節(jié)點中;所述數(shù)據(jù)庫系統(tǒng)外設置有加載服務器為所述數(shù)據(jù)庫系統(tǒng)提供數(shù)據(jù)塊,所述數(shù)據(jù)塊為包括多條邏輯記錄的數(shù)據(jù)傳輸單元,其中每條邏輯記錄對應數(shù)據(jù)庫中存儲的一行數(shù)據(jù),該裝置包括:
[0053]接收模塊,用于接收數(shù)據(jù)加載指令,并將接收的所述數(shù)據(jù)加載指令傳輸至發(fā)送模塊;
[0054]發(fā)送模塊,用于將所述數(shù)據(jù)加載指令發(fā)送給所屬的數(shù)據(jù)庫系統(tǒng)內(nèi)的每個數(shù)據(jù)節(jié)點,指示所述每個數(shù)據(jù)節(jié)點從加載服務器中獲取數(shù)據(jù)塊,并將獲取的數(shù)據(jù)塊中的每條邏輯記錄分配到該條邏輯記錄所屬的數(shù)據(jù)節(jié)點。
[0055]本發(fā)明第一方面提供的數(shù)據(jù)加載方法,將分布式數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)重分布能力布置在數(shù)據(jù)庫系統(tǒng)中的每個數(shù)據(jù)節(jié)點,每個數(shù)據(jù)節(jié)點在獲取到不屬于本節(jié)點的數(shù)據(jù)時將該數(shù)據(jù)重分布到該數(shù)據(jù)所屬的節(jié)點,從而可以充分利用數(shù)據(jù)庫系統(tǒng)中每個數(shù)據(jù)節(jié)點的資源及網(wǎng)絡帶寬,而且還能顯著提高整個數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)加載及數(shù)據(jù)處理的效率;該方法中,加載服務器可以將存儲的數(shù)據(jù)以數(shù)據(jù)塊的形式批量分配給不同的數(shù)據(jù)節(jié)點,這種方式相比傳統(tǒng)的基于開放數(shù)據(jù)庫互連(Open Database Connectivity, ODBC)或數(shù)據(jù)庫連接(Java DataBase Connectivity, JDBC)等標準數(shù)據(jù)庫連接方式的數(shù)據(jù)加載,即采用主節(jié)點將結(jié)構(gòu)化查詢語言(Structured Query Language, SQL)語句逐個插入數(shù)據(jù)節(jié)點的方式,可以極大提高數(shù)據(jù)加載的效率。
[0056]本發(fā)明第二方面提供的數(shù)據(jù)加載方法,通過設置加載服務器來為數(shù)據(jù)庫系統(tǒng)內(nèi)的數(shù)據(jù)節(jié)點進行數(shù)據(jù)加載提供數(shù)據(jù)塊,可以將存儲的數(shù)據(jù)以數(shù)據(jù)塊的形式批量分配給不同的數(shù)據(jù)節(jié)點,從而可以使各數(shù)據(jù)節(jié)點并行執(zhí)行數(shù)據(jù)處理的操作,不僅可以充分利用每個數(shù)據(jù)節(jié)點的資源及網(wǎng)絡帶寬,而且相比傳統(tǒng)的基于ODBC或JDBC等標準數(shù)據(jù)庫連接方式的數(shù)據(jù)加載,加載效率更高;
[0057]本發(fā)明第三方面提供的數(shù)據(jù)加載方法,主節(jié)點在接收到數(shù)據(jù)加載指令后,將數(shù)據(jù)加載指令下發(fā)給每個數(shù)據(jù)節(jié)點,從而將數(shù)據(jù)重分布能力轉(zhuǎn)交給每個數(shù)據(jù)節(jié)點,以充分利用每個數(shù)據(jù)節(jié)點的資源及網(wǎng)絡帶寬。
【專利附圖】

【附圖說明】
[0058]圖1為本發(fā)明實施例一提供的數(shù)據(jù)加載方法流程圖;
[0059]圖2為本發(fā)明實施例提供的分布式數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)示意圖;
[0060]圖3為本發(fā)明實施例分布式數(shù)據(jù)庫系統(tǒng)進行數(shù)據(jù)加載的示意圖;
[0061]圖4為本發(fā)明實施例二提供的數(shù)據(jù)加載方法流程圖;
[0062]圖5為方式一中加載服務器分發(fā)數(shù)據(jù)示意圖;
[0063]圖6為方式二中分布式數(shù)據(jù)庫系統(tǒng)并行加載大小為IT的大文件fileOOl的示意圖;
[0064]圖7為方式二中對單個大文件的數(shù)據(jù)切割示意圖;
[0065]圖8為方式二中加載服務器分發(fā)數(shù)據(jù)示意圖;
[0066]圖9為本發(fā)明實施例三提供的數(shù)據(jù)加載方法流程圖;
[0067]圖10為本發(fā)明實施例四針對多個數(shù)據(jù)文件進行數(shù)據(jù)加載的方法流程圖;
[0068]圖11為本發(fā)明實施例五針對單個較大的數(shù)據(jù)文件進行數(shù)據(jù)加載的方法流程圖;
[0069]圖12為本發(fā)明實施例一提供的數(shù)據(jù)加載裝置示意圖;[0070]圖13為本發(fā)明實施例二提供的數(shù)據(jù)加載裝置示意圖;
[0071]圖14為本發(fā)明實施例三提供的數(shù)據(jù)加載裝置示意圖。
【具體實施方式】
[0072]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。
[0073]下面結(jié)合說明書附圖對本發(fā)明實施例作進一步詳細描述。
[0074]如圖1所示,為本發(fā)明實施例一提供的數(shù)據(jù)加載方法流程圖;
[0075]本發(fā)明實施例應用于數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的加載,該數(shù)據(jù)庫系統(tǒng)包括多個數(shù)據(jù)節(jié)點和管理各數(shù)據(jù)節(jié)點的主節(jié)點,本發(fā)明實施例中,采用加載服務器為所述數(shù)據(jù)庫系統(tǒng)提供數(shù)據(jù)塊,所述數(shù)據(jù)塊為包括多條邏輯記錄的數(shù)據(jù)傳輸單元,其中每條邏輯記錄對應數(shù)據(jù)庫中存儲的一行數(shù)據(jù),該方法包括以下步驟:
[0076]SlOl:第一數(shù)據(jù)節(jié)點在接收到所屬的數(shù)據(jù)庫系統(tǒng)的主節(jié)點發(fā)送的數(shù)據(jù)加載指令后,從加載服務器中獲取數(shù)據(jù)塊;
[0077]S102:所述第一數(shù)據(jù)節(jié)點檢測獲取的數(shù)據(jù)塊中每條邏輯記錄所屬的數(shù)據(jù)節(jié)點;
[0078]S103:針對數(shù)據(jù)塊中的任意一條邏輯記錄,所述第一數(shù)據(jù)節(jié)點在檢測到該條邏輯記錄屬于本節(jié)點后,將該條邏輯記錄存儲在本地,在檢測到該條邏輯記錄屬于所述數(shù)據(jù)庫系統(tǒng)的其它數(shù)據(jù)節(jié)點后,將該條邏輯記錄轉(zhuǎn)發(fā)給所述其它數(shù)據(jù)節(jié)點。
[0079]本發(fā)明實施例中的分布式數(shù)據(jù)庫系統(tǒng)主要包括一個主節(jié)點(master)及多個數(shù)據(jù)節(jié)點(datanode),還可以包括備用節(jié)點(standby),以供主節(jié)點出現(xiàn)故障的情況下使用,同時,為了輔助每個數(shù)據(jù)節(jié)點快速進行數(shù)據(jù)加載,本發(fā)明實施例中,預先設置了為數(shù)據(jù)庫系統(tǒng)內(nèi)的數(shù)據(jù)節(jié)點進行數(shù)據(jù)加載提供數(shù)據(jù)塊的服務器,即加載服務器;如圖2所示,為本發(fā)明實施例提供的分布式數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)示意圖。
[0080]本發(fā)明實施例中,將分布式數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)重分布能力布置在數(shù)據(jù)庫系統(tǒng)中的每個數(shù)據(jù)節(jié)點,使每個數(shù)據(jù)節(jié)點在獲取到不屬于本節(jié)點的數(shù)據(jù)時將該數(shù)據(jù)重分布到該數(shù)據(jù)所屬的節(jié)點,從而可以充分利用數(shù)據(jù)庫系統(tǒng)中每個數(shù)據(jù)節(jié)點的資源及網(wǎng)絡帶寬,而且還能顯著提高整個數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)加載及數(shù)據(jù)處理的效率;具體地,每個數(shù)據(jù)節(jié)點確定獲取的數(shù)據(jù)所屬的數(shù)據(jù)節(jié)點的方式可以采用現(xiàn)有的方法,即,針對一個數(shù)據(jù)節(jié)點,該數(shù)據(jù)節(jié)點針對下載的數(shù)據(jù)塊中的每條邏輯記錄計算分布列的哈希(hash)值,然后根據(jù)計算的哈希值確定該條邏輯記錄所屬的數(shù)據(jù)節(jié)點。
[0081]本發(fā)明實施例中的加載服務器可以為每個數(shù)據(jù)節(jié)點提供基于超文本傳輸協(xié)議(Hypertext transfer protocol, HTTP)或文件傳輸協(xié)議(File Transfer Protocol, FTP)的數(shù)據(jù)加載服務,即,將存儲的數(shù)據(jù)以數(shù)據(jù)塊的形式批量分配給不同的數(shù)據(jù)節(jié)點,這種方式相比傳統(tǒng)的基于開放數(shù)據(jù)庫互連(Open Database Connectivity, ODBC)或數(shù)據(jù)庫連接(Java Data Base Connectivity, JDBC)等標準數(shù)據(jù)庫連接方式的數(shù)據(jù)加載,即采用主節(jié)點將SQL語句逐個插入數(shù)據(jù)節(jié)點的方式,可以極大提高數(shù)據(jù)加載的效率。
[0082]在具體實施中,可以為數(shù)據(jù)庫系統(tǒng)創(chuàng)建外表,在該外表中記錄加載服務器的地址,每個數(shù)據(jù)節(jié)點都可以對該外表進行查詢操作。
[0083]在具體實施過程中,可以設置一個或多個加載服務器,具體地,可以根據(jù)分布式數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)節(jié)點的個數(shù)和/或加載數(shù)據(jù)量的大小等確定加載服務器的個數(shù),比如,在加載數(shù)據(jù)量較大時,可以設置多個加載服務器同時提供數(shù)據(jù)加載服務,以避免加載服務器的出口帶寬成為數(shù)據(jù)加載的瓶頸,在數(shù)據(jù)節(jié)點個數(shù)較多時,也可以設置多個加載服務器,以避免過多的數(shù)據(jù)節(jié)點連接一個加載服務器,導致各數(shù)據(jù)節(jié)點的并行下載速率過慢。
[0084]如圖3所示,為本發(fā)明實施例分布式數(shù)據(jù)庫系統(tǒng)進行數(shù)據(jù)加載的示意圖,主節(jié)點在接收到數(shù)據(jù)加載指令后,將數(shù)據(jù)加載指令下發(fā)到各個數(shù)據(jù)節(jié)點,各數(shù)據(jù)節(jié)點接收到數(shù)據(jù)加載指令后,分別連接加載服務器,從加載服務器上下載數(shù)據(jù)塊,數(shù)據(jù)節(jié)點對下載的數(shù)據(jù)塊中的每條邏輯記錄進行分布計算,確定下載的數(shù)據(jù)塊中每條邏輯記錄所屬的節(jié)點,針對其中任意一條邏輯記錄,若確定該條邏輯記錄屬于本節(jié)點,將該條邏輯記錄寫入本地存儲隊列中,若確定該條邏輯記錄屬于其它數(shù)據(jù)節(jié)點,則對該條邏輯記錄進行重分布,即將該條邏輯記錄轉(zhuǎn)發(fā)給其它數(shù)據(jù)節(jié)點,當各數(shù)據(jù)節(jié)點在加載服務器上取不到數(shù)據(jù)時,完成數(shù)據(jù)加載,各數(shù)據(jù)節(jié)點將加載完成的信息反饋給主節(jié)點,主節(jié)點將加載完成的信息反饋給用戶。
[0085]可選地,步驟SlOl中,所述第一數(shù)據(jù)節(jié)點從加載服務器中獲取數(shù)據(jù)塊,包括:
[0086]所述第一數(shù)據(jù)節(jié)點至少一次向多個加載服務器中的第一加載服務器發(fā)送數(shù)據(jù)請求消息,每次接收所述第一加載服務器分配的一個數(shù)據(jù)塊;
[0087]若所述第一數(shù)據(jù)節(jié)點確定所述第一加載服務器分配數(shù)據(jù)塊的速率低于設定閾值,則在將最近一次獲取的數(shù)據(jù)塊處理完畢后,至少一次向第二加載服務器發(fā)送數(shù)據(jù)請求消息,每次接收所述第二加載服務器分配的一個數(shù)據(jù)塊。
[0088]在具體實施過程中,每個數(shù)據(jù)節(jié)點只需選擇設置的多個加載服務器中的一個加載服務器,向選擇的該加載服務器發(fā)送數(shù)據(jù)請求消息,在接收到該加載服務器發(fā)送的數(shù)據(jù)塊后,可以將該數(shù)據(jù)塊先緩存在本地,并處理緩存的數(shù)據(jù)塊,處理過程包括:判斷該數(shù)據(jù)塊包含的每條邏輯記錄所屬的節(jié)點,若確定該條邏輯記錄屬于本節(jié)點,則將該條邏輯記錄寫入本地存儲隊列中,若確定該條邏輯記錄屬于其它數(shù)據(jù)節(jié)點,則將該條邏輯記錄轉(zhuǎn)發(fā)給所屬的其它數(shù)據(jù)節(jié)點;當將緩存的數(shù)據(jù)塊中的每條邏輯記錄都處理完畢后再向加載服務器發(fā)送數(shù)據(jù)請求消息,下載另一個數(shù)據(jù)塊,如此,可以減少網(wǎng)絡交互,節(jié)省網(wǎng)絡帶寬。
[0089]在具體實施中,可以預先設置好每個數(shù)據(jù)節(jié)點首次連接的加載服務器,也可以由主節(jié)點在下發(fā)數(shù)據(jù)加載指令時,統(tǒng)一配置每個數(shù)據(jù)節(jié)點首次連接的加載服務器,以實現(xiàn)加載服務器之間的負載均衡,避免加載開始時,過多的數(shù)據(jù)節(jié)點從一個加載服務器上請求數(shù)據(jù),導致加載速率過慢。這種預先為每個數(shù)據(jù)節(jié)點分配加載服務器的方式,雖然可以在一開始進行數(shù)據(jù)加載時實現(xiàn)加載服務器的負載均衡,但是,由于不同加載服務器的數(shù)據(jù)提供性能可能不同,在設定時間內(nèi),有的加載服務器可能只可以為一個數(shù)據(jù)節(jié)點提供一個數(shù)據(jù)塊,有的加載服務器卻可能可以為多個數(shù)據(jù)節(jié)點分別提供多個數(shù)據(jù)塊,為了在數(shù)據(jù)加載過程中進一步提高下載效率,本發(fā)明實施例提出了調(diào)整策略:上述第一數(shù)據(jù)節(jié)點在發(fā)現(xiàn)當前為其提供數(shù)據(jù)的加載服務器的數(shù)據(jù)提供性能較低,也即分配數(shù)據(jù)的速率較低時,為了提高數(shù)據(jù)加載效率,可以在處理完最近一次接收的數(shù)據(jù)塊后,重新連接其它的加載服務器下載數(shù)據(jù),除此,第一數(shù)據(jù)節(jié)點也可以在發(fā)現(xiàn)第一加載服務器不再發(fā)送數(shù)據(jù)時,重新連接其它的加載服務器下載數(shù)據(jù),第一數(shù)據(jù)節(jié)點重復上述請求、接收數(shù)據(jù)的步驟,直到從所有的加載服務器都獲取不到數(shù)據(jù),則表示完成了數(shù)據(jù)加載。
[0090]可選地,所述第一數(shù)據(jù)節(jié)點至少一次向所述第二加載服務器發(fā)送數(shù)據(jù)請求消息,包括:
[0091]所述第一數(shù)據(jù)節(jié)點確定第一次向所述第二加載服務器發(fā)送的數(shù)據(jù)請求消息;所述確定的數(shù)據(jù)請求消息中包括已獲取的數(shù)據(jù)塊對應的文件偏移量信息;
[0092]所述第一數(shù)據(jù)節(jié)點向所述第二加載服務器發(fā)送確定的所述數(shù)據(jù)請求消息,以使所述第二加載服務器根據(jù)接收的數(shù)據(jù)請求消息中包括的所述文件偏移量信息確定需要分配給所述第一數(shù)據(jù)節(jié)點的數(shù)據(jù)塊;
[0093]其中,所述第一加載服務器中存儲的數(shù)據(jù)與所述第二加載服務器中存儲的數(shù)據(jù)相同,且屬于同一數(shù)據(jù)文件。
[0094]在具體實施過程中,各加載服務器需要存儲的數(shù)據(jù)可能屬于多個數(shù)據(jù)文件,為了避免重復下載,可以使不同加載服務器分別存儲不同的數(shù)據(jù)文件,這時,當上述第一數(shù)據(jù)節(jié)點從第一加載服務器轉(zhuǎn)移到第二加載服務器下載數(shù)據(jù)時,不必攜帶已下載數(shù)據(jù)對應的文件偏移量信息;當系統(tǒng)外的節(jié)點發(fā)送給各加載服務器的數(shù)據(jù)屬于同一個較大的數(shù)據(jù)文件時,為了避免進行文件切割導致數(shù)據(jù)完整性受到破壞及增加額外的切割計算的流程,可以將該數(shù)據(jù)文件分別存儲到每個加載服務器中,并預先為每個數(shù)據(jù)節(jié)點分配好屬于該數(shù)據(jù)節(jié)點處理的部分數(shù)據(jù),在數(shù)據(jù)節(jié)點請求數(shù)據(jù)時,為該數(shù)據(jù)節(jié)點分配屬于該數(shù)據(jù)節(jié)點的那部分數(shù)據(jù),在該數(shù)據(jù)節(jié)點從第一加載服務器轉(zhuǎn)移到第二加載服務器上獲取數(shù)據(jù)時,第二加載服務器根據(jù)該數(shù)據(jù)節(jié)點攜帶的已處理數(shù)據(jù)對應的文件偏移量信息,繼續(xù)為該數(shù)據(jù)節(jié)點提供屬于該數(shù)據(jù)節(jié)點的數(shù)據(jù)。這里的文件偏移量信息可以用于使第二加載服務器確定該數(shù)據(jù)節(jié)點已下載的數(shù)據(jù)對應的文件位置,以確定繼續(xù)為該數(shù)據(jù)節(jié)點提供的數(shù)據(jù),保證該數(shù)據(jù)節(jié)點下載數(shù)據(jù)的完整性和不重復性。
[0095]上述步驟中,當所有的加載服務器中的數(shù)據(jù)分發(fā)完畢后,完成數(shù)據(jù)加載,這時,每個數(shù)據(jù)節(jié)點將數(shù)據(jù)加載完成的信息反饋到主節(jié)點,主節(jié)點在接收到各數(shù)據(jù)節(jié)點發(fā)送的數(shù)據(jù)加載完成的信息后,將數(shù)據(jù)加載完成的信息通知給用戶。
[0096]與上述數(shù)據(jù)節(jié)點執(zhí)行數(shù)據(jù)加載的方法流程對應,本發(fā)明實施例還提供了以下加載服務器為各數(shù)據(jù)節(jié)點提供數(shù)據(jù)的數(shù)據(jù)加載方法;
[0097]如圖4所示,為本發(fā)明實施例二提供的數(shù)據(jù)加載方法流程圖;
[0098]本發(fā)明實施例應用于數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的加載,該數(shù)據(jù)庫系統(tǒng)包括多個數(shù)據(jù)節(jié)點和管理各數(shù)據(jù)節(jié)點的主節(jié)點,在本發(fā)明實施例中,采用加載服務器為所述數(shù)據(jù)庫系統(tǒng)提供數(shù)據(jù)塊,所述數(shù)據(jù)塊為包括多條邏輯記錄的數(shù)據(jù)傳輸單元,其中每條邏輯記錄對應數(shù)據(jù)庫中存儲的一行數(shù)據(jù),該方法包括:
[0099]S401:第一加載服務器接收并存儲需要提供給數(shù)據(jù)庫系統(tǒng)內(nèi)的數(shù)據(jù)節(jié)點的數(shù)據(jù);
[0100]S402:所述第一加載服務器將接收的數(shù)據(jù)劃分為多個數(shù)據(jù)塊;
[0101]S403:所述第一加載服務器在接收到所述數(shù)據(jù)庫系統(tǒng)內(nèi)的多個數(shù)據(jù)節(jié)點根據(jù)所述主節(jié)點的指示發(fā)送的數(shù)據(jù)請求消息后,分別基于劃分的數(shù)據(jù)塊為所述多個數(shù)據(jù)節(jié)點中的每個數(shù)據(jù)節(jié)點分配不同的數(shù)據(jù)塊,以使每個數(shù)據(jù)節(jié)點在獲取數(shù)據(jù)塊后,將獲取的數(shù)據(jù)塊中的每條邏輯記錄分配到該條邏輯記錄所屬的數(shù)據(jù)節(jié)點。
[0102]本發(fā)明實施例中,通過設置加載服務器來為數(shù)據(jù)庫系統(tǒng)內(nèi)的數(shù)據(jù)節(jié)點進行數(shù)據(jù)加載提供數(shù)據(jù)塊,從而可以使各數(shù)據(jù)節(jié)點并行執(zhí)行數(shù)據(jù)處理的操作,以充分利用每個數(shù)據(jù)節(jié)點的資源及網(wǎng)絡帶寬,同時,第一加載服務器在接收到多個數(shù)據(jù)節(jié)點發(fā)送的數(shù)據(jù)請求消息后,為不同的數(shù)據(jù)節(jié)點分別分配不同的數(shù)據(jù)塊,以避免各數(shù)據(jù)節(jié)點對相同數(shù)據(jù)的重復性處理。
[0103]本發(fā)明實施例中的加載服務器可以為每個數(shù)據(jù)節(jié)點提供基于HTTP或FTP的數(shù)據(jù)加載服務,即,將存儲的數(shù)據(jù)以數(shù)據(jù)塊的形式批量分配給不同的數(shù)據(jù)節(jié)點,這種方式相比傳統(tǒng)的基于ODBC或JDBC等標準數(shù)據(jù)庫連接方式的數(shù)據(jù)加載,即采用主節(jié)點將SQL語句逐個插入數(shù)據(jù)節(jié)點的方式,可以極大提高數(shù)據(jù)加載的效率。
[0104]在具體實施過程中,分布式數(shù)據(jù)庫系統(tǒng)可能需要加載多個較小的數(shù)據(jù)文件,也可能需要加載一個較大的數(shù)據(jù)文件,針對這兩種不同情況,各加載服務器可以選擇不同的數(shù)據(jù)存儲方式,下面分別作介紹:
[0105]方式一,每個加載服務器接收并存儲不同的數(shù)據(jù);
[0106]也即,在上述步驟S401中,所述第一加載服務器接收并存儲的數(shù)據(jù)與其它為所述數(shù)據(jù)庫系統(tǒng)內(nèi)的數(shù)據(jù)節(jié)點提供數(shù)據(jù)塊的加載服務器接收并存儲的數(shù)據(jù)不同;所述第一加載服務器劃分的每個數(shù)據(jù)塊中的數(shù)據(jù)是行完整的。
[0107]這種方式一般適用于數(shù)據(jù)庫系統(tǒng)需要加載多個較小的數(shù)據(jù)文件的情況,采用這種方式,不同加載服務器分別接收并存儲數(shù)據(jù)庫系統(tǒng)外的節(jié)點發(fā)送的不同的數(shù)據(jù)文件,不僅可以避免不同加載服務器對相同數(shù)據(jù)的重復存儲,節(jié)省加載服務器的存儲空間,還可以避免數(shù)據(jù)節(jié)點對不同加載服務器中相同數(shù)據(jù)的重復下載,同時,由于每個加載服務器存儲的數(shù)據(jù)文件不同,而且,第一加載服務器劃分的每個數(shù)據(jù)塊中的數(shù)據(jù)是行完整的,因此,數(shù)據(jù)節(jié)點在從一個加載服務器轉(zhuǎn)移到另一個加載服務器下載數(shù)據(jù)時,不必攜帶已下載數(shù)據(jù)的文件偏移量信息;
[0108]當然,對于單個較大的數(shù)據(jù)文件,比如數(shù)據(jù)量為IT的數(shù)據(jù)文件,也可以采用這種方式,只不過在這種情況下,還需要該系統(tǒng)外的節(jié)點按照加載服務器的數(shù)量對該數(shù)據(jù)文件進行切割,并將切割后的每部分數(shù)據(jù)分別存儲到每個加載服務器中,在切割中需要保證每部分數(shù)據(jù)的行完整性,因此,額外增加了系統(tǒng)外節(jié)點的工作量。
[0109]基于上述存儲數(shù)據(jù)的方式,這些加載服務器在將存儲的數(shù)據(jù)分配給數(shù)據(jù)庫系統(tǒng)中的每個數(shù)據(jù)節(jié)點時,可以采用以下方式:
[0110]如圖5所示,為方式一中加載服務器分發(fā)數(shù)據(jù)示意圖;圖中虛線表示數(shù)據(jù)節(jié)點與加載服務器未建立連接,實線表示數(shù)據(jù)節(jié)點與加載服務器已建立連接;在具體實施中,每個加載服務器將存儲的數(shù)據(jù)劃分為多個行完整的數(shù)據(jù)塊,在接收到多個數(shù)據(jù)節(jié)點發(fā)送的數(shù)據(jù)請求消息后,為這多個數(shù)據(jù)節(jié)點中的每個數(shù)據(jù)節(jié)點分別分配一個數(shù)據(jù)塊,如圖5中,加載服務器I在接收到數(shù)據(jù)節(jié)點I和數(shù)據(jù)節(jié)點2的數(shù)據(jù)請求消息后,分別為數(shù)據(jù)節(jié)點I和數(shù)據(jù)節(jié)點2分配一個數(shù)據(jù)塊;若有的數(shù)據(jù)節(jié)點的處理性能高,在該數(shù)據(jù)節(jié)點處理完一個數(shù)據(jù)塊后,可以繼續(xù)為該數(shù)據(jù)節(jié)點分配其它的數(shù)據(jù)塊,如圖5中,在相同時間內(nèi),數(shù)據(jù)節(jié)點I和數(shù)據(jù)節(jié)點3各下載了 2個數(shù)據(jù)塊,數(shù)據(jù)節(jié)點2只下載了一個數(shù)據(jù)塊;這種方式可以根據(jù)不同數(shù)據(jù)節(jié)點的處理能力分配數(shù)據(jù),相比在一開始就將數(shù)據(jù)平均分配給每個數(shù)據(jù)節(jié)點的方式,可以提高數(shù)據(jù)庫系統(tǒng)處理數(shù)據(jù)的整體效率;在具體實施中,當一個數(shù)據(jù)節(jié)點探測到當前連接的下載服務器的數(shù)據(jù)提供性能較低時,重新連接其它的加載服務器下載數(shù)據(jù),如圖5中,數(shù)據(jù)節(jié)點I開始時從加載服務器I上下載數(shù)據(jù),當該數(shù)據(jù)節(jié)點確定該加載服務器I的數(shù)據(jù)分配速率低于設定閾值時,重新連接加載服務器2,從加載服務器2上繼續(xù)下載數(shù)據(jù)。
[0111]方式二、每個加載服務器接收并存儲同一數(shù)據(jù)文件;
[0112]也即,在上述步驟S401中,所述第一加載服務器接收并存儲的數(shù)據(jù)與其它為所述數(shù)據(jù)庫系統(tǒng)內(nèi)的數(shù)據(jù)節(jié)點提供數(shù)據(jù)塊的加載服務器接收并存儲的數(shù)據(jù)相同,且屬于同一個數(shù)據(jù)文件;
[0113]在該方式下,所述第一加載服務器分別為所述多個數(shù)據(jù)節(jié)點中的每個數(shù)據(jù)節(jié)點分配不同的數(shù)據(jù)塊之前,還包括:針對一個數(shù)據(jù)節(jié)點,若該數(shù)據(jù)節(jié)點在向所述第一加載服務器發(fā)送數(shù)據(jù)請求消息之前,已從其它加載服務器獲取了數(shù)據(jù)塊,則所述第一加載服務器根據(jù)該數(shù)據(jù)節(jié)點發(fā)送的文件偏移量信息,確定需要發(fā)送給該數(shù)據(jù)節(jié)點的數(shù)據(jù)塊。
[0114]該方式二適用于數(shù)據(jù)庫系統(tǒng)加載一個較大的數(shù)據(jù)文件的情況,在上述關(guān)于方式一的描述中已說明,當數(shù)據(jù)庫系統(tǒng)加載一個較大的數(shù)據(jù)文件時,也可以采用上述方式一的方式,只是方式一在處理這種情況時會額外增加系統(tǒng)外節(jié)點處理數(shù)據(jù)的負擔,并且有可能會破壞數(shù)據(jù)的行完整性,而該方式二由于無需將數(shù)據(jù)文件進行切割,可以保證數(shù)據(jù)的完整性及避免增加系統(tǒng)外節(jié)點處理數(shù)據(jù)的負擔。
[0115]采用這種方式,需要預先確定為每個數(shù)據(jù)節(jié)點分配的數(shù)據(jù)塊,針對其中一個數(shù)據(jù)節(jié)點,在該數(shù)據(jù)節(jié)點向任意一個加載服務器請求數(shù)據(jù)時,該加載服務器從預先確定的需要為該數(shù)據(jù)節(jié)點分配的數(shù)據(jù)塊中,選擇數(shù)據(jù)塊發(fā)送給該數(shù)據(jù)節(jié)點。
[0116]在具體實施過程中,所述第一加載服務器為每個數(shù)據(jù)節(jié)點分配數(shù)據(jù)塊之前,針對一個數(shù)據(jù)節(jié)點,若該數(shù)據(jù)節(jié)點在向所述第一加載服務器發(fā)送數(shù)據(jù)請求消息之前,已從其它加載服務器獲取了數(shù)據(jù)塊,則所述第一加載服務器可以根據(jù)該數(shù)據(jù)節(jié)點發(fā)送的文件偏移量信息,確定需要發(fā)送給該數(shù)據(jù)節(jié)點的數(shù)據(jù);該文件偏移量信息可以用于使第二加載服務器確定該數(shù)據(jù)節(jié)點已下載數(shù)據(jù)對應的文件位置,以確定繼續(xù)為該數(shù)據(jù)節(jié)點分配的數(shù)據(jù),保證該數(shù)據(jù)節(jié)點下載數(shù)據(jù)的完整性和不重復性。
[0117]如圖6所示,為上述方式二中分布式數(shù)據(jù)庫系統(tǒng)并行加載大小為IT的大文件fileOOl的示意圖;主節(jié)點在接收到數(shù)據(jù)加載指令后,將數(shù)據(jù)加載指令下發(fā)到各個數(shù)據(jù)節(jié)點,每個數(shù)據(jù)節(jié)點在接收到數(shù)據(jù)加載指令后,分別連接一個加載服務器,從連接的加載服務器上下載數(shù)據(jù)塊,針對其中一個數(shù)據(jù)節(jié)點,該數(shù)據(jù)節(jié)點對下載的數(shù)據(jù)塊中的每條邏輯記錄進行分布計算,確定下載的數(shù)據(jù)塊中每條邏輯記錄所屬的節(jié)點,針對其中一條邏輯記錄,若確定下載的該條邏輯記錄屬于本節(jié)點,則直接將下載的該條邏輯記錄插入本地存儲隊列,若確定下載的該條邏輯記錄屬于其它節(jié)點,則將該條邏輯記錄轉(zhuǎn)發(fā)給其他節(jié)點,在該數(shù)據(jù)節(jié)點確定當前連接的加載服務器分配數(shù)據(jù)的速率低于設定閾值時,重新連接其它的加載服務器,并將已下載數(shù)據(jù)的文件偏移量信息發(fā)送給重新連接的加載服務器,當各數(shù)據(jù)節(jié)點在所有的加載服務器上都取不到數(shù)據(jù)時,完成數(shù)據(jù)加載,各數(shù)據(jù)節(jié)點將加載完成的結(jié)果反饋給主節(jié)點,主節(jié)點將各數(shù)據(jù)節(jié)點加載完成的信息反饋給用戶。
[0118]基于上述存儲數(shù)據(jù)的方式,這些加載服務器在將存儲的數(shù)據(jù)分配給數(shù)據(jù)庫系統(tǒng)中的每個數(shù)據(jù)節(jié)點時,可以采用以下方式:
[0119]可選地,所述第一加載服務器將接收的數(shù)據(jù)劃分為多個數(shù)據(jù)塊,包括:
[0120]所述第一加載服務器根據(jù)所述數(shù)據(jù)庫系統(tǒng)內(nèi)的數(shù)據(jù)節(jié)點的個數(shù)M,將存儲的數(shù)據(jù)劃分為M個數(shù)據(jù)組,并將每個數(shù)據(jù)組中的數(shù)據(jù)劃分為多個數(shù)據(jù)塊;其中,M為正整數(shù),每個數(shù)據(jù)組對應一個數(shù)據(jù)節(jié)點;
[0121]所述第一加載服務器分別為所述多個數(shù)據(jù)節(jié)點中的每個數(shù)據(jù)節(jié)點分配不同的數(shù)據(jù)塊,包括:
[0122]針對一個數(shù)據(jù)節(jié)點,所述第一加載服務器從對應該數(shù)據(jù)節(jié)點的數(shù)據(jù)組中選擇一個數(shù)據(jù)塊分配給該數(shù)據(jù)節(jié)點。
[0123]可選地,所述第一加載服務器將存儲的數(shù)據(jù)劃分為M個數(shù)據(jù)組之后,還包括:
[0124]所述第一加載服務器根據(jù)不同數(shù)據(jù)節(jié)點的數(shù)據(jù)處理速率的不同,調(diào)整劃分的每個數(shù)據(jù)組的數(shù)據(jù)量。
[0125]如圖7所示,為上述方式二中對單個大文件的數(shù)據(jù)切割示意圖;假設數(shù)據(jù)庫系統(tǒng)共有三個數(shù)據(jù)節(jié)點,每個加載服務器將數(shù)據(jù)文件劃分為三個數(shù)據(jù)組,分別用偏移量表示為A?B,B?C,C?D,其中,A、B、C、D分別表示相對數(shù)據(jù)文件開頭偏移的字節(jié)數(shù);每個數(shù)據(jù)組分別對應一個數(shù)據(jù)節(jié)點;當數(shù)據(jù)節(jié)點I處理數(shù)據(jù)的速率較慢時,加載服務器可以減少數(shù)據(jù)節(jié)點I對應的數(shù)據(jù)組的數(shù)據(jù)量,將其調(diào)整為A?B-N,N表示減少的字節(jié)數(shù),而將處理數(shù)據(jù)的速率較快的數(shù)據(jù)節(jié)點2的偏移量調(diào)整為B-N?C。
[0126]如圖8所示,為上述方式二中加載服務器分發(fā)數(shù)據(jù)示意圖;針對數(shù)據(jù)庫系統(tǒng)中的三個數(shù)據(jù)節(jié)點,每個加載服務器將存儲的同一個數(shù)據(jù)文件劃分為三個行完整的數(shù)據(jù)組,分別對應每個數(shù)據(jù)節(jié)點,并將每個數(shù)據(jù)組劃分為多個數(shù)據(jù)塊,針對其中任意一個加載服務器,該加載服務器在接收到某個數(shù)據(jù)節(jié)點發(fā)送的數(shù)據(jù)請求消息后,從對應該數(shù)據(jù)節(jié)點的數(shù)據(jù)組中選擇一個數(shù)據(jù)塊發(fā)送給該數(shù)據(jù)節(jié)點,在給每個數(shù)據(jù)節(jié)點分發(fā)數(shù)據(jù)時,可以從對應該數(shù)據(jù)節(jié)點的數(shù)據(jù)組中按順序取出數(shù)據(jù)塊分配給該數(shù)據(jù)節(jié)點,因此,每個數(shù)據(jù)塊中的數(shù)據(jù)不需要一定是行完整的,但是,在該數(shù)據(jù)節(jié)點從一個加載服務器轉(zhuǎn)移到其它加載服務器下載數(shù)據(jù)時,需要攜帶已下載數(shù)據(jù)的文件偏移量信息,以便于其它加載服務器根據(jù)該文件偏移量信息確定為該數(shù)據(jù)節(jié)點分配的數(shù)據(jù)塊,保證數(shù)據(jù)下載的完整性及不重復性。
[0127]與上述實施例一中數(shù)據(jù)節(jié)點執(zhí)行數(shù)據(jù)加載和實施例二中加載服務器為各數(shù)據(jù)節(jié)點提供數(shù)據(jù)的數(shù)據(jù)加載方法相對應,本發(fā)明實施例還提供了主節(jié)點指示各數(shù)據(jù)節(jié)點進行數(shù)據(jù)加載的方法;
[0128]如圖9所示,為本發(fā)明實施例三提供的數(shù)據(jù)加載方法流程圖;
[0129]本發(fā)明實施例應用于數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的加載,該數(shù)據(jù)庫系統(tǒng)包括多個數(shù)據(jù)節(jié)點和管理各數(shù)據(jù)節(jié)點的主節(jié)點,在本發(fā)明實施例中,采用加載服務器為所述數(shù)據(jù)庫系統(tǒng)提供數(shù)據(jù)塊,所述數(shù)據(jù)塊為包括多條邏輯記錄的數(shù)據(jù)傳輸單元,其中每條邏輯記錄對應數(shù)據(jù)庫中存儲的一行數(shù)據(jù),該方法包括:
[0130]S901:主節(jié)點接收數(shù)據(jù)加載指令;
[0131]S902:所述主節(jié)點將所述數(shù)據(jù)加載指令發(fā)送給所屬的數(shù)據(jù)庫系統(tǒng)內(nèi)的每個數(shù)據(jù)節(jié)點,指示所述每個數(shù)據(jù)節(jié)點從加載服務器中獲取數(shù)據(jù)塊,并將獲取的數(shù)據(jù)塊中的每條邏輯記錄分配到該條邏輯記錄所屬的數(shù)據(jù)節(jié)點。
[0132]為了更詳細地說明本發(fā)明實施例進行數(shù)據(jù)加載的方法,下面通過幾個具體的實施例作進一步說明:
[0133]如圖10所示,為本發(fā)明實施例四針對多個數(shù)據(jù)文件進行數(shù)據(jù)加載的方法流程圖,包括:
[0134]SlOOl:各加載服務器接收并存儲數(shù)據(jù)庫系統(tǒng)外的節(jié)點發(fā)送的多個數(shù)據(jù)文件;其中,不同加載服務器中存儲的數(shù)據(jù)文件不同;
[0135]S1002:主節(jié)點接收數(shù)據(jù)加載指令,并將接收的指令下發(fā)給所屬的分布式數(shù)據(jù)庫系統(tǒng)內(nèi)的各數(shù)據(jù)節(jié)點;
[0136]這里,用戶可以通過編輯結(jié)構(gòu)化查詢語言(Structured Query Language, SQL)語句在主節(jié)點輸入數(shù)據(jù)加載指令。
[0137]S1003:各數(shù)據(jù)節(jié)點在接收到數(shù)據(jù)加載指令后,查詢所述數(shù)據(jù)庫系統(tǒng)的外表中記錄的加載服務器的地址,連接加載服務器,并向連接的加載服務器發(fā)送數(shù)據(jù)請求消息;
[0138]在具體實施中,針對一個數(shù)據(jù)節(jié)點,若該數(shù)據(jù)節(jié)點確定當前為其提供數(shù)據(jù)的加載服務器分配數(shù)據(jù)的速率低于設定閾值,可以重新連接其它的加載服務器下載數(shù)據(jù),以提高數(shù)據(jù)下載效率。
[0139]S1004:各加載服務器在接收到數(shù)據(jù)節(jié)點的數(shù)據(jù)請求消息后,為每個數(shù)據(jù)節(jié)點分配一個數(shù)據(jù)塊;其中,所述數(shù)據(jù)塊中的數(shù)據(jù)為行完整的;
[0140]在具體實施中,各加載服務器可以在接收并存儲數(shù)據(jù)庫系統(tǒng)外的節(jié)點發(fā)送的數(shù)據(jù)后,即將該數(shù)據(jù)劃分為多個數(shù)據(jù)塊,也可以在接收到數(shù)據(jù)節(jié)點的數(shù)據(jù)請求消息后,再將存儲的數(shù)據(jù)劃分為多個數(shù)據(jù)塊;
[0141]在具體實施中,每個數(shù)據(jù)節(jié)點在下載一個數(shù)據(jù)塊后,將該數(shù)據(jù)塊緩存在本地,在將該數(shù)據(jù)塊中的數(shù)據(jù)處理完畢后,再向加載服務器請求數(shù)據(jù),如此,可以減少網(wǎng)絡交互,同時,采用這種不固定分配數(shù)據(jù)的方式,在數(shù)據(jù)下載過程中,數(shù)據(jù)處理能力高的數(shù)據(jù)節(jié)點可以請求處理較多的數(shù)據(jù),實現(xiàn)對不同數(shù)據(jù)節(jié)點的按需分配,提高整個數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)處理效率;
[0142]S1005:各數(shù)據(jù)節(jié)點確定接收的數(shù)據(jù)塊中每條邏輯記錄所屬的數(shù)據(jù)節(jié)點,針對其中任意一條邏輯記錄,若確定該條邏輯記錄屬于本節(jié)點,則將該條邏輯記錄存儲在本地,若確定該條邏輯記錄屬于其他數(shù)據(jù)節(jié)點,則將該條邏輯記錄轉(zhuǎn)發(fā)給其它數(shù)據(jù)節(jié)點;
[0143]S1006:各數(shù)據(jù)節(jié)點在從為數(shù)據(jù)庫系統(tǒng)提供數(shù)據(jù)的所有的加載服務器中都無法取到數(shù)據(jù)時,確定完成數(shù)據(jù)加載,并將數(shù)據(jù)加載完成的信息反饋給主節(jié)點;
[0144]S1007:主節(jié)點將數(shù)據(jù)加載完成的信息通知給用戶。
[0145]如圖11所示,為本發(fā)明實施例五針對單個較大的數(shù)據(jù)文件進行數(shù)據(jù)加載的方法流程圖,包括:
[0146]SllOl:各加載服務器接收并存儲數(shù)據(jù)庫系統(tǒng)外的節(jié)點發(fā)送的同一個數(shù)據(jù)文件;
[0147]S1102:主節(jié)點接收數(shù)據(jù)加載指令,并將接收的指令下發(fā)給所屬的分布式數(shù)據(jù)庫系統(tǒng)內(nèi)的各數(shù)據(jù)節(jié)點;
[0148]S1103:各數(shù)據(jù)節(jié)點在接收到數(shù)據(jù)加載指令后,查詢所述數(shù)據(jù)庫系統(tǒng)的外表中記錄的加載服務器的地址,連接加載服務器,并向連接的加載服務器發(fā)送數(shù)據(jù)請求消息;
[0149]在具體實施中,針對一個數(shù)據(jù)節(jié)點,若該數(shù)據(jù)節(jié)點確定當前為其提供數(shù)據(jù)的加載服務器分配數(shù)據(jù)的速率低于設定閾值,可以重新連接其它的加載服務器下載數(shù)據(jù),以提高數(shù)據(jù)下載效率;由于各加載服務器中存儲的為同一個數(shù)據(jù)文件,該數(shù)據(jù)節(jié)點在重新連接其它的加載服務器下載數(shù)據(jù)時,需要同時向該重新連接的加載服務器發(fā)送已下載數(shù)據(jù)的文件偏移量信息,以使該重新連接的加載服務器根據(jù)該文件偏移量信息,確定分配給該數(shù)據(jù)節(jié)點的數(shù)據(jù)。
[0150]S1104:各加載服務器在接收到數(shù)據(jù)節(jié)點的數(shù)據(jù)請求消息后,從預先確定的該數(shù)據(jù)節(jié)點對應的數(shù)據(jù)組中選取一個數(shù)據(jù)塊發(fā)送給該數(shù)據(jù)節(jié)點;
[0151]在具體實施中,各加載服務器需要根據(jù)數(shù)據(jù)節(jié)點的個數(shù)M,將存儲的數(shù)據(jù)文件劃分為M個數(shù)據(jù)組,每個數(shù)據(jù)組對應一個數(shù)據(jù)節(jié)點,并將每個數(shù)據(jù)組劃分為多個數(shù)據(jù)塊,在為一個數(shù)據(jù)節(jié)點分配數(shù)據(jù)時,從對應該數(shù)據(jù)節(jié)點的數(shù)據(jù)組中按數(shù)據(jù)的邏輯順序,選擇一個數(shù)據(jù)塊發(fā)送給該數(shù)據(jù)節(jié)點;
[0152]在具體實施中,當加載服務器發(fā)現(xiàn)某個數(shù)據(jù)節(jié)點處理數(shù)據(jù)的速率較快時,可以調(diào)整已劃分的每個數(shù)據(jù)組的數(shù)據(jù)量,為該數(shù)據(jù)節(jié)點分配較多的數(shù)據(jù)。
[0153]S1105:各數(shù)據(jù)節(jié)點確定接收的數(shù)據(jù)塊中每條邏輯記錄所屬的數(shù)據(jù)節(jié)點,針對其中任意一條邏輯記錄,若確定該條邏輯記錄屬于本節(jié)點,則將該條邏輯記錄存儲在本地,若確定該條邏輯記錄屬于其他數(shù)據(jù)節(jié)點,則將該條邏輯記錄轉(zhuǎn)發(fā)給其它數(shù)據(jù)節(jié)點;
[0154]S1106:各數(shù)據(jù)節(jié)點在從為數(shù)據(jù)庫系統(tǒng)提供數(shù)據(jù)的所有的加載服務器中都無法取到數(shù)據(jù)時,確定完成數(shù)據(jù)加載,并將數(shù)據(jù)加載完成的信息反饋給主節(jié)點;
[0155]SI 107:主節(jié)點將數(shù)據(jù)加載完成的信息通知給用戶。
[0156]基于同一發(fā)明構(gòu)思,本發(fā)明實施例中還提供了一種與數(shù)據(jù)加載方法對應的數(shù)據(jù)加載裝置,由于該裝置解決問題的原理與本發(fā)明實施例數(shù)據(jù)加載方法相似,因此該裝置的實施可以參見方法的實施,重復之處不再贅述。
[0157]如圖12所示,為本發(fā)明實施例一提供的數(shù)據(jù)加載裝置示意圖,該裝置應用于數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的加載,該數(shù)據(jù)庫系統(tǒng)包括多個數(shù)據(jù)節(jié)點和管理各數(shù)據(jù)節(jié)點的主節(jié)點,所述裝置設置于每個數(shù)據(jù)節(jié)點中,所述數(shù)據(jù)庫系統(tǒng)外設置有加載服務器為所述數(shù)據(jù)庫系統(tǒng)提供數(shù)據(jù)塊,所述數(shù)據(jù)塊為包括多條邏輯記錄的數(shù)據(jù)傳輸單元,其中每條邏輯記錄對應數(shù)據(jù)庫中存儲的一行數(shù)據(jù),該裝置包括:
[0158]獲取模塊121,用于在接收到所屬的數(shù)據(jù)庫系統(tǒng)的主節(jié)點發(fā)送的數(shù)據(jù)加載指令后,從加載服務器中獲取數(shù)據(jù)塊,并將獲取的數(shù)據(jù)塊傳輸至檢測模塊122 ;
[0159]檢測模塊122,用于檢測所述獲取模塊121獲取的數(shù)據(jù)塊中每條邏輯記錄所屬的數(shù)據(jù)節(jié)點;
[0160]處理模塊123,用于針對數(shù)據(jù)塊中的任意一條邏輯記錄,在所述檢測模塊122檢測到該條邏輯記錄屬于本節(jié)點后,將該條邏輯記錄存儲在本地,在檢測到該條邏輯記錄屬于所述數(shù)據(jù)庫系統(tǒng)的其它數(shù)據(jù)節(jié)點后,將該條邏輯記錄轉(zhuǎn)發(fā)給所述其它數(shù)據(jù)節(jié)點。
[0161]可選地,所述獲取模塊121具體用于:
[0162]至少一次向多個加載服務器中的第一加載服務器發(fā)送數(shù)據(jù)請求消息,每次接收所述第一加載服務器分配的一個數(shù)據(jù)塊;若確定所述第一加載服務器分配數(shù)據(jù)塊的速率低于設定閾值,則在將最近一次獲取的數(shù)據(jù)塊處理完畢后,至少一次向第二加載服務器發(fā)送數(shù)據(jù)請求消息,每次接收所述第二加載服務器分配的一個數(shù)據(jù)塊。
[0163]可選地,所述獲取模塊121具體用于:
[0164]確定第一次向所述第二加載服務器發(fā)送的數(shù)據(jù)請求消息,所述確定的數(shù)據(jù)請求消息中包括已獲取的數(shù)據(jù)塊對應的文件偏移量信息,向所述第二加載服務器發(fā)送確定的所述數(shù)據(jù)請求消息,以使所述第二加載服務器根據(jù)接收的數(shù)據(jù)請求消息中包括的所述文件偏移量信息確定需要分配給所述第一數(shù)據(jù)節(jié)點的數(shù)據(jù)塊;其中,所述第一加載服務器中存儲的數(shù)據(jù)與所述第二加載服務器中存儲的數(shù)據(jù)相同,且屬于同一數(shù)據(jù)文件。
[0165]如圖13所示,為本發(fā)明實施例二提供的數(shù)據(jù)加載裝置示意圖,該裝置應用于數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的加載,該數(shù)據(jù)庫系統(tǒng)包括多個數(shù)據(jù)節(jié)點和管理各數(shù)據(jù)節(jié)點的主節(jié)點,該裝置設置于加載服務器中,所述加載服務器用于為所述數(shù)據(jù)庫系統(tǒng)提供數(shù)據(jù)塊,所述數(shù)據(jù)塊為包括多條邏輯記錄的數(shù)據(jù)傳輸單元,其中每條邏輯記錄對應數(shù)據(jù)庫中存儲的一行數(shù)據(jù),該裝置包括:
[0166]接收模塊131,用于接收并存儲需要提供給數(shù)據(jù)庫系統(tǒng)內(nèi)的數(shù)據(jù)節(jié)點的數(shù)據(jù),并將接收的數(shù)據(jù)傳輸至劃分模塊132 ;
[0167]劃分模塊132,用于將接收模塊131接收的數(shù)據(jù)劃分為多個數(shù)據(jù)塊,并將劃分的數(shù)據(jù)塊傳輸至分配模塊133 ;
[0168]分配模塊133,用于在接收到所述數(shù)據(jù)庫系統(tǒng)內(nèi)的多個數(shù)據(jù)節(jié)點根據(jù)所述主節(jié)點的指示發(fā)送的數(shù)據(jù)請求消息后,分別基于劃分模塊132劃分的數(shù)據(jù)塊為所述多個數(shù)據(jù)節(jié)點中的每個數(shù)據(jù)節(jié)點分配不同的數(shù)據(jù)塊,以使每個數(shù)據(jù)節(jié)點在獲取數(shù)據(jù)塊后,將獲取的數(shù)據(jù)塊中的每條邏輯記錄分配到該條邏輯記錄所屬的數(shù)據(jù)節(jié)點。
[0169]可選地,所述接收模塊131接收并存儲的數(shù)據(jù)與為所述數(shù)據(jù)庫系統(tǒng)內(nèi)的數(shù)據(jù)節(jié)點提供數(shù)據(jù)塊的其它加載服務器接收并存儲的數(shù)據(jù)不同;所述劃分模塊132劃分的每個數(shù)據(jù)塊中的數(shù)據(jù)是行完整的。
[0170]可選地,所述接收模塊131接收并存儲的數(shù)據(jù)與為所述數(shù)據(jù)庫系統(tǒng)內(nèi)的數(shù)據(jù)節(jié)點提供數(shù)據(jù)塊的其它加載服務器接收并存儲的數(shù)據(jù)相同,且屬于同一個數(shù)據(jù)文件;
[0171]所述分配模塊133具體用于:針對一個數(shù)據(jù)節(jié)點,若該數(shù)據(jù)節(jié)點在向所述第一加載服務器發(fā)送數(shù)據(jù)請求消息之前,已從其它加載服務器獲取了數(shù)據(jù)塊,則根據(jù)該數(shù)據(jù)節(jié)點發(fā)送的文件偏移量信息,確定需要發(fā)送給該數(shù)據(jù)節(jié)點的數(shù)據(jù)塊。
[0172]可選地,所述劃分模塊132具體用于:根據(jù)所述數(shù)據(jù)庫系統(tǒng)內(nèi)的數(shù)據(jù)節(jié)點的個數(shù)M,將存儲的數(shù)據(jù)劃分為M個數(shù)據(jù)組,并將每個數(shù)據(jù)組中的數(shù)據(jù)劃分為多個數(shù)據(jù)塊;其中,M為正整數(shù),每個數(shù)據(jù)組對應一個數(shù)據(jù)節(jié)點;
[0173]所述分配模塊133具體用于:針對一個數(shù)據(jù)節(jié)點,從對應該數(shù)據(jù)節(jié)點的數(shù)據(jù)組中選擇一個數(shù)據(jù)塊分配給該數(shù)據(jù)節(jié)點。
[0174]可選地,所述劃分模塊132還用于:
[0175]所述第一加載服務器根據(jù)不同數(shù)據(jù)節(jié)點的數(shù)據(jù)處理速率的不同,調(diào)整劃分的每個數(shù)據(jù)組的數(shù)據(jù)量。
[0176]如圖14所示,為本發(fā)明實施例三提供的數(shù)據(jù)加載裝置示意圖,該裝置應用于數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的加載,該數(shù)據(jù)庫系統(tǒng)包括多個數(shù)據(jù)節(jié)點和管理各數(shù)據(jù)節(jié)點的主節(jié)點,所述裝置設置于所述主節(jié)點中;所述數(shù)據(jù)庫系統(tǒng)外設置有加載服務器為所述數(shù)據(jù)庫系統(tǒng)提供數(shù)據(jù)塊,所述數(shù)據(jù)塊為包括多條邏輯記錄的數(shù)據(jù)傳輸單元,其中每條邏輯記錄對應數(shù)據(jù)庫中存儲的一行數(shù)據(jù),該裝置包括:
[0177]接收模塊141,用于接收數(shù)據(jù)加載指令,并將接收的所述數(shù)據(jù)加載指令傳輸至發(fā)送模塊142 ;[0178]發(fā)送模塊142,用于將所述數(shù)據(jù)加載指令發(fā)送給所屬的數(shù)據(jù)庫系統(tǒng)內(nèi)的每個數(shù)據(jù)節(jié)點,指示所述每個數(shù)據(jù)節(jié)點從加載服務器中獲取數(shù)據(jù)塊,并將獲取的數(shù)據(jù)塊中的每條邏輯記錄分配到該條邏輯記錄所屬的數(shù)據(jù)節(jié)點。
[0179]本領域內(nèi)的技術(shù)人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
[0180]本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、裝置(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0181]這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0182]這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0183]盡管已描述了本發(fā)明的優(yōu)選實施例,但本領域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。
[0184]顯然,本領域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
【權(quán)利要求】
1.一種數(shù)據(jù)加載方法,該方法應用于數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的加載,該數(shù)據(jù)庫系統(tǒng)包括多個數(shù)據(jù)節(jié)點和管理各數(shù)據(jù)節(jié)點的主節(jié)點,其特征在于,采用加載服務器為所述數(shù)據(jù)庫系統(tǒng)提供數(shù)據(jù)塊,所述數(shù)據(jù)塊為包括多條邏輯記錄的數(shù)據(jù)傳輸單元,其中每條邏輯記錄對應數(shù)據(jù)庫中存儲的一行數(shù)據(jù),該方法包括: 第一數(shù)據(jù)節(jié)點在接收到所屬的數(shù)據(jù)庫系統(tǒng)的主節(jié)點發(fā)送的數(shù)據(jù)加載指令后,從加載服務器中獲取數(shù)據(jù)塊; 所述第一數(shù)據(jù)節(jié)點檢測獲取的數(shù)據(jù)塊中每條邏輯記錄所屬的數(shù)據(jù)節(jié)點; 針對數(shù)據(jù)塊中的任意一條邏輯記錄,所述第一數(shù)據(jù)節(jié)點在檢測到該條邏輯記錄屬于本節(jié)點后,將該條邏輯記錄存儲在本地,在檢測到該條邏輯記錄屬于所述數(shù)據(jù)庫系統(tǒng)的其它數(shù)據(jù)節(jié)點后,將該條邏輯記錄轉(zhuǎn)發(fā)給所述其它數(shù)據(jù)節(jié)點。
2.如權(quán)利要求1所述的方法,其特征在于,所述第一數(shù)據(jù)節(jié)點從加載服務器中獲取數(shù)據(jù)塊,包括: 所述第一數(shù)據(jù)節(jié)點至少一次向多個加載服務器中的第一加載服務器發(fā)送數(shù)據(jù)請求消息,每次接收所述第一加載服務器分配的一個數(shù)據(jù)塊; 若所述第一數(shù)據(jù)節(jié)點確定所述第一加載服務器分配數(shù)據(jù)塊的速率低于設定閾值,則在將最近一次獲取的數(shù)據(jù)塊處理完畢后,至少一次向第二加載服務器發(fā)送數(shù)據(jù)請求消息,每次接收所述第二加載服務器分配的一個數(shù)據(jù)塊。
3.如權(quán)利要求2所述 的方法,其特征在于,所述第一數(shù)據(jù)節(jié)點至少一次向所述第二加載服務器發(fā)送數(shù)據(jù)請求消息, 包括: 所述第一數(shù)據(jù)節(jié)點確定第一 次 向所述第二加載服務器發(fā)送的數(shù)據(jù)請求消息;所述確定的數(shù)據(jù)請求消息中包括已獲取的數(shù)據(jù)塊對應的文件偏移量信息; 所述第一數(shù)據(jù)節(jié)點向所述第二加載服務器發(fā)送確定的所述數(shù)據(jù)請求消息,以使所述第二加載服務器根據(jù)接收的數(shù)據(jù)請求消息中包括的所述文件偏移量信息確定需要分配給所述第一數(shù)據(jù)節(jié)點的數(shù)據(jù)塊; 其中,所述第一加載服務器中存儲的數(shù)據(jù)與所述第二加載服務器中存儲的數(shù)據(jù)相同,且屬于同一數(shù)據(jù)文件。
4.一種數(shù)據(jù)加載方法,該方法應用于數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的加載,該數(shù)據(jù)庫系統(tǒng)包括多個數(shù)據(jù)節(jié)點和管理各數(shù)據(jù)節(jié)點的主節(jié)點,其特征在于,采用加載服務器為所述數(shù)據(jù)庫系統(tǒng)提供數(shù)據(jù)塊,所述數(shù)據(jù)塊為包括多條邏輯記錄的數(shù)據(jù)傳輸單元,其中每條邏輯記錄對應數(shù)據(jù)庫中存儲的一行數(shù)據(jù),該方法包括: 第一加載服務器接收并存儲需要提供給數(shù)據(jù)庫系統(tǒng)內(nèi)的數(shù)據(jù)節(jié)點的數(shù)據(jù); 所述第一加載服務器將接收的數(shù)據(jù)劃分為多個數(shù)據(jù)塊; 所述第一加載服務器在接收到所述數(shù)據(jù)庫系統(tǒng)內(nèi)的多個數(shù)據(jù)節(jié)點根據(jù)所述主節(jié)點的指示發(fā)送的數(shù)據(jù)請求消息后,分別基于劃分的數(shù)據(jù)塊為所述多個數(shù)據(jù)節(jié)點中的每個數(shù)據(jù)節(jié)點分配不同的數(shù)據(jù)塊,以使每個數(shù)據(jù)節(jié)點在獲取數(shù)據(jù)塊后,將獲取的數(shù)據(jù)塊中的每條邏輯記錄分配到該條邏輯記錄所屬的數(shù)據(jù)節(jié)點。
5.如權(quán)利要求4所述的方法,其特征在于,所述第一加載服務器接收并存儲的數(shù)據(jù)與其它為所述數(shù)據(jù)庫系統(tǒng)內(nèi)的數(shù)據(jù)節(jié)點提供數(shù)據(jù)塊的加載服務器接收并存儲的數(shù)據(jù)不同;所述第一加載服務器劃分的每個數(shù)據(jù)塊中的數(shù)據(jù)是行完整的。
6.如權(quán)利要求4所述的方法,其特征在于,所述第一加載服務器接收并存儲的數(shù)據(jù)與其它為所述數(shù)據(jù)庫系統(tǒng)內(nèi)的數(shù)據(jù)節(jié)點提供數(shù)據(jù)塊的加載服務器接收并存儲的數(shù)據(jù)相同,且屬于同一個數(shù)據(jù)文件; 所述第一加載服務器分別為所述多個數(shù)據(jù)節(jié)點中的每個數(shù)據(jù)節(jié)點分配不同的數(shù)據(jù)塊之前,還包括: 針對一個數(shù)據(jù)節(jié)點,若該數(shù)據(jù)節(jié)點在向所述第一加載服務器發(fā)送數(shù)據(jù)請求消息之前,已從其它加載服務器獲取了數(shù)據(jù)塊,則所述第一加載服務器根據(jù)該數(shù)據(jù)節(jié)點發(fā)送的文件偏移量信息,確定需要發(fā)送給該數(shù)據(jù)節(jié)點的數(shù)據(jù)塊。
7.如權(quán)利要求6所述的方法,其特征在于,所述第一加載服務器將接收的數(shù)據(jù)劃分為多個數(shù)據(jù)塊,包括: 所述第一加載服務器根據(jù)所述數(shù)據(jù)庫系統(tǒng)內(nèi)的數(shù)據(jù)節(jié)點的個數(shù)M,將存儲的數(shù)據(jù)劃分為M個數(shù)據(jù)組,并將每個數(shù)據(jù)組中的數(shù)據(jù)劃分為多個數(shù)據(jù)塊;其中,M為正整數(shù),每個數(shù)據(jù)組對應一個數(shù)據(jù)節(jié)點; 所述第一加載服務器分別為所述多個數(shù)據(jù)節(jié)點中的每個數(shù)據(jù)節(jié)點分配不同的數(shù)據(jù)塊,包括: 針對一個數(shù)據(jù)節(jié)點,所述第一加載服務器從對應該數(shù)據(jù)節(jié)點的數(shù)據(jù)組中選擇一個數(shù)據(jù)塊分配給該數(shù)據(jù)節(jié)點。
8.如權(quán)利要求7所述的方法,其特征在于,所述第一加載服務器將存儲的數(shù)據(jù)劃分為M個數(shù)據(jù)組之后,還包括: 所述第一加載服務器根據(jù)不同數(shù)據(jù)節(jié)點的數(shù)據(jù)處理速率的不同,調(diào)整劃分的每個數(shù)據(jù)組的數(shù)據(jù)量。
9.一種數(shù)據(jù)加載方法,該方法應用于數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的加載,該數(shù)據(jù)庫系統(tǒng)包括多個數(shù)據(jù)節(jié)點和管理各數(shù)據(jù)節(jié)點的主節(jié)點,其特征在于,采用加載服務器為所述數(shù)據(jù)庫系統(tǒng)提供數(shù)據(jù)塊,所述數(shù)據(jù)塊為包括多條邏輯記錄的數(shù)據(jù)傳輸單元,其中每條邏輯記錄對應數(shù)據(jù)庫中存儲的一行數(shù)據(jù),該方法包括: 主節(jié)點接收數(shù)據(jù)加載指令; 所述主節(jié)點將所述數(shù)據(jù)加載指令發(fā)送給所屬的數(shù)據(jù)庫系統(tǒng)內(nèi)的每個數(shù)據(jù)節(jié)點,指示所述每個數(shù)據(jù)節(jié)點從加載服務器中獲取數(shù)據(jù)塊,并將獲取的數(shù)據(jù)塊中的每條邏輯記錄分配到該條邏輯記錄所屬的數(shù)據(jù)節(jié)點。
10.一種數(shù)據(jù)加載裝置,該裝置應用于數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的加載,該數(shù)據(jù)庫系統(tǒng)包括多個數(shù)據(jù)節(jié)點和管理各數(shù)據(jù)節(jié)點的主節(jié)點,其特征在于,所述裝置設置于每個數(shù)據(jù)節(jié)點中,所述數(shù)據(jù)庫系統(tǒng)外設置有加載服務器為所述數(shù)據(jù)庫系統(tǒng)提供數(shù)據(jù)塊,所述數(shù)據(jù)塊為包括多條邏輯記錄的數(shù)據(jù)傳輸單元,其中每條邏輯記錄對應數(shù)據(jù)庫中存儲的一行數(shù)據(jù),該裝置包括: 獲取模塊,用于在接收到所屬的數(shù)據(jù)庫系統(tǒng)的主節(jié)點發(fā)送的數(shù)據(jù)加載指令后,從加載服務器中獲取數(shù)據(jù)塊,并將獲取的數(shù)據(jù)塊傳輸至檢測模塊; 檢測模塊,用于檢測所述獲取模塊獲取的數(shù)據(jù)塊中每條邏輯記錄所屬的數(shù)據(jù)節(jié)點; 處理模塊,用于針對數(shù)據(jù)塊中的任意一條邏輯記錄,在所述檢測模塊檢測到該條邏輯記錄屬于本節(jié)點后,將該條邏輯記錄存儲在本地,在檢測到該條邏輯記錄屬于所述數(shù)據(jù)庫系統(tǒng)的其它數(shù)據(jù)節(jié)點后,將該條邏輯記錄轉(zhuǎn)發(fā)給所述其它數(shù)據(jù)節(jié)點。
11.如權(quán)利要求10所述的裝置,其特征在于,所述獲取模塊具體用于: 至少一次向多個加載服務器中的第一加載服務器發(fā)送數(shù)據(jù)請求消息,每次接收所述第一加載服務器分配的一個數(shù)據(jù)塊;若確定所述第一加載服務器分配數(shù)據(jù)塊的速率低于設定閾值,則在將最近一次獲取的數(shù)據(jù)塊處理完畢后,至少一次向第二加載服務器發(fā)送數(shù)據(jù)請求消息,每次接收所述第二加載服務器分配的一個數(shù)據(jù)塊。
12.如權(quán)利要求11所述的裝置,其特征在于,所述獲取模塊具體用于: 確定第一次向所述第二加載服務器發(fā)送的數(shù)據(jù)請求消息,所述確定的數(shù)據(jù)請求消息中包括已獲取的數(shù)據(jù)塊對應的文件偏移量信息,向所述第二加載服務器發(fā)送確定的所述數(shù)據(jù)請求消息,以使所述第二加載服務器根據(jù)接收的數(shù)據(jù)請求消息中包括的所述文件偏移量信息確定需要分配給所述第一數(shù)據(jù)節(jié)點的數(shù)據(jù)塊;其中,所述第一加載服務器中存儲的數(shù)據(jù)與所述第二加載服務器中存儲的數(shù)據(jù)相同,且屬于同一數(shù)據(jù)文件。
13.一種數(shù)據(jù)加載裝置,該裝置應用于數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的加載,該數(shù)據(jù)庫系統(tǒng)包括多個數(shù)據(jù)節(jié)點和管理各數(shù)據(jù)節(jié)點的主節(jié)點,其特征在于,該裝置設置于加載服務器中,所述加載服務器用于為所述數(shù)據(jù)庫系統(tǒng)提供數(shù)據(jù)塊,所述數(shù)據(jù)塊為包括多條邏輯記錄的數(shù)據(jù)傳輸單元,其中每條邏輯記錄對應數(shù)據(jù)庫中存儲的一行數(shù)據(jù),該裝置包括: 接收模塊,用于接收并存儲需要提供給數(shù)據(jù)庫系統(tǒng)內(nèi)的數(shù)據(jù)節(jié)點的數(shù)據(jù),并將接收的數(shù)據(jù)傳輸至劃分模塊; 劃分模塊,用于將接收模塊接收的數(shù)據(jù)劃分為多個數(shù)據(jù)塊,并將劃分的數(shù)據(jù)塊傳輸至分配模塊; 分配模塊,用于在接收到所述數(shù)據(jù)庫系統(tǒng)內(nèi)的多個數(shù)據(jù)節(jié)點根據(jù)所述主節(jié)點的指示發(fā)送的數(shù)據(jù)請求消息后,分別基于劃分 模塊劃分的數(shù)據(jù)塊為所述多個數(shù)據(jù)節(jié)點中的每個數(shù)據(jù)節(jié)點分配不同的數(shù)據(jù)塊,以使每個數(shù)據(jù)節(jié)點在獲取數(shù)據(jù)塊后,將獲取的數(shù)據(jù)塊中的每條邏輯記錄分配到該條邏輯記錄所屬的數(shù)據(jù)節(jié)點。
14.如權(quán)利要求13所述的裝置,其特征在于,所述接收模塊接收并存儲的數(shù)據(jù)與為所述數(shù)據(jù)庫系統(tǒng)內(nèi)的數(shù)據(jù)節(jié)點提供數(shù)據(jù)塊的其它加載服務器接收并存儲的數(shù)據(jù)不同;所述劃分模塊劃分的每個數(shù)據(jù)塊中的數(shù)據(jù)是行完整的。
15.如權(quán)利要求13所述的裝置,其特征在于,所述接收模塊接收并存儲的數(shù)據(jù)與為所述數(shù)據(jù)庫系統(tǒng)內(nèi)的數(shù)據(jù)節(jié)點提供數(shù)據(jù)塊的其它加載服務器接收并存儲的數(shù)據(jù)相同,且屬于同一個數(shù)據(jù)文件; 所述分配模塊具體用于:針對一個數(shù)據(jù)節(jié)點,若該數(shù)據(jù)節(jié)點在向所述第一加載服務器發(fā)送數(shù)據(jù)請求消息之前,已從其它加載服務器獲取了數(shù)據(jù)塊,則根據(jù)該數(shù)據(jù)節(jié)點發(fā)送的文件偏移量信息,確定需要發(fā)送給該數(shù)據(jù)節(jié)點的數(shù)據(jù)塊。
16.如權(quán)利要求15所述的裝置,其特征在于,所述劃分模塊具體用于:根據(jù)所述數(shù)據(jù)庫系統(tǒng)內(nèi)的數(shù)據(jù)節(jié)點的個數(shù)M,將存儲的數(shù)據(jù)劃分為M個數(shù)據(jù)組,并將每個數(shù)據(jù)組中的數(shù)據(jù)劃分為多個數(shù)據(jù)塊;其中,M為正整數(shù),每個數(shù)據(jù)組對應一個數(shù)據(jù)節(jié)點; 所述分配模塊具體用于:針對一個數(shù)據(jù)節(jié)點,從對應該數(shù)據(jù)節(jié)點的數(shù)據(jù)組中選擇一個數(shù)據(jù)塊分配給該數(shù)據(jù)節(jié)點。
17.如權(quán)利要求16所述的裝置,其特征在于,所述劃分模塊還用于:所述第一加載服務器根據(jù)不同數(shù)據(jù)節(jié)點的數(shù)據(jù)處理速率的不同,調(diào)整劃分的每個數(shù)據(jù)組的數(shù)據(jù)量。
18.一種數(shù)據(jù)加載裝置,該裝置應用于數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的加載,該數(shù)據(jù)庫系統(tǒng)包括多個數(shù)據(jù)節(jié)點和管理各數(shù)據(jù)節(jié)點的主節(jié)點,其特征在于,所述裝置設置于所述主節(jié)點中;所述數(shù)據(jù)庫系統(tǒng)外設置有加載服務器為所述數(shù)據(jù)庫系統(tǒng)提供數(shù)據(jù)塊,所述數(shù)據(jù)塊為包括多條邏輯記錄的數(shù)據(jù)傳輸單元,其中每條邏輯記錄對應數(shù)據(jù)庫中存儲的一行數(shù)據(jù),該裝置包括: 接收模塊,用于接收數(shù)據(jù)加載指令,并將接收的所述數(shù)據(jù)加載指令傳輸至發(fā)送模塊;發(fā)送模塊,用于將所述數(shù)據(jù)加載指令發(fā)送給所屬的數(shù)據(jù)庫系統(tǒng)內(nèi)的每個數(shù)據(jù)節(jié)點,指示所述每個數(shù)據(jù)節(jié)點從加載服務器中獲取數(shù)據(jù)塊,并將獲取的數(shù)據(jù)塊中的每條邏輯記錄分配到該條邏輯記錄所屬 的數(shù)據(jù)節(jié)點。
【文檔編號】G06F17/30GK103544285SQ201310516735
【公開日】2014年1月29日 申請日期:2013年10月28日 優(yōu)先權(quán)日:2013年10月28日
【發(fā)明者】楊卓慧 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1