列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng)。列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng)包括存儲(chǔ)預(yù)定的數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)單元以及數(shù)據(jù)管理單元。數(shù)據(jù)結(jié)構(gòu)對應(yīng)于表達(dá)成包括每個(gè)字段的字段值的記錄數(shù)據(jù)的表格式數(shù)據(jù),并且針對每個(gè)字段都包括字段中的字段值被存儲(chǔ)成對應(yīng)于唯一指定字段值的字段值編號的值列表以及包括以記錄順序指定字段值的信息的值編號陣列。存儲(chǔ)單元存儲(chǔ)第一數(shù)據(jù)結(jié)構(gòu),該第一數(shù)據(jù)結(jié)構(gòu)對應(yīng)于第一表格式數(shù)據(jù)并且包括第一字段的值列表以及值編號陣列。當(dāng)數(shù)據(jù)庫管理單元從第二表格式數(shù)據(jù)生成第二數(shù)據(jù)結(jié)構(gòu)時(shí),其使用第一數(shù)據(jù)結(jié)構(gòu)的第一字段的值列表來生成第二數(shù)據(jù)結(jié)構(gòu)的第一字段的值列表。
【專利說明】列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng)
[0001]通過引用并入
[0002]本發(fā)明是基于并且要求于2015年3月17日提交的日本專利申請N0.2015-053201的優(yōu)先權(quán)權(quán)益,其全部公開內(nèi)容通過弓I用并入本文中。
[0003]技術(shù)領(lǐng)字段
[0004]本發(fā)明涉及列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)加載方法和程序。
【背景技術(shù)】
[0005]關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)是下述類型的數(shù)據(jù)庫系統(tǒng):其中,信息被存儲(chǔ)為由一些字段(field)組成的記錄集合的表。字段、記錄和表也分別被稱為列、行和表。關(guān)系數(shù)據(jù)庫管理系統(tǒng)包括典型的面向行的關(guān)系數(shù)據(jù)庫管理系統(tǒng)以及稱為列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng)的面向列的關(guān)系數(shù)據(jù)庫管理系統(tǒng)。前者典型的關(guān)系數(shù)據(jù)庫管理系統(tǒng)在行方向上將數(shù)據(jù)作為整體進(jìn)行處理。這樣,其適合于涉及到添加、更新和刪除的在線交易。另一方面,由于后者列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng)在列方向上處理數(shù)據(jù),所以其適合于提取列以被操作的制表處理和搜索。本發(fā)明涉及后者列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng)的改進(jìn)。
[0006]在列方向上將數(shù)據(jù)作為整體進(jìn)行處理的列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng)采用在針對每列消除重復(fù)數(shù)據(jù)的同時(shí)保持?jǐn)?shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。例如,對于表格式數(shù)據(jù)的每個(gè)字段,稱作FAST結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)包括值列表和值編號陣列,在值列表中,字段中的字段值與唯一指定字段值的字段值編號相對應(yīng)地被存儲(chǔ);在值編號陣列中,存儲(chǔ)以記錄順序指定字段值編號的信息(例如參閱JP 3581831 B(專利文獻(xiàn)I))。
[0007]圖19示出了表格式數(shù)據(jù)以及與之相對應(yīng)的FAST結(jié)構(gòu)數(shù)據(jù)的示例。在該示例中的表格式數(shù)據(jù)被表達(dá)為記錄(行)的陣列,包括關(guān)于相應(yīng)字段(相應(yīng)列)的字段值,諸如學(xué)生ID號、姓名、出生日期和性別。此外,F(xiàn)AST結(jié)構(gòu)數(shù)據(jù)由示出行號的順序集合以及每一列的一對值列表和值編號陣列組成。在字段的值列表中,與唯一指定字段中存在的字段值的字段值編號相對應(yīng)地存儲(chǔ)字段中的字段值。例如,在根據(jù)性別字段的值列表中,與字段值編號O和I相對應(yīng)地存儲(chǔ)字段值,男和女。此外,在根據(jù)字段的值編號陣列中,存儲(chǔ)以記錄順序指定字段值編號的信息。例如,在根據(jù)性別字段的值編號陣列中,存儲(chǔ)以記錄順序指定字段值編號I,0,0,0,1,1,0,0,1,0的信息。
[0008]專利文件1:JP3581831 B
[0009]在使用FAST結(jié)構(gòu)的列存儲(chǔ)數(shù)據(jù)管理系統(tǒng)中,當(dāng)新的表格式數(shù)據(jù)被加載到存儲(chǔ)單元時(shí),必須將表格式數(shù)據(jù)轉(zhuǎn)換為具有FAST結(jié)構(gòu)。為了將表格式數(shù)據(jù)轉(zhuǎn)換為具有FAST結(jié)構(gòu),有必要針對表格式數(shù)據(jù)的每個(gè)字段生成值列表和值編號陣列。通過利用諸如歸并排序(mergesort)的典型排序方法來消除重復(fù),可以通過根據(jù)字段排序所有字段值,來生成值列表。此夕卜,可以通過將字段中的相應(yīng)字段值與字段的值列表進(jìn)行匹配來生成值編號陣列。然而,盡管生成值編號所需要的計(jì)算量級O是n,但是生成值列表所需要的計(jì)算量級O是nXlogn。在此,η表示表格式數(shù)據(jù)的行數(shù)。這樣,用于將表格式數(shù)據(jù)轉(zhuǎn)換為具有FAST結(jié)構(gòu)所需要的計(jì)算量級是nXlogn。這樣,關(guān)于具有大的行數(shù)η的表格式數(shù)據(jù),需要長的時(shí)間來針對每個(gè)字段生成值列表。因此,存在的問題在于,難以高速地加載新的表格式數(shù)據(jù)。
【發(fā)明內(nèi)容】
[0010]本發(fā)明的示例性目的是提供一種列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng),該列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng)解決了上述問題,即難以高速地加載新的表格式數(shù)據(jù)的問題。
[0011]根據(jù)本發(fā)明的示例性實(shí)施例的列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng)是包括存儲(chǔ)單元以及與存儲(chǔ)單元連接的數(shù)據(jù)庫管理單元的列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng)。存儲(chǔ)單元存儲(chǔ)與表達(dá)為包括關(guān)于每個(gè)字段的字段值的記錄陣列的表格式數(shù)據(jù)相對應(yīng)的數(shù)據(jù)結(jié)構(gòu)。對于每個(gè)字段,數(shù)據(jù)結(jié)構(gòu)包括值列表和值編號陣列,在所述值列表中,與唯一指定字段值的字段值編號相對應(yīng)地存儲(chǔ)所述字段中的字段值,在所述值編號陣列中,存儲(chǔ)以記錄順序指定所述字段值編號的信息。存儲(chǔ)單元存儲(chǔ)第一數(shù)據(jù)結(jié)構(gòu),該第一數(shù)據(jù)結(jié)構(gòu)對應(yīng)于第一表格式數(shù)據(jù),并且包括根據(jù)第一字段的值列表以及值編號陣列。數(shù)據(jù)庫管理單元包括數(shù)據(jù)結(jié)構(gòu)生成單元,該數(shù)據(jù)結(jié)構(gòu)生成單元從所輸入的第二表格式數(shù)據(jù)生成用于存儲(chǔ)在所述存儲(chǔ)單元中的第二數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)生成單元利用根據(jù)第一數(shù)據(jù)結(jié)構(gòu)的第一字段的值列表來生成根據(jù)第二數(shù)據(jù)結(jié)構(gòu)的第一字段的值列表。
[0012]根據(jù)本發(fā)明的另一示例性實(shí)施例的數(shù)據(jù)加載方法是一種列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng)中的數(shù)據(jù)加載方法,該列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng)包括存儲(chǔ)單元以及與存儲(chǔ)單元連接的數(shù)據(jù)庫管理單元。存儲(chǔ)單元存儲(chǔ)與表達(dá)為包括關(guān)于每個(gè)字段的字段值的記錄陣列的表格式數(shù)據(jù)相對應(yīng)的數(shù)據(jù)結(jié)構(gòu)。對于每個(gè)字段,數(shù)據(jù)結(jié)構(gòu)包括值列表和值編號陣列,在所述值列表中,與唯一指定字段值的字段值編號相對應(yīng)地存儲(chǔ)所述字段中的字段值,在所述值編號陣列中,存儲(chǔ)以記錄順序指定所述字段值編號的信息。該方法包括:由存儲(chǔ)單元存儲(chǔ)第一數(shù)據(jù)結(jié)構(gòu),該第一數(shù)據(jù)結(jié)構(gòu)對應(yīng)于第一表格式數(shù)據(jù),并且包括根據(jù)第一字段的值列表以及值編號陣列;以及通過數(shù)據(jù)庫管理單元從所輸入的第二表格式數(shù)據(jù)生成用于存儲(chǔ)在所述存儲(chǔ)單元中的第二數(shù)據(jù)結(jié)構(gòu)。當(dāng)生成第二數(shù)據(jù)結(jié)構(gòu)時(shí),數(shù)據(jù)庫管理單元利用根據(jù)第一數(shù)據(jù)結(jié)構(gòu)的第一字段的值列表來生成根據(jù)第二數(shù)據(jù)結(jié)構(gòu)的第一字段的值列表。
[0013]根據(jù)本發(fā)明的另一示例性實(shí)施例的存儲(chǔ)程序的非瞬時(shí)計(jì)算機(jī)可讀介質(zhì),計(jì)算機(jī)構(gòu)成列存儲(chǔ)數(shù)據(jù)管理系統(tǒng)中的數(shù)據(jù)庫管理單元,該列存儲(chǔ)數(shù)據(jù)管理系統(tǒng)包括存儲(chǔ)單元以及與存儲(chǔ)單元連接的數(shù)據(jù)庫管理單元,存儲(chǔ)單元存儲(chǔ)與表達(dá)為包括關(guān)于每個(gè)字段的字段值的記錄陣列的表格式數(shù)據(jù)相對應(yīng)的數(shù)據(jù)結(jié)構(gòu),對于每個(gè)字段,數(shù)據(jù)結(jié)構(gòu)包括值列表和值編號陣列,所述值列表被配置為使得所述字段中的字段值與唯一指定字段值的字段值編號相對應(yīng)地被存儲(chǔ),所述值編號陣列被配置為使得以記錄順序指定所述字段值編號的信息被存儲(chǔ),存儲(chǔ)單元存儲(chǔ)第一數(shù)據(jù)結(jié)構(gòu),該第一數(shù)據(jù)結(jié)構(gòu)對應(yīng)于第一表格式數(shù)據(jù)并且包括根據(jù)第一字段的值列表以及值編號陣列,所述非瞬時(shí)計(jì)算機(jī)可讀介質(zhì)使得所述計(jì)算機(jī)用作:
[0014]數(shù)據(jù)結(jié)構(gòu)生成單元,該數(shù)據(jù)結(jié)構(gòu)生成單元從所輸入的第二表格式數(shù)據(jù)生成用于存儲(chǔ)在存儲(chǔ)單元中的第二數(shù)據(jù)結(jié)構(gòu),并且當(dāng)生成時(shí),利用根據(jù)第一數(shù)據(jù)結(jié)構(gòu)的第一字段的值列表來生成根據(jù)第二數(shù)據(jù)結(jié)構(gòu)的第一字段的值列表。
[0015]由于本發(fā)明具有上述配置,所以能夠?qū)崿F(xiàn)表格式數(shù)據(jù)的高速加載。
【附圖說明】
[0016]圖1是根據(jù)本發(fā)明的第一示例性實(shí)施例的列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng)的框圖;
[0017]圖2示出了在根據(jù)本發(fā)明的第二示例性實(shí)施例的列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng)中使用第一數(shù)據(jù)組的列的VL來生成第二數(shù)據(jù)組的列的VL和VNo的過程;
[0018]圖3是根據(jù)本發(fā)明的第二示例性實(shí)施例的數(shù)據(jù)庫管理系統(tǒng)的框圖;
[0019]圖4是根據(jù)本發(fā)明的第二示例性實(shí)施例的用于生成要分割的時(shí)間序列數(shù)據(jù)的表的示例性查詢;
[0020]圖5示出了本發(fā)明的第二示例性實(shí)施例中的繼承列定義單元的示例性內(nèi)容;
[0021 ]圖6示出了本發(fā)明的第二示例性實(shí)施例中的要輸入的CSV文件的示例性內(nèi)容;
[0022]圖7是示出本發(fā)明的第二示例性實(shí)施例中的加載過程的流程圖;
[0023]圖8示出了在本發(fā)明的第二示例性實(shí)施例中通過在第二數(shù)據(jù)組中逐個(gè)順序地檢查數(shù)據(jù)并且將其與第一數(shù)據(jù)組中的VL中的數(shù)據(jù)進(jìn)行匹配來提取新的數(shù)據(jù)的過程的具體示例;
[0024]圖9示出了在本發(fā)明的第二示例性實(shí)施例中的生成第二數(shù)據(jù)組的VNo的過程的具體示例。
[0025]圖10是根據(jù)本發(fā)明的第三示例性實(shí)施例的數(shù)據(jù)庫管理系統(tǒng)的框圖;
[0026]圖11示出了本發(fā)明的第三示例性實(shí)施例中的繼承列歷史信息單元的示例性內(nèi)容;
[0027]圖12示出了在本發(fā)明的第三示例性實(shí)施例中的針對每個(gè)繼承列設(shè)置閾值的示例性查詢以及基于該查詢所生成的繼承列定義的示例;
[0028]圖13是根據(jù)本發(fā)明的第四示例性實(shí)施例的數(shù)據(jù)庫管理系統(tǒng)的框圖;
[0029]圖14示出了本發(fā)明的第四示例性實(shí)施例中的VL—致率信息單元的示例性內(nèi)容;
[0030]圖15示出了本發(fā)明的第四示例性實(shí)施例中的繼承列定義單元的示例性內(nèi)容;
[0031 ]圖16是根據(jù)本發(fā)明的第五示例性實(shí)施例的數(shù)據(jù)庫管理系統(tǒng)的框圖;
[0032]圖17示出了本發(fā)明的第五示例性實(shí)施例中的銷售表的示例性定義;
[0033]圖18示出了根據(jù)本發(fā)明的第五示例性實(shí)施例的主列定義單元的示例性內(nèi)容;
[0034]圖19示出了表格式數(shù)據(jù)和與之對應(yīng)的FAST結(jié)構(gòu)數(shù)據(jù)的示例;以及
[0035]圖20是用于實(shí)現(xiàn)數(shù)據(jù)庫管理系統(tǒng)的信息處理設(shè)備的框圖。
【具體實(shí)施方式】
[0036]下面參照附圖來具體描述本發(fā)明的實(shí)施例。
[0037][第一示例性實(shí)施例]
[0038]參照圖1,根據(jù)本發(fā)明的第一示例性實(shí)施例的列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng)100包括存儲(chǔ)單元110以及與存儲(chǔ)單元100連接的數(shù)據(jù)庫管理單元120。
[0039]存儲(chǔ)單元110具有存儲(chǔ)對應(yīng)于表格式數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)的功能。表格式數(shù)據(jù)被表達(dá)為包括與相應(yīng)字段相關(guān)的字段值的記錄的陣列。同時(shí),數(shù)據(jù)結(jié)構(gòu)被配置為,對于每個(gè)字段,包括值列表(在下文中稱為VL)和值編號陣列(在下文中稱為VNo),在值列表(在下文中稱為VL)中,與唯一指定字段值的字段值編號相對應(yīng)地存儲(chǔ)字段中的字段值,在值編號陣列(在下文中稱為VNo)中,存儲(chǔ)以記錄順序指定字段值編號的信息。
[0040]數(shù)據(jù)庫管理單元120包括數(shù)據(jù)結(jié)構(gòu)生成單元121,該數(shù)據(jù)結(jié)構(gòu)生成單元接收表格式數(shù)據(jù)并且生成數(shù)據(jù)結(jié)構(gòu),以將其存儲(chǔ)在存儲(chǔ)單元110中。數(shù)據(jù)結(jié)構(gòu)生成單元121具有以下功能:利用根據(jù)已經(jīng)存儲(chǔ)在存儲(chǔ)單元110中的數(shù)據(jù)結(jié)構(gòu)的字段的VL,來生成根據(jù)用于將其新存儲(chǔ)在存儲(chǔ)單元110中的數(shù)據(jù)結(jié)構(gòu)的字段的VL。
[0041 ]例如,存儲(chǔ)單元110被配置有存儲(chǔ)設(shè)備,諸如計(jì)算機(jī)的存儲(chǔ)器和硬盤。此外,數(shù)據(jù)庫管理單元120被配置有例如構(gòu)成計(jì)算機(jī)的算術(shù)處理單元的微計(jì)算機(jī)以及在其上執(zhí)行的程序。具體地,如圖20中所示,列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng)100例如通過信息處理設(shè)備540和程序543來實(shí)現(xiàn),信息處理設(shè)備540包括諸如微處理器的至少一個(gè)算術(shù)處理單元541以及用作存儲(chǔ)單元110等的存儲(chǔ)單元542,諸如存儲(chǔ)器和硬盤。程序543是在信息處理設(shè)備540的啟動(dòng)時(shí)從外部計(jì)算機(jī)可讀記錄介質(zhì)被讀取到存儲(chǔ)器,并且控制算術(shù)處理單元541的操作,以由此在算術(shù)處理單元541上實(shí)現(xiàn)數(shù)據(jù)庫管理單元120。如下所述,列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng)200、300、400和500也能夠以類似的方式通過信息處理設(shè)備540和程序543來實(shí)現(xiàn)。
[0042]下面將描述本實(shí)施例的操作。
[0043]作為初始狀態(tài),將在第二表格式數(shù)據(jù)130加載之前已經(jīng)加載的第一表格式數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)111存儲(chǔ)在存儲(chǔ)單元110中。數(shù)據(jù)結(jié)構(gòu)111包括根據(jù)字段112以及根據(jù)字段i的VNo 113ο
[0044]當(dāng)輸入第二表格式數(shù)據(jù)130時(shí),數(shù)據(jù)庫管理單元120的數(shù)據(jù)結(jié)構(gòu)生成單元121生成用于將其存儲(chǔ)在存儲(chǔ)單元110中的第二表格式數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)114。此時(shí),數(shù)據(jù)結(jié)構(gòu)生成單元121通過使用根據(jù)第一表格式數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)111的字段112,來生成根據(jù)第二表格式數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)114的字段115。例如,數(shù)據(jù)結(jié)構(gòu)生成單元121從第二表格式數(shù)據(jù)130的記錄的字段i中提取在第一表格式數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)111的字段i中不存在的新的字段值,并且將對所提取的新的字段值進(jìn)行排序的結(jié)果與VL 112合并,以由此生成VL 115。此夕卜,從所生成的VL 115和第二表格式數(shù)據(jù)130的字段i的字段值,數(shù)據(jù)結(jié)構(gòu)生成單元121生成根據(jù)第二表格式數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)114的字段U^VNo 116。然后,數(shù)據(jù)結(jié)構(gòu)生成單元121將所生成的數(shù)據(jù)結(jié)構(gòu)114存儲(chǔ)在存儲(chǔ)單元110中。
[0045]如上所述,根據(jù)本實(shí)施例,能夠以高速加載第二表格式數(shù)據(jù)130。
[0046]這是因?yàn)?,?shù)據(jù)結(jié)構(gòu)生成單元121通過使用根據(jù)第一表格式數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)111的字段112,來生成根據(jù)第二表格式數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)114的字段115。例如,如果第二表格式數(shù)據(jù)130的記錄的字段i中的全部字段值都存在于根據(jù)第一表格式數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)111的字段112中,則VL 112可以按原樣用作VL 115。盡管這是極端示例,但由于在第二表格式數(shù)據(jù)130的記錄的字段i中的字段值與第一表格式數(shù)據(jù)的記錄的字段i中的字段值之間的重復(fù)度較高,所以要提取的新的字段值的數(shù)目較少。這樣,與通過使用第二表格式數(shù)據(jù)130的記錄的字段i中的字段值來從頭開始生成VL 115的情況相比,能夠顯著減少計(jì)鈴舁里。
[0047]在下文中,將給出對另一個(gè)實(shí)施例的描述,其中更具體地描述了第一示例性實(shí)施例。
[0048][第二示例性施例]
[0049]下面將描述本發(fā)明的第二示例性實(shí)施例。在本實(shí)施例中,在列存儲(chǔ)數(shù)據(jù)庫中,通過參考另一列或者過去的信息來減少用于加載具有與過去數(shù)據(jù)的高重復(fù)度的數(shù)據(jù)所需要的處理時(shí)間。
[0050]〈本實(shí)施例要解決的問題〉
[0051]作為數(shù)據(jù)庫操作方法,通常存在下述情況:批量加載數(shù)據(jù)組,諸如一個(gè)月的銷售數(shù)據(jù)或者產(chǎn)品繼承表的切換。在如FAST結(jié)構(gòu)的列存儲(chǔ)數(shù)據(jù)庫中,其中數(shù)據(jù)被存儲(chǔ)為使得針對表的每一列來分解組成部分,當(dāng)批量加載這樣的數(shù)據(jù)組時(shí),VL(和VNo)從頭開始被生成并被保持。用于生成VL(和VNo)的處理隨著數(shù)據(jù)尺寸越大而需要越長的時(shí)間。
[0052]本實(shí)施例的目的在于,當(dāng)批量加載新的數(shù)據(jù)組時(shí),通過使用FAST結(jié)構(gòu)中數(shù)據(jù)組的列的VL,來減少用于生成新加載的數(shù)據(jù)組的VL(和VNo)所需要的時(shí)間,在FAST結(jié)構(gòu)中,大量數(shù)據(jù)類型可能與新的數(shù)據(jù)組的那些重疊。在下文中,為了區(qū)分,已經(jīng)處于FAST結(jié)構(gòu)的數(shù)據(jù)組被稱為第一數(shù)據(jù)組,并且新加載的數(shù)據(jù)組被稱為第二數(shù)據(jù)組。
[0053]〈本實(shí)施例的概述〉
[0054]圖2示出了在本實(shí)施例中通過使用第一數(shù)據(jù)組的列的VL來生成第二數(shù)據(jù)組的列的VL和VNo的過程。在本實(shí)施例中,要使用的第一數(shù)據(jù)組的VL(在下文中被稱為繼承VL,并且其列被稱為繼承列)中存在的數(shù)據(jù)已經(jīng)被應(yīng)用了重復(fù)刪除(deduplicat1n)并且以排序的形式被存儲(chǔ)。這樣,首先搜索要被新加載的數(shù)據(jù)組(N個(gè)單位),并且提取在繼承VL的數(shù)據(jù)(X個(gè)單位)中不存在的新的獨(dú)特?cái)?shù)據(jù)(Y個(gè)單位)(過程I)。然后,對所提取的數(shù)據(jù)(Y個(gè)單位)應(yīng)用重復(fù)刪除并進(jìn)行存儲(chǔ)(過程2)。由此,獲得部分VL數(shù)據(jù)(Z個(gè)單位)。然后,部分VL數(shù)據(jù)(Z個(gè)單位)和繼承VL被合并,以由此生成第二數(shù)據(jù)組的列的VL(X+Z個(gè)單位)(過程3)。這樣,與通過對第二數(shù)據(jù)組的列的數(shù)據(jù)(N個(gè)單位)應(yīng)用重復(fù)刪除并對其進(jìn)行排序來生成VL的方法相比,能夠減少處理時(shí)間。當(dāng)繼承VL中的數(shù)據(jù)和第二數(shù)據(jù)組具有較大量共同之處(一致率較高)時(shí),效果較大。最后,在將第二數(shù)據(jù)組的數(shù)據(jù)(N個(gè)單位)與在過程3中所生成的VL(X+Z個(gè)單位)進(jìn)行匹配時(shí),生成第二組數(shù)據(jù)的列的VNo(過程4)。
[0055]可以考慮選擇要使用的繼承列的多種方法。下面將對此進(jìn)行描述。
[0056]〈本實(shí)施例的配置〉
[0057]圖3是示出根據(jù)本實(shí)施例的數(shù)據(jù)庫管理系統(tǒng)200的總體配置的框圖。參照圖3,數(shù)據(jù)庫管理系統(tǒng)200從客戶端應(yīng)用210接收查詢,對其進(jìn)行分析和處理,并且將結(jié)果返回到客戶端應(yīng)用210。作為主要功能單元,數(shù)據(jù)庫管理系統(tǒng)200包括查詢分析單元201、查詢處理單元202、數(shù)據(jù)存儲(chǔ)單元203、繼承列定義單元204、VL繼承控制單元205以及數(shù)據(jù)結(jié)構(gòu)生成單元206。能夠通過構(gòu)成數(shù)據(jù)庫管理系統(tǒng)200的計(jì)算機(jī)以及可在其上操作的程序來實(shí)現(xiàn)這些單元201至206。
[0058]在數(shù)據(jù)庫管理系統(tǒng)200中,查詢分析單元201分析查詢,并且查詢處理單元202處理該查詢。查詢處理單元202在適當(dāng)時(shí)讀取并且更新存儲(chǔ)在數(shù)據(jù)存儲(chǔ)單元203中的FAST結(jié)構(gòu)的數(shù)據(jù)。繼承列定義單元204保持關(guān)于哪個(gè)表的哪一列被定義為繼承列的定義信息。VL繼承控制單元205具有確定在加載數(shù)據(jù)中的多個(gè)列當(dāng)中的哪一列使用繼承列的繼承VL的功能。數(shù)據(jù)結(jié)構(gòu)生成單元206具有生成新的加載數(shù)據(jù)的VNo和VL的功能。
[0059]下面將描述本實(shí)施例的操作。在下文中,將描述在VL匹配現(xiàn)有VL的概率高的情況下,采取分割方法的情況,其中在將邏輯表劃分成多個(gè)物理表的同時(shí)存儲(chǔ)該邏輯表。更具體地,在該情況下,將新的分區(qū)數(shù)據(jù)加載到通過分割以特定分區(qū)來被劃分的表。應(yīng)當(dāng)注意,由于本發(fā)明可以在列之間的VL—致率高時(shí)被執(zhí)行,所以其應(yīng)用不限于分割。
[0060]通常的情況是,在一個(gè)表中管理長期數(shù)據(jù),諸如銷售數(shù)據(jù)。在該情況下,隨著數(shù)據(jù)量的增加,出現(xiàn)搜索和制表處理劣化并且管理變得復(fù)雜的問題。作為對這樣的問題的對策,采取通過分割來劃分表的動(dòng)作。作為示例,將會(huì)考慮完全刪除一個(gè)月內(nèi)最舊記錄的情況。如果不采取這樣的動(dòng)作,則需要針對對象分區(qū)的記錄來搜索全部銷售數(shù)據(jù),并且將其刪除。同時(shí),如果已經(jīng)采取了上述動(dòng)作,則由于將一個(gè)月內(nèi)的數(shù)據(jù)設(shè)定為單元,所以僅需刪除該單
J L ο
[0061]在該情況下,由于表的定義是相同的,所以前一分區(qū)的繼承列的VL很可能是有效的繼承VL,因?yàn)榇嬖诶缜耙粋€(gè)月中銷售的產(chǎn)品的類型與新一個(gè)月中銷售的產(chǎn)品的類型類似的傾向。然而,因?yàn)楦鶕?jù)劣的特性而可能不是有效的,所以當(dāng)定義表時(shí),要求用戶明確地指定可以被用作繼承列的列。
[0062]首先,從客戶端應(yīng)用210發(fā)出用于生成要分割的時(shí)間序列數(shù)據(jù)的表的查詢。此時(shí),還一起指定繼承列。圖4示出了其示例性查詢。該查詢示出了生成銷售表,并且根據(jù)日期列的值按2014年的月份來分割數(shù)據(jù)。部分“p2014XX” (XX表示OI至12中的任一個(gè))是分割名稱。該查詢是偽查詢,并且實(shí)際語法取決于DBMS。到目前為止的定義是一般定義。在本實(shí)施例中,為了指示用作繼承列的列,將關(guān)鍵字“INHERITANCE(繼承)”添加到列名稱和數(shù)據(jù)類型。查詢分析單元201讀取該查詢,并且如圖5中所示,將繼承列和表的信息存儲(chǔ)在繼承列定義單元204中。存儲(chǔ)方法可以使用外部文件、專用表等。
[0063]在圖4中,對于“產(chǎn)品名”、“數(shù)量”和“金額”的列指定繼承列,而對于其他列,即“銷售id”、“用戶名”和“日期”不指定繼承列。盡管以下描述了將這些列從繼承列的指定中排除的理由,但這些理由是作為示例給出,并且可以根據(jù)數(shù)據(jù)特性而改變。
[0064]“銷售id”:通常使用升序的序號。對前一分區(qū)和新的分區(qū)給予完全不同的值,并且其中似乎沒有重復(fù)。
[0065]“用戶名”:認(rèn)為盡管這取決于產(chǎn)品或者用戶的數(shù)目,但是存在一定數(shù)目的用戶,他們的產(chǎn)品購買間隔超過一個(gè)月,因此預(yù)期在前一分區(qū)和新的分區(qū)之間的重復(fù)用戶的數(shù)目不會(huì)很大。
[0066]“日期”:由于分區(qū)是按月進(jìn)行劃分的,所以在前一分區(qū)與新的區(qū)段之間的日期從不重復(fù)。
[0067]在此,將考慮將一個(gè)月的數(shù)據(jù)新加載到銷售表中的情況。通過從客戶端應(yīng)用210向數(shù)據(jù)庫管理系統(tǒng)200發(fā)出專用于加載的查詢來執(zhí)行加載,在該專用于加載的查詢中指定CSV格式等的外部文件。圖6示出了 CSV文件的示例性內(nèi)容。該示例示出了 2014年11月的數(shù)據(jù)。
[0068]圖7是示出加載過程的流程圖。在數(shù)據(jù)庫管理系統(tǒng)200中,查詢處理單元202確定前一個(gè)月的數(shù)據(jù)是否存在(步驟S201),并且如果不存在,則數(shù)據(jù)結(jié)構(gòu)生成單元206使用常規(guī)方法來生成每一列的VNo和VL(步驟S202)。另一方面,如果數(shù)據(jù)存在,則VL繼承控制單元205順序地檢查列的定義(步驟S203) ο關(guān)于沒有對其給予關(guān)鍵字“INHERITANCE”的列,數(shù)據(jù)結(jié)構(gòu)生成單元206使用常規(guī)方法來生成該列的VNo和VL(步驟S205)。同時(shí),關(guān)于對其給予了關(guān)鍵字“INHERITANCE”的列,數(shù)據(jù)結(jié)構(gòu)生成單元206使用繼承VL來生成該列的VNo和VL(步驟S206)。VL繼承控制單元205確定是否已生成了全部列的VNo和VL。如果沒有,則處理返回至步驟S203,并且重復(fù)與上述相同的處理。如果已經(jīng)完成,則圖7的處理結(jié)束。
[0069]下面將描述在步驟S206處利用繼承列的繼承VL來生成VL和VNo的過程(圖2中的過程I至4)的細(xì)節(jié)。
[0070]假定在十月的“產(chǎn)品名”列的繼承VL中的數(shù)據(jù)的單位數(shù)是10000,并且十一月數(shù)據(jù)的單位數(shù)是1000000,并且利用四個(gè)CPU核來對“產(chǎn)品列”執(zhí)行處理。
[0071]過程I的細(xì)節(jié)
[0072]首先,如圖8中所示,十一月數(shù)據(jù)被劃分成四個(gè),由此每一組包含250000個(gè)單位,并且相應(yīng)地將所劃分的數(shù)據(jù)單位分配給CPU核。每個(gè)CPU核從頭開始逐個(gè)檢查250000個(gè)單位的數(shù)據(jù),以查看其是否被包括在十月的繼承VL中。如果沒有被包括(即在十月中完全沒有銷售該產(chǎn)品),則將其提取為十一月的新數(shù)據(jù)。最后,假定提取了總共8000個(gè)單位的十一月的新數(shù)據(jù)(由CPU核I提取的2100個(gè)單位、由CPU核2所提取的1900個(gè)單位、由CPU核3所提取的1800個(gè)單位和由CPU核4所提取的2200個(gè)單位的總數(shù))(參見圖8)。
[0073]過程2的細(xì)節(jié)
[0074]下面,8000個(gè)單位的數(shù)據(jù)在進(jìn)行重復(fù)刪除的同時(shí)被排序,由此生成十一月的新數(shù)據(jù)VL(部分VL)。可以通過使用諸如歸并排序的典型排序方法來消除重復(fù)數(shù)據(jù)來執(zhí)行該處理。通過該處理,假定十一月的新數(shù)據(jù)VL包含100個(gè)單位。
[0075]過程3的細(xì)節(jié)
[0076]因?yàn)樵谶^程2中生成的部分VL是僅與十一月中新出現(xiàn)的數(shù)據(jù)相關(guān)的VL,所以將其與也出現(xiàn)在十月中出現(xiàn)的1000個(gè)單位的數(shù)據(jù)(繼承VL)合并。因?yàn)閮煞NVL已經(jīng)被排序,所以能夠簡單地通過從頭開始順序地比較兩個(gè)VL來對其進(jìn)行合并。結(jié)果,獲得尺寸為10100(10000+100)個(gè)單位的^^一月的VL。
[0077]然而,應(yīng)當(dāng)注意,VL包含“在十月中銷售但在十一月中沒有銷售的產(chǎn)品的數(shù)據(jù)”,這是不必要的。此時(shí)沒有刪除不必要的數(shù)據(jù)。然而,因?yàn)槊慨?dāng)新月份的數(shù)據(jù)被加載時(shí)都累積數(shù)據(jù),所以期望用戶考慮操作情形并周期性地替換VNo和VL(例如一年一次),并且在那時(shí)將其刪除。使用常規(guī)方法來執(zhí)行VNo和VL的替換。
[0078]過程4的細(xì)節(jié)
[0079]最后,使用十一月的VL來生成十一月的VNo。如圖9所示,十一月的數(shù)據(jù)單位被劃分成四個(gè),使得每一組包含250000個(gè)單位,并且相應(yīng)地將其分配給CPU核。然后,一個(gè)CPU核從頭開始逐個(gè)檢查250000個(gè)單位的數(shù)據(jù),以找出其存在的^^一月的VL的附標(biāo)(subscript),并且將所找出的附標(biāo)確定為VNo數(shù)據(jù)的值。
[0080]〈效果的描述〉
[0081]如上所述,根據(jù)本實(shí)施例,因?yàn)樵诶^承VL與新生成的VL之間的一致性程度較高,所以應(yīng)用重復(fù)刪除和排序的范圍小于常規(guī)方法的范圍。這樣,減少了用于生成VL(和VNo)的處理時(shí)間。因此,減少了用于批量加載新的數(shù)據(jù)組的處理時(shí)間。
[0082][第三示例性實(shí)施例]
[0083]下面將描述本發(fā)明的第三示例性實(shí)施例。本實(shí)施例的數(shù)據(jù)庫管理系統(tǒng)具有將在過去的加載執(zhí)行時(shí)的VL數(shù)據(jù)一致率保持作為歷史的功能,并且對于VL數(shù)據(jù)一致率低而使得改進(jìn)效果不如預(yù)期的列,允許用戶容易地確定是否取消繼承列的指定。此外,本實(shí)施例的數(shù)據(jù)庫管理系統(tǒng)具有以下功能:如果VL數(shù)據(jù)一致率變得小于閾值,則向用戶提供這樣的信息或者自動(dòng)取消繼承列的指定。
[0084]用戶在考慮前一分區(qū)的數(shù)據(jù)與新的分區(qū)的數(shù)據(jù)之間的VL—致率是否是高的同時(shí),執(zhí)行繼承列的指定。然而,作為連續(xù)實(shí)際操作的結(jié)果,可能存在下述情況:前一分區(qū)的VL數(shù)據(jù)與新的分區(qū)的VL數(shù)據(jù)并沒有非常匹配,并且繼承列的指定并不有效。這樣,在本實(shí)施例中,過去的繼承列的VL數(shù)據(jù)被存儲(chǔ)為歷史,以允許用戶容易地確定是否取消繼承列的指定。此外,如果存在一致率低于所設(shè)定的閾值的列,則在加載時(shí)可以向用戶通知這樣的事實(shí),或者可以自動(dòng)取消繼承列的指定。
[0085]圖10是根據(jù)本實(shí)施例的數(shù)據(jù)庫管理系統(tǒng)300的框圖。本實(shí)施例的數(shù)據(jù)管理系統(tǒng)300與第二示例性實(shí)施例的數(shù)據(jù)庫管理系統(tǒng)200的不同之處在于,數(shù)據(jù)庫管理系統(tǒng)300包括繼承列歷史信息單元301。
[0086]繼承列歷史信息單元301具有存儲(chǔ)每個(gè)月的加載中的繼承列的VL數(shù)據(jù)一致率的功能。每當(dāng)執(zhí)行加載時(shí),對繼承列歷史信息單元301添加新的數(shù)據(jù)。作為繼承列歷史信息單元301,可以使用存儲(chǔ)器中的表。也可以使用另一個(gè)存儲(chǔ)區(qū)域,諸如外部文件。
[0087]圖11示出了繼承列歷史信息單元301的示例性內(nèi)容。在該示例中,以表的格式示出了在過去五個(gè)月中、作為銷售表中存在的繼承列的產(chǎn)品名、數(shù)量和金額的加載中的VL—致率的歷史。例如,表的第三列的第三行示出了,當(dāng)加載2014年的數(shù)據(jù)時(shí),在數(shù)量列中,{(一月的繼承VL的數(shù)目)/(二月的VL的數(shù)目)} X 100 =百分之99.00的VL匹配。例如,VL—致率通過數(shù)據(jù)結(jié)構(gòu)生成單元206來生成,并且被存儲(chǔ)在繼承列歷史信息單元301中??梢詮目蛻舳藨?yīng)用210自由地參考繼承列歷史信息。
[0088]在此,假定在加載三月數(shù)據(jù)之后,用戶查看繼承列歷史信息,并且注意到金額列的VL—致率低于閾值(例如95%)。然后,假定用戶發(fā)出用于改變繼承列定義單元204的信息的查詢(諸如ALTER TABLE),以由從繼承列中刪除該金額列。在該情況下,數(shù)據(jù)結(jié)構(gòu)生成單元206在生成四月之后的金額列的VNo和VL時(shí),不使用繼承VL。此外,當(dāng)四月之后更新繼承列歷史信息單元301時(shí),數(shù)據(jù)結(jié)構(gòu)生成單元206將空(NULL)置于金額列的相應(yīng)部分中,如圖11中所示。
[0089]數(shù)據(jù)結(jié)構(gòu)生成單元206可以被配置為使得如果任何列的一致率變得低于特定閾值(例如99 % ),則可以在批量加載時(shí),向用戶呈現(xiàn)這樣的事實(shí)。同時(shí),如果任何列的一致率變得低于特定閾值(例如99%),則數(shù)據(jù)結(jié)構(gòu)生成單元206可以終止使用用于該列的繼承來生成VL的處理。具體地,數(shù)據(jù)結(jié)構(gòu)生成單元206可以自動(dòng)取消繼承列的定義,并且通過常規(guī)方法來生成VNo和VL。在通過常規(guī)方法來執(zhí)行的情況下,從繼承列定義單元204中刪除對應(yīng)的繼承列的定義。
[0090]同時(shí),可以由用戶為每個(gè)列設(shè)定閾值。圖12示出了用于為每個(gè)繼承列設(shè)定閾值的查詢的示例、以及基于該查詢所生成的繼承列定義的示例。對于圖12中所示的查詢和繼承列定義,與圖4中所示的查詢和圖5中所示的繼承列定義相比,增加了括號中的99、95和95的閾值。
[0091]根據(jù)本實(shí)施例,用戶能夠通過參考繼承列歷史信息單元301的內(nèi)容,來檢查對其指定繼承列的每個(gè)列的最新VL數(shù)據(jù)一致率。這樣,用戶能夠基于該最新的信息來確定他/她使用何種方法,即,使用繼承VL的方法或不使用繼承VL的方法,來生成對應(yīng)列的VNo或VL ο然后,對于VL數(shù)據(jù)一致率低而使得高的改進(jìn)效果不如預(yù)期的繼承列,通過執(zhí)行取消繼承列指定的操作,能夠選擇需要更短處理時(shí)間的方法。由此,能夠減少用于分配加載所需要的總處理時(shí)間。
[0092]此外,根據(jù)本實(shí)施例,如果任何列的一致率變得低于特定閾值(例如99%),則能夠自動(dòng)終止使用用于該列的繼承列來生成VL的處理。
[0093][第四示例性實(shí)施例]
[0094]下面將描述本發(fā)明的第四示例性實(shí)施例。根據(jù)本實(shí)施例的數(shù)據(jù)庫管理系統(tǒng)可以被配置為針對在任意時(shí)間VL—致率可能很高的列來搜索表,存儲(chǔ)結(jié)果,并且將其呈現(xiàn)給用戶,以由此允許用戶確定是否指定繼承列,或者可以被配置為搜索在任意時(shí)間VL—致率超過閾值的表的列,存儲(chǔ)檢測結(jié)果并且將其呈現(xiàn)給用戶,以由此允許用戶確定是否指定繼承列。否貝IJ,數(shù)據(jù)庫管理系統(tǒng)可以被配置為搜索在任意時(shí)間VL—致率超過閾值的表的列,并且將其自動(dòng)指定成為繼承列。
[0095]即使對于沒有指定成為繼承列的列,也可以存在能夠用作繼承VL的另一列。例如,盡管在第二示例性實(shí)施例中,將銷售表中的用戶名的列排除在繼承列之外,但作為除了構(gòu)成邏輯表的物理表的另一表,用戶名的主表在大多數(shù)情況下應(yīng)當(dāng)存在,并且所有用戶都應(yīng)當(dāng)被包括在其用戶名的列中。這樣,如果主表的用戶名的列的VL被用作繼承VL,則VL—致率將是100%。
[0096]圖13是根據(jù)本實(shí)施例的數(shù)據(jù)庫管理系統(tǒng)400的框圖。本實(shí)施例的數(shù)據(jù)管理系統(tǒng)400與第二示例性實(shí)施例的數(shù)據(jù)庫管理系統(tǒng)200的不同之處在于,數(shù)據(jù)庫管理系統(tǒng)400包括VL—致率掃描單元401以及VL—致率信息單元402。
[0097]VL—致率掃描單元401具有下述功能:定期地(例如當(dāng)系統(tǒng)負(fù)載低時(shí)的夜間期間)自動(dòng)搜索可能具有與在繼承列定義單元204中定義表名的表的列(在下文中稱為對象列,在圖5的示例中是銷售表的列)的高VL—致率的另一表的列。例如,類似于第三示例性實(shí)施例,VL—致率掃描單元401搜索完全滿足與對象列相同的模式、相同的列名以及相同的數(shù)據(jù)類型的條件的列集合,將每個(gè)列的VL與對象列的VL作比較,并且計(jì)算VL—致率。VL—致率掃描單元401將計(jì)算結(jié)果寫入VL—致率信息單元402 JL—致率信息單元402可以是存儲(chǔ)器上的表格。還可以使用另一存儲(chǔ)區(qū)域,諸如外部文件。
[0098]圖14示出了VL—致率信息單元402的示例性內(nèi)容。該示例的VL—致率信息單元402存儲(chǔ)多個(gè)記錄,并且每個(gè)記錄具有字段,諸如主側(cè)表名、對象表名、列名、VL—致率以及檢測數(shù)據(jù)。例如,在第二行上的條目示出了在2014年I月3日檢測到銷售表中的用戶名相對于用戶主表中的用戶名的VL—致率為100%。能夠從客戶端應(yīng)用210自由地參考VL—致率信息單元402。如果用戶查看該信息并且發(fā)現(xiàn)用戶名的一致率高,則當(dāng)用戶在下次及以后執(zhí)行銷售表的數(shù)據(jù)加載時(shí),用戶可以使用用戶主表中的銷售列的VL作為繼承VL,以生成用戶名的列的VNo和VL,來執(zhí)行加載。
[0099]圖15示出本實(shí)施例中的繼承列定義單元204的示例性內(nèi)容。為了使用另一表中的列作為繼承VL,定義繼承側(cè)表名以及列名。為了生成這樣的繼承列定義,例如,可以考慮在查詢中進(jìn)行的指定繼承側(cè)表名和列的方法,其中執(zhí)行批量加載。
[0100]VL—致率掃描單元401可以被配置為,如果檢測到的VL—致率超過特定閾值(例如,99% ),則在批量加載時(shí)向用戶呈現(xiàn)該事實(shí),或者將繼承列定義單元204的內(nèi)容自動(dòng)重寫成圖15中所示的。否則,VL—致率信息單元402可以具有繼承列定義單元204的功能。例如,如由圖14中的虛線所示,繼承標(biāo)記字段(初始值為“假(False)”)被添加到VL—致率信息單元402,并且如果檢測到的VL—致率超過預(yù)定閾值(例如,99 % ),則VL—致率掃描單元401將繼承標(biāo)記的值從假改變?yōu)檎?True)。關(guān)于在VL—致率信息單元402中將繼承標(biāo)記的值改變?yōu)檎娴臈l目中所描述的銷售表的列,VL繼承控制單元205進(jìn)行控制使得在這樣的條目的主側(cè)表名中描述的表中的列被用作繼承VL。
[0101]如上所述,根據(jù)本實(shí)施例,由于搜索具有與要加載的對象表的列的VL—致率高的列的另一表并且將其呈現(xiàn)給用戶,所以用戶能夠從大范圍的表組中找到繼承VL。因此,能夠減少用于批量加載的整體處理時(shí)間。
[0102]此外,根據(jù)本實(shí)施例,數(shù)據(jù)庫管理系統(tǒng)能夠被配置為,檢測具有與要加載的對象表的列的VL—致率高的列的另一表,并且將其自動(dòng)用作繼承VL。因此,能夠減少用于批量加載的整體處理時(shí)間。
[0103][第五示例性實(shí)施例]
[0104]下面將描述本發(fā)明的第五示例性實(shí)施例。在本發(fā)明的第五示例性實(shí)施例中,如果存在包括要新加載到另一表中的列的所有數(shù)據(jù)類型的列,則這樣的列的VL被用作要新加載的列的VL,以由此顯著消除用于生成新VL的處理。在下文中,將使用在第二示例性實(shí)施例中所述的產(chǎn)品表中的產(chǎn)品名的列作為示例給出描述。
[0105]在第二示例性實(shí)施例中,產(chǎn)品名的列被定義為繼承列,并且執(zhí)行圖2的過程I至4,以由此生成十一月的VNo和VL。在四個(gè)過程當(dāng)中,過程I至3是用于生成十一月的VL的處理。在此,考慮到列的特性,除了銷售表之外,通常存在包括所有產(chǎn)品名的產(chǎn)品主表的產(chǎn)品名的列。通過將產(chǎn)品主表的產(chǎn)品名的列的VL直接用作十一月的產(chǎn)品名的列的VL,通過從過程4開始處理而省略過程I至3的處理,來完成用于生成VNo和VL的處理。在下文中,產(chǎn)品主表的產(chǎn)品名的列被稱作主列。在該情況下,必要的是,產(chǎn)品主表的產(chǎn)品名的列應(yīng)當(dāng)成為從在十月中的加載銷售表時(shí)直至在十一月中的新加載時(shí)的最新一個(gè)。
[0106]圖16是根據(jù)本實(shí)施例的數(shù)據(jù)庫管理系統(tǒng)500的框圖。本實(shí)施例的數(shù)據(jù)管理系統(tǒng)500與第二示例性實(shí)施例的數(shù)據(jù)庫管理系統(tǒng)200的不同之處在于,數(shù)據(jù)庫管理系統(tǒng)500包括主列定義單元501。
[0107]主列定義單元501存儲(chǔ)定義將哪個(gè)表的哪一列被用作主列的信息。
[0108]圖17示出了銷售表的示例性定義。如圖17中所示,在產(chǎn)品名的列的定義之后提供描述“MASTER[產(chǎn)品主.產(chǎn)品名(product master.product name)]”。該描述定義了,將產(chǎn)品主表的產(chǎn)品名的列用作主列,并且將其VL用作銷售表的產(chǎn)品名的列的VL。查詢分析單元201分析銷售表的定義,并且將如圖18所示的主列定義寫入主列定義單元501。
[0109]過程如下:在加載銷售表的數(shù)據(jù)之前,將新的產(chǎn)品數(shù)據(jù)加載道產(chǎn)品主表,并且更新主列的VL,并且然后,批量加載十一月銷售數(shù)據(jù)。
[0110]當(dāng)生成產(chǎn)品名的列的VNo和VL時(shí),使用產(chǎn)品主表的產(chǎn)品名的列的VL來執(zhí)行過程4,而省略過程I至3,以由此生成VNo。
[0111]與第二示例性實(shí)施例相比,因?yàn)槭÷粤诉^程I至3的處理,所以用于生成列的VNo和VL的處理被執(zhí)行得更快。這并不意味著,可以關(guān)于所有列都省略過程I至3的處理。
[0112]首先,關(guān)于諸如數(shù)量和金額的非特定數(shù)值列,因?yàn)閹缀醪淮嬖谟米髦?master)的列,所以無法使用上述方法。
[0113]第二,如果主VL的尺寸在很大程度上偏離要新加載的數(shù)據(jù)的類型數(shù)目,則產(chǎn)生性能問題。例如,假定產(chǎn)品主表中的產(chǎn)品名的類型數(shù)目是100000,而在十一月中銷售的產(chǎn)品的類型數(shù)目是5000。如果使用第二示例性實(shí)施例的方法而不是本實(shí)施例的方法,則十一月產(chǎn)品名的列的VL包含幾乎5000個(gè)單位的數(shù)據(jù),而如果使用本發(fā)明的方法,則其包含100000個(gè)單位的數(shù)據(jù)。100000個(gè)單位主要包括在十一月中沒有銷售的產(chǎn)品的數(shù)據(jù)。這樣,例如當(dāng)執(zhí)行搜索處理時(shí),要掃描的VL數(shù)據(jù)的單位數(shù)目浪費(fèi)地變多,這產(chǎn)生性能的劣化。
[0114]最后,存在數(shù)據(jù)一致性的問題。從客戶端應(yīng)用210傳送的數(shù)據(jù)并非總是正確的??赡芑旌喜槐匾速M(fèi)的數(shù)據(jù),或者必要數(shù)據(jù)有時(shí)可能不足。考慮到這樣的問題,還考慮到意執(zhí)行過程I至3。例如,將考慮下述情況:當(dāng)將新的產(chǎn)品數(shù)據(jù)加載到產(chǎn)品主表時(shí),應(yīng)當(dāng)加載的新產(chǎn)品的數(shù)據(jù)可能遺漏,并且此外,在十一月中銷售了一件或多件新產(chǎn)品。在執(zhí)行過程I至3的情況下,在執(zhí)行用于提取十一月的新數(shù)據(jù)的處理時(shí),能夠提取遺漏的新產(chǎn)品數(shù)據(jù),并且將其置于十一月VL中。然而,在本實(shí)施例的方法中,因?yàn)樵谏蒝No時(shí),新的產(chǎn)品數(shù)據(jù)沒有被包括在VL中,所以無法生成VNo,由此數(shù)據(jù)不一致性發(fā)生。在該情況下,使用本實(shí)施例的方法的處理被終止,并且再次從一開始使用第二示例性實(shí)施例的方法來執(zhí)行處理。
[0115]如上所述,根據(jù)本實(shí)施例,由于過程I至3中提取新VL數(shù)據(jù)的處理可以被省略,所以能夠相應(yīng)地減少用于生成列的VNo和VL的處理時(shí)間。
[0116]盡管已經(jīng)參照上述一些示例性實(shí)施例描述了本發(fā)明,但本發(fā)明不限于上述實(shí)施例,并且能夠?qū)ζ渥鞒龈鞣N增加和改變。
[0117]工業(yè)實(shí)用性
[0118]本發(fā)明可應(yīng)用于使用FAST結(jié)構(gòu)的列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng)。具體地,本發(fā)明批量加載數(shù)據(jù)集合時(shí)確定可允許處理時(shí)間(例如,確定從何時(shí)到何時(shí)是維護(hù)時(shí)間的情況)并且在可允許時(shí)間內(nèi)沒有完成加載的情況下是有效。這意味著,通過使用本發(fā)明,能夠減少加載時(shí)間以在可允許時(shí)間內(nèi)完成加載。
【主權(quán)項(xiàng)】
1.一種列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng),包括: 存儲(chǔ)單元,所述存儲(chǔ)單元存儲(chǔ)對應(yīng)于表格式數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),所述表格式數(shù)據(jù)被表達(dá)為包括與每個(gè)字段相關(guān)的字段值的記錄的陣列,所述數(shù)據(jù)結(jié)構(gòu)針對每個(gè)字段包括值列表和值編號陣列,所述值列表被配置為使得所述字段中的字段值與唯一指定所述字段值的字段值編號相對應(yīng)地被存儲(chǔ),所述值編號陣列被配置為使得以記錄順序指定所述字段值編號的信息被存儲(chǔ);以及 數(shù)據(jù)庫管理單元,所述數(shù)據(jù)庫管理單元與所述存儲(chǔ)單元連接,其中, 所述存儲(chǔ)單元被配置為存儲(chǔ)第一數(shù)據(jù)結(jié)構(gòu),所述第一數(shù)據(jù)結(jié)構(gòu)對應(yīng)于第一表格式,數(shù)據(jù)并且包括根據(jù)第一字段的所述值列表和所述值編號陣列, 所述數(shù)據(jù)庫管理單元包括數(shù)據(jù)結(jié)構(gòu)生成單元,所述數(shù)據(jù)結(jié)構(gòu)生成單元從所輸入的第二表格式數(shù)據(jù)生成用于存儲(chǔ)在所述存儲(chǔ)單元中的第二數(shù)據(jù)結(jié)構(gòu),并且 所述數(shù)據(jù)結(jié)構(gòu)生成單元被配置為利用根據(jù)所述第一數(shù)據(jù)結(jié)構(gòu)的所述第一字段的所述值列表,來生成根據(jù)所述第二數(shù)據(jù)結(jié)構(gòu)的第一字段的所述值列表。2.根據(jù)權(quán)利要求1所述的列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng),其中, 所述數(shù)據(jù)庫管理單元從所述第二表格式數(shù)據(jù)的記錄的所述第一字段中提取在所述第一數(shù)據(jù)結(jié)構(gòu)的所述第一字段中不存在的新的字段值,并且 為了生成根據(jù)所述第二數(shù)據(jù)結(jié)構(gòu)的所述第一字段的所述值列表,所述數(shù)據(jù)庫管理單元被配置為,將所述新的字段值的排序結(jié)果與根據(jù)所述第一數(shù)據(jù)結(jié)構(gòu)的所述第一字段的所述值列表合并。3.根據(jù)權(quán)利要求1所述的列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng),其中, 所述數(shù)據(jù)庫管理單元包括繼承控制單元,所述繼承控制單元基于繼承列定義來控制所述數(shù)據(jù)結(jié)構(gòu)生成單元,所述繼承列定義針對所述第二表格式數(shù)據(jù)的記錄的每個(gè)字段,定義是否通過使用根據(jù)所述第一表格式數(shù)據(jù)的相應(yīng)字段的所述值列表來生成根據(jù)所述字段的所述值列表。4.根據(jù)權(quán)利要求1所述的列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng),其中, 所述數(shù)據(jù)庫管理單元包括用戶能夠參考的繼承列歷史信息單元,并且 所述數(shù)據(jù)結(jié)構(gòu)生成單元被配置為,計(jì)算在根據(jù)所述第二數(shù)據(jù)結(jié)構(gòu)的所述第一字段的所述值列表與根據(jù)所述第一數(shù)據(jù)結(jié)構(gòu)的所述第一字段的所述值列表之間的一致度,并且將計(jì)算的一致度存儲(chǔ)在所述繼承列歷史信息單元中。5.根據(jù)權(quán)利要求1所述的列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng),其中, 所述數(shù)據(jù)庫管理單元包括用戶能夠參考的一致率信息單元以及一致率檢測單元,所述一致率檢測單元被配置為從除了所述第一數(shù)據(jù)結(jié)構(gòu)以外的表格式數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)檢測下述字段并且將檢測結(jié)果存儲(chǔ)在所述一致率信息單元中:在該字段中,與除了所述第二數(shù)據(jù)結(jié)構(gòu)的所述第一字段以外的字段的字段值的一致率不低于閾值。6.根據(jù)權(quán)利要求1所述的列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng),其中, 所述數(shù)據(jù)結(jié)構(gòu)生成單元被配置為使得如果根據(jù)所述第一數(shù)據(jù)結(jié)構(gòu)的所述第一字段的所述值列表是根據(jù)具有在所述第二表格式數(shù)據(jù)的記錄的所述第一字段中存在的所有字段值的主表的值列表,則所述數(shù)據(jù)結(jié)構(gòu)生成單元使用根據(jù)所述第一數(shù)據(jù)結(jié)構(gòu)的所述第一字段的所述值列表本身,作為根據(jù)所述第二數(shù)據(jù)結(jié)構(gòu)的所述第一字段的所述值列表。7.根據(jù)權(quán)利要求1所述的列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng),其中, 所述數(shù)據(jù)結(jié)構(gòu)生成單元被配置為從根據(jù)所述第二數(shù)據(jù)結(jié)構(gòu)的所述第一字段的所述值列表以及所述第二表格式數(shù)據(jù)的所示第一字段的所述字段值,生成根據(jù)所述第二數(shù)據(jù)結(jié)構(gòu)的所述第一字段的所述值編號陣列。8.一種列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng)中的數(shù)據(jù)加載方法,所述列存儲(chǔ)數(shù)據(jù)庫管理系統(tǒng)包括存儲(chǔ)單元以及與所述存儲(chǔ)單元連接的數(shù)據(jù)庫管理單元,所述存儲(chǔ)單元存儲(chǔ)對應(yīng)于表格式數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),所述表格式數(shù)據(jù)被表達(dá)為包括與每個(gè)字段相關(guān)的字段值的記錄的陣列,所述數(shù)據(jù)結(jié)構(gòu)針對每個(gè)字段包括值列表和值編號陣列,所述值列表被配置為使得所述字段中的字段值與唯一指定所述字段值的字段值編號相對應(yīng)地被存儲(chǔ),所述值編號陣列被配置為使得以記錄順序指定所述字段值編號的信息被存儲(chǔ);所述方法包括: 通過所述存儲(chǔ)單元,存儲(chǔ)第一數(shù)據(jù)結(jié)構(gòu),所述第一數(shù)據(jù)結(jié)構(gòu)對應(yīng)于第一表格式數(shù)據(jù),并且包括根據(jù)第一字段的所述值列表以及所述值編號陣列; 通過所述數(shù)據(jù)庫管理單元,從所輸入的第二表格式數(shù)據(jù)生成用于存儲(chǔ)在所述存儲(chǔ)單元中的第二數(shù)據(jù)結(jié)構(gòu),其中, 在生成所述第二數(shù)據(jù)結(jié)構(gòu)中,所述數(shù)據(jù)庫管理單元利用根據(jù)所述第一數(shù)據(jù)結(jié)構(gòu)的所述第一字段的所述值列表,來生成根據(jù)所述第二數(shù)據(jù)結(jié)構(gòu)的第一字段的所述值列表。9.根據(jù)權(quán)利要求8所述的數(shù)據(jù)加載方法,其中, 所述數(shù)據(jù)庫管理單元從所述第二表格式數(shù)據(jù)的記錄的所述第一字段中提取在所述第一數(shù)據(jù)結(jié)構(gòu)的所述第一字段中不存在的新的字段值,并且 為了生成根據(jù)所述第二數(shù)據(jù)結(jié)構(gòu)的所述第一字段的所述值列表,所述數(shù)據(jù)庫管理單元將所述新的字段值的排序結(jié)果與根據(jù)所述第一數(shù)據(jù)結(jié)構(gòu)的所述第一字段的所述值列表合并。10.根據(jù)權(quán)利要求8所述的數(shù)據(jù)加載方法,其中, 所述數(shù)據(jù)庫管理單元基于繼承列定義來生成所述第二數(shù)據(jù)結(jié)構(gòu),所述繼承列定義針對所述第二表格式數(shù)據(jù)的記錄的每個(gè)字段,定義是否通過使用根據(jù)所述第一表格式數(shù)據(jù)的相應(yīng)字段的所述值列表來生成根據(jù)所述字段的所述值列表。11.根據(jù)權(quán)利要求8所述的數(shù)據(jù)加載方法,其中, 所述數(shù)據(jù)庫管理單元計(jì)算在根據(jù)所述第二數(shù)據(jù)結(jié)構(gòu)的所述第一字段的所述值列表與根據(jù)所述第一數(shù)據(jù)結(jié)構(gòu)的所述第一字段的所述值列表之間的一致度。12.根據(jù)權(quán)利要求8所述的數(shù)據(jù)加載方法,其中, 所述數(shù)據(jù)庫管理單元從除了所述第一數(shù)據(jù)結(jié)構(gòu)以外的表格式數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)檢測下述字段:在該字段中,與除了所述第二數(shù)據(jù)結(jié)構(gòu)的所述第一字段以外的字段的字段值的一致率不低于閾值。13.根據(jù)權(quán)利要求8所述的數(shù)據(jù)加載方法,其中, 如果根據(jù)所述第一數(shù)據(jù)結(jié)構(gòu)的所述第一字段的所述值列表是根據(jù)具有在所述第二表格式數(shù)據(jù)的記錄的所述第一字段中存在的所有字段值的主表的值列表,則所述數(shù)據(jù)庫管理單元使用根據(jù)所述第一數(shù)據(jù)結(jié)構(gòu)的所述第一字段的所述值列表本身,作為根據(jù)所述第二數(shù)據(jù)結(jié)構(gòu)的所述第一字段的所述值列表。14.根據(jù)權(quán)利要求8所述的數(shù)據(jù)加載方法,其中, 所述數(shù)據(jù)庫管理單元從根據(jù)所述第二數(shù)據(jù)結(jié)構(gòu)的所述第一字段的所述值列表以及所述第二表格式數(shù)據(jù)的所示第一字段的所述字段值,生成根據(jù)所述第二數(shù)據(jù)結(jié)構(gòu)的所述第一字段的所述值編號陣列。15.—種存儲(chǔ)包括指令的程序的非瞬時(shí)計(jì)算機(jī)可讀介質(zhì),計(jì)算機(jī)構(gòu)成列存儲(chǔ)數(shù)據(jù)管理系統(tǒng)中的數(shù)據(jù)庫管理單元,所述列存儲(chǔ)數(shù)據(jù)管理系統(tǒng)包括存儲(chǔ)單元以及與所述存儲(chǔ)單元連接的所述數(shù)據(jù)庫管理單元,所述存儲(chǔ)單元存儲(chǔ)對應(yīng)于表格式數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),所述表格式數(shù)據(jù)被表達(dá)為包括與每個(gè)字段相關(guān)的字段值的記錄的陣列,所述數(shù)據(jù)結(jié)構(gòu)針對每個(gè)字段包括值列表和值編號陣列,所述值列表被配置為使得所述字段中的字段值與唯一指定所述字段值的字段值編號相對應(yīng)地被存儲(chǔ),所述值編號陣列被配置為使得以記錄順序指定所述字段值編號的信息被存儲(chǔ),所述存儲(chǔ)單元存儲(chǔ)第一數(shù)據(jù)結(jié)構(gòu),所述第一數(shù)據(jù)結(jié)構(gòu)對應(yīng)于第一表格式數(shù)據(jù),并且包括根據(jù)第一字段的所述值列表以及所述值編號陣列,所述指令用于使得所述計(jì)算機(jī)用作: 數(shù)據(jù)結(jié)構(gòu)生成單元,所述數(shù)據(jù)結(jié)構(gòu)生成單元從第二表格式數(shù)據(jù)輸入生成用于存儲(chǔ)在所述存儲(chǔ)單元中的第二數(shù)據(jù)結(jié)構(gòu),并且在所述生成中,利用根據(jù)所述第一數(shù)據(jù)結(jié)構(gòu)的所述第一字段的所述值列表來生成根據(jù)所述第二數(shù)據(jù)結(jié)構(gòu)的第一字段的所述值列表。
【文檔編號】G06F17/30GK105989192SQ201610152878
【公開日】2016年10月5日
【申請日】2016年3月17日
【發(fā)明人】淺利俊之
【申請人】日本電氣株式會(huì)社