數(shù)據(jù)倉庫之二 數(shù)據(jù)倉庫設(shè)計--Kimball方法
本文介紹的是數(shù)據(jù)倉庫設(shè)計的Kimball方法蕊爵,即多維模型;關(guān)系模型删铃,即Inmon方法參見(四)
多維數(shù)據(jù)模型
-方體:數(shù)據(jù)匯總耳贬。方體是數(shù)據(jù),方體的維度即各個維表猎唁,方體的值即事實表的度量咒劲;星型圖則是事實表與維表的組織結(jié)構(gòu),與數(shù)據(jù)無關(guān)诫隅。
原語:
立方體定義(事實表):
define cube <cube_name> [<dimension_list>]:<measure_list>維定義(維表):
define dimension <dimension_name> as (<attribute_or_subdimension_list>)
度量
根據(jù)所用的聚集函數(shù)分為三類:
分布的--一個聚集函數(shù)是分布的腐魂,如果它能用如下分布方式進行計算:設(shè)數(shù)據(jù)劃分為n個集合,將函數(shù)用于每個劃分逐纬,得到n個聚集值蛔屹;再將函數(shù)用于前述n個聚集值得到的結(jié)果與將函數(shù)用于整個數(shù)據(jù)集(不劃分)得到的結(jié)果一樣,則該函數(shù)可以用分布方式計算风题。一個度量是分布的判导,如果它可以用分布聚集函數(shù)得到嫉父。如count(),sum()眼刃,min()绕辖,max()都是分布聚集函數(shù)。
代數(shù)的--如avg()擂红,min_N()仪际,max_N(),standard_deviation()都是代數(shù)聚集函數(shù)昵骤。
整體的--如median()树碱,mode(),rank()都是变秦。
多維數(shù)據(jù)庫模式
星型模式成榜;雪花模式;事實星座模式(多個事實表共享維表)
數(shù)據(jù)倉庫設(shè)計
典型的數(shù)據(jù)倉庫設(shè)計過程:
-選取待建模的商務(wù)處理, 例如, 訂單, 發(fā)票, 庫存等.
-選取商務(wù)處理的粒度, 例如蹦玫,單個事務(wù)赎婚、一天的快照等
-選取用于每個事實表記錄的維, 如,時間、商品樱溉、顧客挣输、供應(yīng)商、倉庫福贞、事務(wù)類型和狀態(tài) 等
-選取將安放在事實表中的度量. 典型的度量是可加的數(shù)值量, 如dollars_sold和units_sold
數(shù)據(jù)倉庫設(shè)計步驟
- 概念模型設(shè)計撩嚼;
概念模型最常用的是E-R法(實體-聯(lián)系法,Inmon支持這種方法)挖帘,使用E-R圖作為描述工具完丽。另一種方法是Kimball支持的多維模型。
此步驟主要完成的工作是:(1)界定系統(tǒng)邊界拇舀;(2)確定主要的主題域及其內(nèi)容舰涌。
例如,商場的邊界可以界定為包含銷售子系統(tǒng)你稚、采購子系統(tǒng)、庫存子系統(tǒng)在內(nèi)的集合朱躺。在此基礎(chǔ)上刁赖,確定三個基本主題:顧客、供應(yīng)商长搀、商品宇弛。
- 技術(shù)準備工作;
本階段工作:技術(shù)評估源请,技術(shù)環(huán)境準備枪芒。
成果:技術(shù)評估報告彻况,軟硬件配置方案,系統(tǒng)(軟硬件)總體設(shè)計方案舅踪。
- 邏輯模型設(shè)計纽甘;
數(shù)據(jù)倉庫的邏輯模型描述了數(shù)據(jù)倉庫的主題的邏輯實現(xiàn),即每個主題所對應(yīng)的關(guān)系表的關(guān)系模式的定義抽碌。
本階段主要工作:(1)粒度層次劃分悍赢;(2)數(shù)據(jù)分割策略;(3)記錄系統(tǒng)定義货徙;(4)關(guān)系模式定義左权。
物理模型設(shè)計;
主要工作:(1)確定存儲結(jié)構(gòu)痴颊;(2)確定索引結(jié)構(gòu)赏迟;(3)確定存放位置;(4)確定存儲分配蠢棱。數(shù)據(jù)倉庫生成锌杀;
主要工作:(1)設(shè)計接口;(2)數(shù)據(jù)裝入裳扯。
接口是指將操作性環(huán)境下的數(shù)據(jù)裝載進入數(shù)據(jù)倉庫環(huán)境抛丽,需要在兩個不同環(huán)境的記錄系統(tǒng)之間建立一個接口。
- 數(shù)據(jù)倉庫運行與維護
包括:(1)建立DSS應(yīng)用饰豺;(2)理解需求亿鲜,改善和完善系統(tǒng),維護數(shù)據(jù)倉庫冤吨。
DSS應(yīng)用開發(fā)的步驟:確定所需的數(shù)據(jù)蒿柳、編程抽取數(shù)據(jù)、合并數(shù)據(jù)漩蟆、分析數(shù)據(jù)垒探、回答問題、例行化怠李。
數(shù)據(jù)倉庫環(huán)境--Inmon
數(shù)據(jù)倉庫環(huán)境
數(shù)據(jù)倉庫是一個面向主題的圾叼、集成的、非易失的捺癞、隨時間變化的用來支持管理人員決策的數(shù)據(jù)集合夷蚊。數(shù)據(jù)倉庫包含粒度化的企業(yè)數(shù)據(jù)。在數(shù)據(jù)倉庫的所有特性中髓介,集成是最重要的惕鼓。
數(shù)據(jù)倉庫中數(shù)據(jù)的主要設(shè)計問題:粒度問題,分區(qū)唐础。
分區(qū)
數(shù)據(jù)分區(qū)的標(biāo)準完全由開發(fā)人員來決定箱歧。在數(shù)據(jù)倉庫環(huán)境中矾飞,日期幾乎總是分區(qū)標(biāo)準中的一個必然組成部分⊙叫希可采用的分區(qū)標(biāo)準包括時間洒沦、業(yè)務(wù)范圍、地理位置驼鹅、組織單位等等微谓。
數(shù)據(jù)倉庫中的數(shù)據(jù)組織
簡單堆積結(jié)構(gòu)
輪轉(zhuǎn)綜合數(shù)據(jù)存儲
簡單直接文件
連續(xù)文件
數(shù)據(jù)倉庫的關(guān)鍵字總是復(fù)合關(guān)鍵字,因為:日期幾乎總是關(guān)鍵字的一部分输钩;分區(qū)總是關(guān)鍵字的一部分豺型。
數(shù)據(jù)倉庫環(huán)境主要構(gòu)件
- 操作型源系統(tǒng)
- 數(shù)據(jù)聚集環(huán)節(jié):ETL
- 數(shù)據(jù)展示:數(shù)據(jù)應(yīng)以維度形式進行展示、存儲和訪問买乃;數(shù)據(jù)中心中必須包括詳細的原子數(shù)據(jù)姻氨。
- 數(shù)據(jù)存取工具:所有數(shù)據(jù)存取工具訪問的是數(shù)據(jù)倉庫展示環(huán)節(jié)中的數(shù)據(jù)。
設(shè)計數(shù)據(jù)倉庫--Inmon方法(即關(guān)系模型)
從操作型數(shù)據(jù)開始
數(shù)據(jù)轉(zhuǎn)換難點
數(shù)據(jù)缺乏集成--格式編碼不一致
訪問現(xiàn)有系統(tǒng)數(shù)據(jù)的效率
從操作型環(huán)境到數(shù)據(jù)倉庫有三種裝載工作要做:
裝載檔案數(shù)據(jù)剪验。
裝載操作型系統(tǒng)中的現(xiàn)有數(shù)據(jù)肴焊。
將上次DW刷新以來操作型環(huán)境中發(fā)生的變化(更新)從操作型環(huán)境中裝載到數(shù)據(jù)倉庫中。
前兩者都只需裝載一次功戚,難度不大娶眷。數(shù)據(jù)倉庫刷新時,可采用以下五種技術(shù)減少掃描的操作型數(shù)據(jù)量:
掃描在操作型環(huán)境中被打上時戳的數(shù)據(jù)啸臀。
掃描增量文件届宠。
對事務(wù)處理產(chǎn)生的日志文件或?qū)徲嬑募M行掃描。日志文件與增量文件基本相同乘粒,但日志文件不如增量文件專用于此功能豌注。
修改應(yīng)用程序代碼。不常用灯萍。
將一個“前”映像文件和一個“后”印象文件進行比較轧铁。這種方法很麻煩、復(fù)雜旦棉,耗費資源齿风,因此是下下策。
時基變化
數(shù)據(jù)壓縮
數(shù)據(jù)倉庫與數(shù)據(jù)模型
數(shù)據(jù)倉庫的數(shù)據(jù)模型
數(shù)據(jù)建模分為三個層次:高層建模(稱為實體關(guān)系圖绑洛,或ERD)聂宾,中間層建模(稱為數(shù)據(jù)項集或DIS),底層建模(稱為物理模型)诊笤。
數(shù)據(jù)模型與迭代式開發(fā)
數(shù)據(jù)模型在迭代開發(fā)期間所起的作用:每一次迭代開發(fā)都基于同一個數(shù)據(jù)模型,各次開發(fā)工作的結(jié)果將產(chǎn)生一個內(nèi)聚的巾陕、高度和諧的整體讨跟。
相關(guān)物理設(shè)計技術(shù)
數(shù)據(jù)模型的輸出是大量的表纪他,每個表包含關(guān)鍵字和屬性,其中每個表只包含少量數(shù)據(jù)晾匠。通常將這些表物理合并茶袒,使得I/O代價最小化。需要物理設(shè)計人員解決的是采用什么樣的策略來合并這些表凉馆。
另一種能夠節(jié)省I/O的設(shè)計技術(shù)是創(chuàng)建數(shù)據(jù)數(shù)組薪寓。
引入冗余數(shù)據(jù)。
當(dāng)訪問率相差懸殊時澜共,對數(shù)據(jù)做進一步的分離向叉。
引入導(dǎo)出數(shù)據(jù)(即已計算出的)以減少所需I/O。
最具創(chuàng)新性的技術(shù)之一是創(chuàng)造性索引或創(chuàng)造性概要文件嗦董。
參照完整性管理母谎。
元數(shù)據(jù)
元數(shù)據(jù),即描述數(shù)據(jù)的數(shù)據(jù)京革,與指向數(shù)據(jù)倉庫內(nèi)容的索引相似奇唤,處于數(shù)據(jù)倉庫的上層,并且記錄數(shù)據(jù)倉庫中對象的位置匹摇。
數(shù)據(jù)周期
數(shù)據(jù)轉(zhuǎn)換
早期咬扇,程序員需要自己編寫程序?qū)崿F(xiàn)集成,后來出現(xiàn)了數(shù)據(jù)集成自動化技術(shù)廊勃,即ETL軟件(抽取懈贺、轉(zhuǎn)換、裝載)供搀。
星型連接
在數(shù)據(jù)倉庫技術(shù)中經(jīng)常提到的一種不同于數(shù)據(jù)庫設(shè)計方法是多維方法隅居。包括星型連接、事實表和維。
需求和Zachman框架
數(shù)據(jù)倉庫不是由處理需求建造成的窄刘,而是根據(jù)企業(yè)需求而設(shè)計的耻卡。聚集和組織企業(yè)需求的最好的辦法之一是Zachman框架。Zachman框架一旦建立涕蚤,企業(yè)的信息需求就可以從中提取出來。根據(jù)提取的需求的诵,就可以建立企業(yè)數(shù)據(jù)模型万栅。然后根據(jù)企業(yè)數(shù)據(jù)模型,就能以迭代的方式建立數(shù)據(jù)倉庫西疤。
數(shù)據(jù)倉庫的概念建模與概念設(shè)計-Golfarelli
數(shù)據(jù)倉庫設(shè)計包括3個主要階段:概念設(shè)計烦粒、邏輯設(shè)計、物理設(shè)計,其中扰她,概念模型即為星型圖或雪花模型兽掰;而邏輯設(shè)計階段則是對星型圖的細化。徒役。3種不同的設(shè)計場景:數(shù)據(jù)驅(qū)動的場景孽尽、需求驅(qū)動的場景、混合場景忧勿。在數(shù)據(jù)集市設(shè)計中可以使用3種基本的系統(tǒng)方法:數(shù)據(jù)驅(qū)動的方法杉女、需求驅(qū)動的方法和混合方法。它們的區(qū)別在于源數(shù)據(jù)庫分析和終端用戶需求分析階段所占的比重鸳吸。
概念建模
DFM維度事實模型
數(shù)據(jù)倉庫的概念設(shè)計
Oracle Warehouse Builder(OWB)創(chuàng)建數(shù)據(jù)倉庫
Oracle的OWB是目前最好的三大ETL產(chǎn)品之一熏挎。OWB不但可以可以完成數(shù)據(jù)的抽取、轉(zhuǎn)換和加載层释,還能幫助用戶在Oracle數(shù)據(jù)庫中創(chuàng)建ROLAP(Relational Online Analysis Process)和MOLAP(Multidimensional Online Analysis Process)數(shù)據(jù)倉庫對象婆瓜,數(shù)據(jù)質(zhì)量管理,商務(wù)智能定義等贡羔。
OWB數(shù)據(jù)處理流程
(1)進入“Design Center”
新建“控制中心(Control Center)”
新建“項目(Project)”
定義“數(shù)據(jù)源模塊(Module)”
定義“目標(biāo)數(shù)據(jù)模塊(Module)”
設(shè)計“映射(Mapping)”
設(shè)計“進程流(Process Flow)”確定映射運行的先后順序
設(shè)計“計劃(Schedule)”
“配置(Configure)”映射和工作流廉白,添加不同映射和工作流的“計劃”,部署后會形成“工作(Job)”
(2)在Design Center中創(chuàng)建Control Center乖寒,并且將其配置為缺省的Control Center
(3)打開“控制中心管理器(Control Center Manager)”
確定數(shù)據(jù)源和目標(biāo)數(shù)據(jù)庫的實際物理配置猴蹂,“注冊(Register)”“位置(Location)”為部署和執(zhí)行打下基礎(chǔ)
“部署(Deploy)”某個項目、位置楣嘁、模塊下所有對象磅轻,這些操作完成了如下工作:DDL、DML逐虚、Control File聋溜、Workflow代碼、Job生成代碼或者ABAP等代碼在目標(biāo)用戶所在數(shù)據(jù)庫上的生成叭爱,DDL語句的部署同時完成了對象在目標(biāo)用戶所在數(shù)據(jù)庫上的生成撮躁,DML、Control File买雾、Workflow把曼、Job需要下一步的執(zhí)行才可以真正完成
“執(zhí)行(Execute)”工作,實現(xiàn)周期ETL