數據倉庫構建步驟

概述:
1. 數據倉庫是面向主題的、集成的、不可更新的、隨時間的變化而不斷變化的這些特點決定了數據倉庫的系統設計不能採用同開發傳統的OLTP數據庫一樣的設計方法
2. 需求不明確
 數據倉庫系統的原始需求不明確
 需求不斷變化與增加
 開發者最初不能確切瞭解到用戶明確詳細的需求,不能準確的預見未來的需求
 用戶所能提供的無非是需求的大的方向以及部分需求
==>採用原型法來進行數據倉庫的開發是比較合適的 
3. 需求不明確
不等於傳統意義上的原型法,即數據倉庫的設計是數據驅動的,即在原有的數據庫系統上開發,有效的使用原有系統
數據倉庫系統開發是一個經過不斷循環、反饋而使系統不斷增長與完善的過程,這是區別於系統生命週期法的主要特點
4. 設計步驟:
 概念模型設計;
 技術準備工作;
 邏輯模型設計;
 物理模型設計;
 數據倉庫生成;
 數據倉庫運行與維護。
第一步:概念模型設計
        進行概念模型設計所要完成的工作是:
<1>界定系統邊界
<2>確定主要的主題域及其內容
成果:在原有的數據庫的基礎上建立了一個較爲穩固的概念模型。
 數據驅動:
數據倉庫中的數據即是對原有數據庫系統中的數據進行集成和重組而形成的數據集合,
=>數據倉庫的概念模型設計,首先要對原有數據庫系統加以分析理解,看在原有的數據庫系統中“有什麼”、“怎樣組織的”和“如何分佈的”等,然後再來考慮應當如何建立數據倉庫系統的概念模型。
A、 一方面,通過原有的數據庫的設計文檔以及在數據字典中的數據庫關係模式,可以對企業現有的數據庫中的內容有一個完整而清晰的認識
B、 另一方面,數據倉庫的概念模型是面向企業全局建立的,它爲集成來自各個面向應用的數據庫的數據提供了統一的概念視圖。
注:概念模型的設計是在較高的抽象層次上的設計,因此建立概念模型時不用考慮具體技術條件的限制。
1. 界定系統的邊界
    數據倉庫是面向決策分析的數據庫,我們無法在數據倉庫設計的最初就得到詳細而明確的需求,但是一些基本的方向性的需求還是擺在了設計人員的面前:
 要做的決策類型有哪些?
 決策者感興趣的是什麼問題?
 這些問題需要什麼樣的信息?
 要得到這些信息需要包含原有數據庫系統的哪些部分的數據?
=>劃定一個當前的大致的系統邊界,集中精力進行最需要的部分的開發。
2. 確定主要的主題域
   要確定系統所包含的主題域,然後對每個主題域的內容進行較明確的描述,描述的內容包括:
 主題域的公共碼鍵;
 主題域之間的聯繫;
 充分代表主題的屬性組。
第二步:技術準備工作
該步包括:技術評估,技術環境準備。
成果:
技術評估報告、軟硬件配置方案、系統(軟、硬件)總體設計方案。
1. 技術評估
    進行技術評估,就是確定數據倉庫的各項性能指標。一般情況下,需要在這一步裏確定的性能指標包括:
 管理大數據量數據的能力;
 進行靈活數據存取的能力;
 根據數據模型重組數據的能力;
 透明的數據發送和接收能力;
 週期性成批裝載數據的能力;
 可設定完成時間的作業管理能力。
2. 技術環境準備
    一旦數據倉庫的體系化結構的模型大體建好後,下一步的工作就是確定我們應該怎樣來裝配這個體系化結構模型,主要是確定對軟硬件配置的要求;主要考慮相關的問題:
 預期在數據倉庫上分析處理的數據量有多大?
 如何減少或減輕競爭性存取程序的衝突?
 數據倉庫的數據量有多大?
 進出數據倉庫的數據通信量有多大等。
        根據這些考慮,我們就可以確定各項軟硬件的配備要求,並且在這一步工作結束時各項技術準備工作應已就緒,可以裝載數據了。這些配備有:
 直接存取設備(DASD);
 網絡;
 管理直接存取設備(DASD)的操作系統;
 進出數據倉庫的界面(主要是數據查詢和分析工具);
        管理數據倉庫的軟件,目前即選用數據庫管理系統及有關的選件,購買的DBMS產品不能滿足管理數據倉庫需要的,還應考慮自己或軟件集成商開發有關模塊等等。
第三步:邏輯模型設計
    在這一步裏進行的工作主要有:
 分析主題域,確定當前要裝載的主題;
 確定粒度層次劃分;
 確定數據分割策略;
 關係模式定義;
 記錄系統定義
成果:對每個當前要裝載的主題的邏輯實現進行定義,並將相關內容記錄在數據倉庫的元數據中,包括:
 適當的粒度劃分;
 合理的數據分割策略;
 適當的表劃分;
 定義合適的數據來源等。
1. 分析主題域
   逐步求精的過程,一次一個主題或多個主題逐步完成
