本發(fā)明專利技術公開了一種修改數(shù)據(jù)結構的方法和裝置,屬于數(shù)據(jù)庫技術領域。所述方法應用于行存儲的數(shù)據(jù)庫,所述數(shù)據(jù)庫包括元數(shù)據(jù)和存儲數(shù)據(jù),所述方法包括:當對所述數(shù)據(jù)庫的表結構進行新增字段的修改時,保持所述存儲數(shù)據(jù)不變,在所述元數(shù)據(jù)的表結構中新增字段;設置所述新增字段的默認值,所述默認值用于在所述存儲數(shù)據(jù)中查詢所述新增字段時作為查詢的返回值。所述裝置包括:修改模塊和設置模塊。本發(fā)明專利技術無需對存儲數(shù)據(jù)進行修改,減少了修改數(shù)據(jù)結構帶來的時間和性能開銷,極大地提高了效率,降低了對業(yè)務的影響,有效地優(yōu)化了修改數(shù)據(jù)結構的性能。
【技術實現(xiàn)步驟摘要】
本專利技術涉及數(shù)據(jù)庫
,特別涉及一種修改數(shù)據(jù)結構的方法和裝置。
技術介紹
近年來,各行各業(yè)數(shù)據(jù)存儲的需求日趨旺盛,數(shù)據(jù)量呈幾何增加,企業(yè)級用戶數(shù)據(jù)存儲不再僅僅是以往的幾百GB、幾TB,而是幾百TB,甚至幾PB、幾十PB的數(shù)據(jù)存儲需求,大數(shù)據(jù)存儲時代的來臨顯而易見。目前大數(shù)據(jù)存儲有兩種方案可供選擇:行存儲和列存儲。兩種存儲的數(shù)據(jù)都是從上至下,從左向右的排列。其中,行存儲是以一行記錄為單位進行數(shù)據(jù)的存儲,列存儲是以列數(shù)據(jù)的集合為單位進行數(shù)據(jù)的存儲。對于列存儲的方案,當需要修改數(shù)據(jù)庫中的表結構時,只需要添加單獨的一列即可。對于行存儲的方案,當需要修改數(shù)據(jù)庫中的表結構時,需要修改每一行記錄中的數(shù)據(jù),修改變得非常繁瑣。例如,對于一個包括三行記錄的數(shù)據(jù)庫來說,當表結構中新增一個列字段時,必須分別為每一行的數(shù)據(jù)也添加一個列字段,因此,需要執(zhí)行三次修改操作,帶來的消耗和數(shù)據(jù)庫中的記錄條數(shù)成正比。上述行存儲的方案中,如果數(shù)據(jù)量比較小,則修改表字段帶來的時間和性能開銷,對業(yè)務的影響還能接受。但是,隨著數(shù)據(jù)存儲規(guī)模的增加,數(shù)據(jù)量越來越大,如果是海量的大數(shù)據(jù),則修改表字段需要對表中所有數(shù)據(jù)進修修改,會帶來大量的時間和性能開銷,甚至一次修改就需要數(shù)天時間,效率極低,對業(yè)務的影響往往難以令人接受。
技術實現(xiàn)思路
為了提高數(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ù)庫的表結構進行新增字段的修改時,保持所述存儲數(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ù)結構帶來的時間和性能開銷,極大地提高了效率,降低了對業(yè)務的影響,尤其是海量數(shù)據(jù)的場景下,有效地優(yōu)化了修改數(shù)據(jù)結構的性能。附圖說明為了更清楚地說明本專利技術實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本專利技術的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本專利技術實施例提供的數(shù)據(jù)存儲分布示意圖;圖2是本專利技術一實施例提供的修改數(shù)據(jù)結構的方法流程圖;圖3是本專利技術另一實施例提供的修改數(shù)據(jù)結構的方法流程圖;圖4是本專利技術又一實施例提供的修改數(shù)據(jù)結構的方法流程圖;圖5是本專利技術一實施例提供的修改數(shù)據(jù)結構的裝置結構圖;圖6是本專利技術另一實施例提供的修改數(shù)據(jù)結構的裝置結構圖。具體實施例方式為使本專利技術的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本專利技術實施方式作進一步地詳細描述。本專利技術實施例涉及行存儲的數(shù)據(jù)庫。所述行存儲是指數(shù)據(jù)庫中的數(shù)據(jù)是按行進行存儲的。通常,數(shù)據(jù)庫中包括元數(shù)據(jù)和存儲數(shù)據(jù)。所述元數(shù)據(jù)是指數(shù)據(jù)庫中各類的表結構,包括但不限于:數(shù)據(jù)庫中表內(nèi)的所有字段、以及數(shù)據(jù)的存儲位置等等。所述存儲數(shù)據(jù)是真正的用戶數(shù)據(jù)。通常,存儲數(shù)據(jù)為單獨存儲,不與元數(shù)據(jù)存儲在一起,元數(shù)據(jù)所在節(jié)點可以同時管理其他存儲節(jié)點。如圖1所示,為本專利技術實施例提供的數(shù)據(jù)存儲分布示意圖。其中,中間的節(jié)點用于存儲元數(shù)據(jù)。與元數(shù)據(jù)相連的其它各個節(jié)點用于存儲用戶數(shù)據(jù)。可見,元數(shù)據(jù)與存儲數(shù)據(jù)是分開存儲的,各自獨立。在行存儲的數(shù)據(jù)庫中,存儲數(shù)據(jù)是按行存儲的,每一行數(shù)據(jù)可以看成是一條記錄,該記錄內(nèi)包括所述表結構中各個字段對應的值。例如,參見表1,為數(shù)據(jù)庫中的一個表。該表包括3個字段,分別為字段1、字段2和字段3。存儲數(shù)據(jù)有3行,第一行的數(shù)據(jù)包括:Datal-l、Datal_2和Datal-3,第二行的數(shù)據(jù)包括:Data2_l、Data2_2 和 Data2_3,第三行的數(shù)據(jù)包括:Data3_l、Data3_2 和 Data3_3。該數(shù)據(jù)庫按行進行存儲時,分別按照表中第一行、第二行、第三行的順序進行存儲。表I本文檔來自技高網(wǎng)...
【技術保護點】
一種修改數(shù)據(jù)結構的方法,其特征在于,應用于行存儲的數(shù)據(jù)庫,所述數(shù)據(jù)庫包括元數(shù)據(jù)和存儲數(shù)據(jù),所述方法包括:當對所述數(shù)據(jù)庫的表結構進行新增字段的修改時,保持所述存儲數(shù)據(jù)不變,在所述元數(shù)據(jù)的表結構中新增字段;設置所述新增字段的默認值,所述默認值用于在所述存儲數(shù)據(jù)中查詢所述新增字段時作為查詢的返回值。
【技術特征摘要】
1.一種修改數(shù)據(jù)結構的方法,其特征在于,應用于行存儲的數(shù)據(jù)庫,所述數(shù)據(jù)庫包括元數(shù)據(jù)和存儲數(shù)據(jù),所述方法包括: 當對所述數(shù)據(jù)庫的表結構進行新增字段的修改時,保持所述存儲數(shù)據(jù)不變,在所述元數(shù)據(jù)的表結構中新增字段; 設置所述新增字段的默認值,所述默認值用于在所述存儲數(shù)據(jù)中查詢所述新增字段時作為查詢的返回值。2.根據(jù)權利要求1所述的方法,其特征在于,所述方法還包括: 當查詢所述數(shù)據(jù)庫且查詢失敗時,判斷是否由于所述存儲數(shù)據(jù)中沒有所述新增字段而導致查詢失敗,如果是,則獲取并返回所述新增字段的默認值。3.根據(jù)權利要求2所述的方法,其特征在于,判斷是否由于所述存儲數(shù)據(jù)中沒有所述新增字段而導致查詢失敗,如果是,則獲取并返回所述新增字段的默認值,包括: 判斷查詢的字段中是否包括所述新增字段; 如果查詢的字段中包括所述新增字段,則確定由于所述存儲數(shù)據(jù)中沒有所述新增字段而導致查詢失敗,獲取并返回所述新增字段的默認值。4.根據(jù)權利要求3所述的方法,其特征在于,所述方法還包括: 如果查詢的字段中不包括所述新增字段,...
【專利技術屬性】
技術研發(fā)人員:胡胤杰,伍華濤,陳浩,
申請(專利權)人:華為技術有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。