一種Data Vault模型數據倉庫自動構建的方法及裝置的制造方法
【技術領域】
[0001] 本發明設及一種數據倉庫的構建領域,具體設及一種化ta Vault模型數據倉庫自 動構建的方法及裝置。
【背景技術】
[0002] Data Vault是一種構建數據倉庫的建模方法,無論數據在當時業務層面的對與 錯,該種建模方法保留所有的歷史數據。用該種建模方法構建的數據倉庫稱為企業級的數 據倉庫,它包括了從企業各個數據庫集成過來的所有的歷史數據,它位于業務系統和數據 集市之間,也是數據集市的唯一數據來源。Data Vault是面向細節,可追蹤歷史的,它是一 組有連接關系的規范化的表的集合,該些表可W支持一個或多個業務功能。Data Vault只 按照業務數據的原樣保存數據,不做任何解釋、過濾、清洗、轉換。Data Vault模型的主要組 成部分包括了中屯、表、鏈接表和附屬表。中屯、表相當于業務實體表,包含業務實體的主鍵即 業務主鍵,鏈接表是鏈接業務實體的表,其中包含了中屯、表中的業務主鍵,用于將中屯、表鏈 接起來,代表了業務主鍵的業務關系。中屯、表和鏈接表是用于呈現業務實體和業務實體之 間邏輯關系的表,其包含的字段只有代理鍵和時間戳等信息,附屬表則是依附于中屯、表或 者鏈接表,用于完成對業務實體或業務實體之間關系的信息的補充。企業數據倉庫構建人 員需要在源數據庫中尋找業務實體并將業務主鍵和業務主鍵之間的關系按照化ta Vault 的建模規范集合到中屯、表、鏈接表和附屬表當中。
[0003] Data Vault模型所建立的數據倉庫與構建普通的數據倉庫最大的不同在于構建 的過程。原有的數據倉庫直接構成數據集市,是面向主題的,需要在該個層面上給業務決 策人展現業務報表,于是它的數據倉庫構建過程需要按照每一次不同的主題來進行數據抽 取、抓換和加載,數據抽取、轉換和加載=項過程都會因主題的不同而有所變化。而企業數 據倉庫是面向歷史的,它構建的數據倉庫是一種包含了所有歷史信息,包括錯誤的和重復 的信息的數據倉庫,它可W再經過數據處理來獲得各個方面各個層面的報表,它不是直接 面向業務決策人員的,而它的內容非常靈活,而且不再依賴于源數據庫。
[0004] 但是現如今的技術人員仍按照構建普通數據倉庫的方式構建企業級數據倉庫,即 目前的構建普通數據倉庫的技術包括了先構建邏輯上的中屯、表、鏈接表和附屬表,再根據 邏輯構建的表與表之間的關系,從源數據庫中逐個抽取表的內容并建表。無法批量式構建 企業數據倉庫,費時費力。
[0005] 鑒于上述缺陷,本發明創作者經過長時間的研究和試驗,最終獲得了本發明。
【發明內容】
[0006] 本發明的目的在于提供一種化ta Vault模型數據倉庫自動構建的方法及裝置,用 W克服上述技術缺陷。
[0007] 為實現上述目的,本發明采用的技術方案在于:
[0008] -方面提供一種化ta Vault模型數據倉庫自動構建裝置,該構建裝置包括表查詢 裝置和建表裝置,
[0009] 所述表查詢裝置,用于接收用戶輸入的中屯、字段組,所述中屯、字段組包括多個中 屯、字段,并對所述中屯、字段組進行處理后,輸出總體信息表和中屯、字段關聯信息表;所述總 體信息表記錄有所述中屯、字段組中每一個中屯、字段W及該中屯、字段的主表和附表在源數 據庫表中的表號信息,所述中屯、字段關聯信息表記錄有所述中屯、字段組中所有的中屯、字段 相互之間的邏輯關系;
[0010] 所述建表裝置,用于接收所述總體信息表和中屯、字段關聯信息表,通過分析處理 所述中屯、字段關聯信息表得到中間表,再根據所述中間表得到中屯、字段組合信息表后,再 根據所述總體信息表自動創建中屯、表,根據所述中屯、字段組合信息表自動創建鏈接表,根 據源數據庫表和所述中屯、表自動創建附屬表,完成企業級數據倉庫的構建。
[0011] 進一步,所述表查詢裝置包括第一初始化單元、捜索單元、判斷單元、寫入單元、匹 配單元和記錄單元;
[0012] 所述第一初始化單元,用于對所述中屯、字段組進行初始化,并形成初始化中屯、字 段關聯信息表;
[0013] 所述捜索單元,用于在源數據庫表中尋找具有被捜索中屯、字段的表;
[0014] 所述判斷單元,用于判斷所述被捜索中屯、字段在具有所述被捜索中屯、字段的表 中是否為主鍵,如果是主鍵,則將具有所述被捜索中屯、字段的表作為所述被捜索中屯、字段 的主表;如果不是主鍵,則將具有所述被捜索中屯、字段的表作為所述被捜索中屯、字段的附 表;
[0015] 所述寫入單元,用于將所述被捜索中屯、字段和具有所述被捜索中屯、字段的主表和 附表的信息寫入所述總體信息表中;
[0016] 所述匹配單元,用于查詢所述被捜索中屯、字段的附表,將用戶輸入的中屯、字段組 中其他中屯、字段與所述被捜索中屯、字段的附表進行匹配查詢,若所述被捜索中屯、字段的附 表中有其他中屯、字段,則將其他中屯、字段設為所述被捜索中屯、字段的主動關聯中屯、字段;
[0017] 所述記錄單元,用于將所述初始化字段關聯信息表中的所述被捜索中屯、字段所對 應的主動關聯中屯、字段記錄行置為一位二進制數1
[0018] 進一步,所述建表裝置包括第一處理單元、第二初始化單元、第二處理單元和建表 單元;
[0019] 所述第一處理單元,用于讀取所述中屯、字段關聯信息表中的中屯、字段和中屯、字段 相互之間的邏輯關系后,經過分析處理后得到中間表;
[0020] 所述第二初始化單元,用于對所述中間表中的中屯、字段進行初始化,并形成初始 化中屯、字段組合信息表;
[0021] 所述第二處理單元,用于讀取所述中間表,經過分析處理后得到中屯、字段組合信 息表;
[0022] 建表單元,用于根據所述中屯、字段組的中屯、字段的主表自動創建中屯、表,根據所 述中屯、字段組合信息表自動創建鏈接表,根據源數據庫表和中屯、表自動創建附屬表。
[0023] 進一步,所述第一處理單元分析處理過程具體為:設所述中屯、字段關聯信息表中 的中屯、字段有n個中屯、字段,對所述中屯、字段關聯信息表的元素a(i,j)和a(j,i)對應 的二進制數做與運算,將得到的新的二進制數代替所述中屯、字段關聯信息表的元素a(i,j) 和a(j,i)對應的二進制數后得到中間表,其中,i,j《n,元素a(i,j)代表中屯、字段關 聯信息表的第i行第j列,元素a(j,i)代表中屯、字段關聯信息表的第j行第i列。
[0024]進一步,所述第二處理單元的分析處理過程具體為:
[00巧]設中間表中的中屯、字段為Ai,1《i《n,根據中間表判斷中屯、字段Ai行對應Aj, 其中j>i,列的二進制數是否為1,若是,則將中屯、字段Ai和Aj歸為一組即{Ai,Aj};在 所述初始化中屯、字段組合信息表中插入一行記錄,記錄中屯、字段Ai和Aj為1,其他字段為 0 ;
[002引當{AU已經為歸為一組中屯、字段組后,其中,{AU中的i為1到n之間的若干個 數,根據中間表判斷中屯、字段Ak化=!U行對應Ai列的二進制數是否全部都為1,若是, 則將中屯、字段Ak化=! ^和41歸為一組中屯、字段組,其中k= !i代表k聲i;在所述初 始化中心子段組合f目息表中插入一釘新記錄{Ai,Ak}化=!i),記錄中心子段Ai和Ak化 =!i)為1,其他字段為0,并將組合{Ai}對應記錄刪除,最后得到中屯、字段組合信息表。
[0027] 又一方面提供一種化taVault模型數據倉庫自動構建方法,該構建方法包括:
[0028] 表查詢步驟;一表查詢裝置接收用戶輸入的中屯、字段組,所述中屯、字段組包括多 個中屯、字段,并對所述中屯、字段組進行處理后,輸出總體信息表和中屯、字段關聯信息表。所 述總體信息表記錄有所述中屯、字段組中每一個中屯、字段W及該中屯、字段的主表和附表在 源數據庫表中的表號信息,所述中屯、字段關聯信息表記錄有所述中屯、字段組中所有的中屯、 字段相互之間的邏輯關系;
[0029] 建表步驟;一建表裝置接收所述總體信息表和中屯、字段關聯信息表,通過分析處 理所述中屯、字段關聯信息表得到中間表,再根據所述中間表得到中屯、字段組合信息表后, 再根據所述總體信息表自動創建中屯、表,根據所述中屯、字段組合信息表自動創建鏈接表, 根據源數據庫表和所述中屯、表自動創建附屬表,完成企業級數據倉庫的構建。
[0030] 進一步,所述表查詢步驟包括:
[0031] 初始化步驟;一第一初始化單元對所述中屯、字段組進行初始化,并形成初始化中 屯、字段關聯信息表;
[0032] 捜索步驟;一捜索單元在源數據庫表中尋找具有被捜索中屯、字段的表;