A、 對概念模型設計步驟中確定的幾個基本主題域進行分析,並選擇首先要實施的主題域
注:選擇第一個主題域所要考慮的是它要足夠大,使得該主題域能建設成爲一個可應用的系統;還要足夠小,以便於開發和較快地實施。如果所選擇的主題域很大並且很複雜,我們甚至可以針對它的一個有意義的子集來進行開發。在每一次的反饋過程中,都要進行主題域的分析。
2. 粒度層次劃分
    數據倉庫邏輯設計中要解決的一個重要問題是決定數據倉庫的粒度劃分層次,粒度層次劃分適當與否直接影響到數據倉庫中的數據量和所適合的查詢類型。確定數據倉庫的粒度劃分,可以使用在粒度劃分一節中介紹的方法,通過估算數據行數和所需的DASD數,來確定是採用單一粒度還是多重粒度,以及粒度劃分的層次。
3. 確定數據分割策略
在這一步裏,要選擇適當的數據分割的標準,一般要考慮以下幾方面因素:數據量(而非記錄行數)、數據分析處理的實際情況、簡單易行以及粒度劃分策略等。數據量的大小是決定是否進行數據分割和如何分割的主要因素;數據分析處理的要求是選擇數據分割標準的一個主要依據,因爲數據分割是跟數據分析處理的對象緊密聯繫的;我們還要考慮到所選擇的數據分割標準應是自然的、易於實施的:同時也要考慮數據分割的標準與粒度劃分層次是適應的。
4. 關係模式定義
    數據倉庫的每個主題都是由多個表來實現的,這些表之間依靠主題的公共碼鍵聯繫在一起,形成一個完整的主題。在概念模型設計時,我們就確定了數據倉庫的基本主題,並對每個主題的公共碼鍵、基本內容等做了描述在這一步裏,我們將要對選定的當前實施的主題進行模式劃分,形成多個表,並確定各個表的關係模式。
第四步: 物理模型設計
    這一步所做的工作是確定數據的存儲結構,確定索引策略,確定數據存放位置,確定存儲分配。
    確定數據倉庫實現的物理模型,要求設計人員必須做到以下幾方面:
 要全面瞭解所選用的數據庫管理系統,特別是存儲結構和存取方法。
 瞭解數據環境、數據的使用頻度、使用方式、數據規模以及響應時間要求等,這些是對時間和空間效率進行平衡和優化的重要依據。
 瞭解外部存儲設備的特性,如分塊原則,塊大小的規定,設備的I/O特性等。
1. 確定數據的存儲結構
一個數據庫管理系統往往都提供多種存儲結構供設計人員選用,不同的存儲結構有不同的實現方式,各有各的適用範圍和優缺點,設計人員在選擇合適的存儲結構時應該權衡三個方面的主要因素:存取時間、存儲空間利用率和維護代價。
2. 確定索引策略
    數據倉庫的數據量很大,因而需要對數據的存取路徑進行仔細的設計和選擇。由於數據倉庫的數據都是不常更新的,因而可以設計多種多樣的索引結構來提高數據存取效率。
在數據倉庫中,設計人員可以考慮對各個數據存儲建立專用的、複雜的索引,以獲得最高的存取效率,因爲在數據倉庫中的數據是不常更新的,也就是說每個數據存儲是穩定的,因而雖然建立專用的、複雜的索引有一定的代價,但一旦建立就幾乎不需維護索引的代價。
3. 確定數據存放位置
    我們說過,同一個主題的數據並不要求存放在相同的介質上。在物理設計時,我們常常要按數據的重要程度、使用頻率以及對響應時間的要求進行分類,並將不同類的數據分別存儲在不同的存儲設備中。重要程度高、經常存取並對響應時間要求高的數據就存放在高速存儲設備上,如硬盤;存取頻率低或對存取響應時間要求低的數據則可以放在低速存儲設備上,如磁盤或磁帶。
數據存放位置的確定還要考慮到其它一些方法,如:決定是否進行合併表;是否對一些經常性的應用建立數據序列;對常用的、不常修改的表或屬性是否冗餘存儲。如果採用了這些技術,就要記入元數據。
4. 確定存儲分配
    許多數據庫管理系統提供了一些存儲分配的參數供設計者進行物理優化處理,如:塊的尺寸、緩衝區的大小和個數等等,它們都要在物理設計時確定。這同創建數據庫系統時的考慮是一樣的。
第五步:數據倉庫的生成
    在這一步裏所要做的工作是接口編程,數據裝入。
這一步工作的成果是,數據已經裝入到數據倉庫中,可以在其上建立數據倉庫的應用,即DSS應用。
1. 設計接口
    將操作型環境下的數據裝載進入數據倉庫環境,需要在兩個不同環境的記錄系統之間建立一個接口。乍一看,建立和設計這個接口,似乎只要編制一個抽取程序就可以了,事實上,在這一階段的工作中,的確對數據進行了抽取,但抽取並不是全部的工作,這一接口還應具有以下的功能:
 從面向應用和操作的環境生成完整的數據;
 數據的基於時間的轉換;
 數據的凝聚;
 對現有記錄系統的有效掃描,以便以後進行追加。
    當然,考慮這些因素的同時,還要考慮到物理設計的一些因素和技術條件限制,根據這些內容,嚴格地制定規格說明,然後根據規格說明,進行接口編程。從操作型環境到數據倉庫環境的數據接口編程的過程和一般的編程過程並無區別,它也包括僞碼開發、編碼、編譯、檢錯、測試等步驟。
在接口編程中,要注意:
 保持高效性,這也是一般的編程所要求的;
 要保存完整的文檔記錄;
 要靈活,易於改動;
 要能完整、準確地完成從操作型環境到數據倉庫環境的數據抽取、轉換與集成。
2. 數據裝入
在這一步裏所進行的就是運行接口程序,將數據裝入到數據倉庫中。主要的工作是:
 確定數據裝入的次序;
 清除無效或錯誤數據;
 數據“老化” ;
 數據粒度管理;
 數據刷新等。
最初只使用一部分數據來生成第一個主題域,使得設計人員能夠輕易且迅速地對已做工作進行調整,而且能夠儘早地提交到下一步驟,即數據倉庫的使用和維護。這樣既可以在經濟上最快地得到回報,又能夠通過最終用戶的使用、儘早發現一些問題並提出新的需求,然後反饋給設計人員,設計人員繼續對系統改進、擴展。
第六步:數據倉庫的使用和維護
    在這一步中所要做的工作有建立DSS應用,即使用數據倉庫理解需求,調整和完善系統,維護數據倉庫。
    建立企業的體系化環境,不僅包括建立起操作型和分析型的數據環境,還應包括在這一數據環境中建立起企業的各種應用。數據倉庫裝入數據之後,下一步工作是:一方面,使用數據倉庫中的數據服務於決策分析的目的,也就是在數據倉庫中建立起DSS應用;另一方面,根據用戶使用情況和反饋來的新的需求,開發人員進一步完善系統,並管理數據倉庫的一些日常活動,如刷新數據倉庫的當前詳細數據、將過時的數據轉化成歷史數據、清除不再使用的數據、調整粒度級別等。我們把這一步驟稱爲數據倉庫的使用與維護。
1. 建立DSS應用
    使用數據倉庫,即開發DSS應用,與在操作型環境中的應用開發有着本質區別,開發DSS應用不同於聯機事務處理應用開發的顯著特點在於:
 DSS應用開發是從數據出發的;
 DSS應用的需求不能在開發初期明確瞭解;
 DSS應用開發是一個不斷循環的過程,是啓發式的開發。
DSS應用主要可分爲兩類:例行分析處理和啓發式分析處理。例行分析處理是指那些重複進行的分析處理,它通常是屬於部門級的應用,如部門統計分析,報表分析等等;而個人級的分析應用經常是隨機性很大的,企業經營者受到某種信息啓發而進行的一些即席的分析處理,所以我們稱之爲啓發式的分析處理。
    DSS應用開發的大致步驟如下:
    步驟l——確定所需的數據。爲滿足DSS應用的要求,我們必須從數據倉庫中確定一個可能用到的數據範圍。這是一個試探的過程。
    步驟2——編程抽取數據。根據上面得到的數據範圍,編寫一個抽取程序來獲得這些數據。爲適應分析需求多變的特點,要求所編寫的抽取程序應該通用,易於修改。
    步驟3——合併數據。如果有多個數據抽取源,要將抽取來的數據進行合併、提煉,使數據符合分析處理的要求。
    步驟4——分析數據。在上步準備好的數據基礎上進行分析處理,並看所得的結果是否滿足了原始的要求,如果不能滿足,則返回步驟1,開始新的一次循環,否則就準備最終分析結果報告。
    步驟5——回答問題。生成最終分析結果報告。—般情況下,最終的分析結果報告是在許多次的循環後得到的,因爲一次分析處理很少是在一次循環後就完成的。
    步驟6——例行化、一次分析處理的最後、我們要決定是否將在上面已經建立的分析處理例行化。如果建立的分析處理是重複進行的部門級的DSS應用,那麼最好是將它例行化,這樣在進行下一次同樣的分析處理時,不必再重複上述六步的循環過程。而且,不斷地積累這種例行處理,形成一個集合,我們就可以通過組合這些已有的處理來生成新的一個較大的複雜處理,或完成一個複雜處理的一部分。
2. 理解需求,改善和完善系統,維護數據倉庫
    數據倉庫的開發是逐步完善的原型法的開發方法,它要求:要儘快地讓系統運行起來,儘早產生效益;要在系統運行或使用中,不斷地理解需求,改善系統;不斷地考慮新的需求,完善系統。
維護數據倉庫的工作主要是管理日常數據裝入的工作,包括刷新數據倉庫的當前詳細數據,將過時的數據轉化成歷史數據.清除不再使用的數據,管理元數據,等等;另外,如何利用接口定期從操作型環境向數據倉庫追加數據,確定數據倉庫的數據刷新頻率,等等。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章