天天看點

資料倉庫建構步驟

資料倉庫建構步驟

資料倉庫是面向主題的、內建的、不可更新的、随時間的變化而不斷變化的,這些特點決定了資料倉庫的系統設計不能采用同開發傳統的OLTP資料庫一樣的設計方法。

資料倉庫系統的原始需求不明确,且不斷變化與增加,開發者最初不能确切了解到使用者的明确而詳細的需求,使用者所能提供的無非是需求的大的方向以及部分需求,

更不能較準确地預見到以後的需求。是以,采用原型法來進行資料倉庫的開發是比較合适的,因為原型法的思想是從建構系統的簡單的基本架構着手,不斷豐富與完

善整個系統。但是,資料倉庫的設計開發又不同于一般意義上的原型法,資料倉庫的設計是資料驅動的。這是因為資料倉庫是在現存資料庫系統基礎上進行開發,它

着眼于有效地抽取、綜合、內建和挖掘已有資料庫的資料資源,服務于企業高層上司管理決策分析的需要。但需要說明的是,資料倉庫系統開發是一個經過不斷循

環、回報而使系統不斷增長與完善的過程,這也是原型法差別于系統生命周期法的主要特點。是以,在資料倉庫的開發的整個過程中,自始至終要求決策人員和開發

者的共同參與和密切協作,要求保持靈活的頭腦,不做或盡量少做無效工作或重複工作。

    資料倉庫的設計大體上可以分為以下幾個步驟:

l     概念模型設計;

l     技術準備工作;

l     邏輯模型設計;   

l     實體模型設計;

l     資料倉庫生成;

l     資料倉庫運作與維護。

    下面我們六個主要設計步驟為主線,介紹在各個設計步驟中設計的基本内容。

第一節  概念模型設計

    進行概念模型設計所要完成的工作是:

<1>界定系統邊界      

<2>确定主要的主題域及其内容

概念模型設計的成果是,在原有的資料庫的基礎上建立了一個較為穩固的概念模型。因為資料倉庫是對原有資料庫系統中的資料進行內建和重組而形成的資料集合,

是以資料倉庫的概念模型設計,首先要對原有資料庫系統加以分析了解,看在原有的資料庫系統中“有什麼”、“怎樣組織的”和“如何分布的”等,然後再來考慮

應當如何建立資料倉庫系統的概念模型。一方面,通過原有的資料庫的設計文檔以及在資料字典中的資料庫關系模式,可以對企業現有的資料庫中的内容有一個完整

而清晰的認識;另一方面,資料倉庫的概念模型是面向企業全局建立的,它為內建來自各個面向應用的資料庫的資料提供了統一的概念視圖。

    概念模型的設計是在較高的抽象層次上的設計,是以建立概念模型時不用考慮具體技術條件的限制。

1. 界定系統的邊界

    資料倉庫是面向決策分析的資料庫,我們無法在資料倉庫設計的最初就得到詳細而明确的需求,但是一些基本的方向性的需求還是擺在了設計人員的面前:

l         要做的決策類型有哪些?

l         決策者感興趣的是什麼問題?

l         這些問題需要什麼樣的資訊?

l         要得到這些資訊需要包含原有資料庫系統的哪些部分的資料?

    這樣,我們可以劃定一個目前的大緻的系統邊界,集中精力進行最需要的部分的開發。因而,從某種意義上講,界定系統邊界的工作也可以看作是資料倉庫系統設計的需求分析,因為它将決策者的資料分析的需求用系統邊界的定義形式反映出來。

2. 确定主要的主題域

     在這一步中,要确定系統所包含的主題域,然後對每個主題域的内容進行較明确的描述,描述的内容包括:

l           主題域的公共碼鍵;

l           主題域之間的聯系;

l           充分代表主題的屬性組。  

第二節  技術準備工作

    這一階段的工作包括:技術評估,技術環境準備。

這一階段的成果是:技術評估報告、軟硬體配置方案、系統(軟、硬體)總體設計方案。管理資料倉庫的技術要求與管理操作型環境中的資料與處理的技術要求差別

很大,兩者所考慮的方面也不同。我們之是以在一般情況下總是将分析型資料與操作型資料分離開來,将分析型資料單獨集中存放,也就是用資料倉庫來存放,技術

要求上的差異是一個重要原因。

1. 技術評估

    進行技術評估,就是确定資料倉庫的各項性能名額。一般情況下,需要在這一步裡确定的性能名額包括:

l           管理大資料量資料的能力;

l           進行靈活資料存取的能力;

l           根據資料模型重組資料的能力;

l           透明的資料發送和接收能力;

l           周期性成批裝載資料的能力;

l           可設定完成時間的作業管理能力。

2. 技術環境準備

    一旦資料倉庫的體系化結構的模型大體建好後,下一步的工作就是确定我們應該怎樣來裝配這個體系化結構模型,主要是确定對軟硬體配置的要求;我們主要考慮相關的問題:

l           預期在資料倉庫上分析處理的資料量有多大?

l           如何減少或減輕競争性存取程式的沖突?

l           資料倉庫的資料量有多大?

l           進出資料倉庫的資料通信量有多大?等等。

    根據這些考慮,我們就可以确定各項軟硬體的配備要求,并且在這一步工作結束時各項技術準備工作應已就緒,可以裝載資料了。這些配備有:

l           直接存取裝置(DASD);

l           網絡;

l           管理直接存取裝置(DASD)的作業系統;

l           進出資料倉庫的界面(主要是資料查詢和分析工具);

    管理資料倉庫的軟體,目前即選用資料庫管理系統及有關的選件,購買的DBMS産品不能滿足管理資料倉庫需要的,還應考慮自己或軟體內建商開發有關子產品等等。

第三節  邏輯模型設計

    在這一步裡進行的工作主要有:

l           分析主題域,确定目前要裝載的主題;

l           确定粒度層次劃分;

l           确定資料分割政策;

l           關系模式定義;

l           記錄系統定義

邏輯模型設計的成果是,對每個目前要裝載的主題的邏輯實作進行定義,并将相關内容記錄在資料倉庫的中繼資料中,包括:

l           适當的粒度劃分;

l           合理的資料分割政策;

l           适當的表劃分;

l           定義合适的資料來源等。

1. 分析主題域

在概念模型設計中,我們确定了幾個基本的主題域,但是,資料倉庫的設計方法是一個逐漸求精的過程,在進行設計時,一般是一次一個主題或一次若幹個主題地逐

步完成的。是以,我們必須對概念模型設計步驟中确定的幾個基本主題域進行分析,并選擇首先要實施的主題域。選擇第一個主題域所要考慮的是它要足夠大,以便

使得該主題域能建設成為一個可應用的系統;它還要足夠小,以便于開發和較快地實施。如果所選擇的主題域很大并且很複雜,我們甚至可以針對它的一個有意義的

子集來進行開發。在每一次的回報過程中,都要進行主題域的分析。

2. 粒度層次劃分

資料倉庫邏輯設計中要解決的一個重要問題是決定資料倉庫的粒度劃分層次,粒度層次劃分适當與否直接影響到資料倉庫中的資料量和所适合的查詢類型。确定資料

倉庫的粒度劃分,可以使用在粒度劃分一節中介紹的方法,通過估算資料行數和所需的DASD數,來确定是采用單一粒度還是多重粒度,以及粒度劃分的層次。

3. 确定資料分割政策

在這一步裡,要選擇适當的資料分割的标準,一般要考慮以下幾方面因素:資料量(而非記錄行數)、資料分析處理的實際情況、簡單易行以及粒度劃分政策等。數

據量的大小是決定是否進行資料分割和如何分割的主要因素;資料分析處理的要求是選擇資料分割标準的一個主要依據,因為資料分割是跟資料分析處理的對象緊密

聯系的;我們還要考慮到所選擇的資料分割标準應是自然的、易于實施的:同時也要考慮資料分割的标準與粒度劃分層次是适應的。

4. 關系模式定義

資料倉庫的每個主題都是由多個表來實作的,這些表之間依靠主題的公共碼鍵聯系在一起,形成一個完整的主題。在概念模型設計時,我們就确定了資料倉庫的基本

主題,并對每個主題的公共碼鍵、基本内容等做了描述在這一步裡,我們将要對標明的目前實施的主題進行模式劃分,形成多個表,并确定各個表的關系模式。

第四節  實體模型設計

    這一步所做的工作是确定資料的存儲結構,确定索引政策,确定資料存放位置,确定存儲配置設定。

    确定資料倉庫實作的實體模型,要求設計人員必須做到以下幾方面:

l           要全面了解所選用的資料庫管理系統,特别是存儲結構和存取方法。

l           了解資料環境、資料的使用頻度、使用方式、資料規模以及響應時間要求等,這些是對時間和空間效率進行平衡和優化的重要依據。

l           了解外部儲存設備的特性,如分塊原則,塊大小的規定,裝置的I/O特性等。

1. 确定資料的存儲結構

    一個資料庫管理系統往往都提供多種存儲結構供設計人員選用,不同的存儲結構有不同的實作方式,各有各的适用範圍和優缺點,設計人員在選擇合适的存儲結構時應該權衡三個方面的主要因素:存取時間、存儲空間使用率和維護代價。

2. 确定索引政策

    資料倉庫的資料量很大,因而需要對資料的存取路徑進行仔細的設計和選擇。由于資料倉庫的資料都是不常更新的,因而可以設計多種多樣的索引結構來提高資料存取效率。

在資料倉庫中,設計人員可以考慮對各個資料存儲建立專用的、複雜的索引,以獲得最高的存取效率,因為在資料倉庫中的資料是不常更新的,也就是說每個資料存儲是穩定的,因而雖然建立專用的、複雜的索引有一定的代價,但一旦建立就幾乎不需維護索引的代價。

3. 确定資料存放位置

我們說過,同一個主題的資料并不要求存放在相同的媒體上。在實體設計時,我們常常要按資料的重要程度、使用頻率以及對響應時間的要求進行分類,并将不同類

的資料分别存儲在不同的儲存設備中。重要程度高、經常存取并對響應時間要求高的資料就存放在高速儲存設備上,如硬碟;存取頻率低或對存取響應時間要求低的

資料則可以放在低速儲存設備上,如磁盤或錄音帶。

資料存放位置的确定還要考慮到其它一些方法,如:決定是否進行合并表;是否對一些經常性的應用建立資料序列;對常用的、不常修改的表或屬性是否備援存儲。如果采用了這些技術,就要記入中繼資料。

4. 确定存儲配置設定

    許多資料庫管理系統提供了一些存儲配置設定的參數供設計者進行實體優化處理,如:塊的尺寸、緩沖區的大小和個數等等,它們都要在實體設計時确定。這同建立資料庫系統時的考慮是一樣的。

第五節  資料倉庫的生成

    在這一步裡所要做的工作是接口程式設計,資料裝入。

    這一步工作的成果是,資料已經裝入到資料倉庫中,可以在其上建立資料倉庫的應用,即DSS應用。

1. 設計接口

将操作型環境下的資料裝載進入資料倉庫環境,需要在兩個不同環境的記錄系統之間建立一個接口。乍一看,建立和設計這個接口,似乎隻要編制一個抽取程式就可

以了,事實上,在這一階段的工作中,的确對資料進行了抽取,但抽取并不是全部的工作,這一接口還應具有以下的功能:

l           從面向應用和操作的環境生成完整的資料;

l           資料的基于時間的轉換;

l           資料的凝聚;

l           對現有記錄系統的有效掃描,以便以後進行追加。

當然,考慮這些因素的同時,還要考慮到實體設計的一些因素和技術條件限制,根據這些内容,嚴格地制定規格說明,然後根據規格說明,進行接口程式設計。從操作型

環境到資料倉庫環境的資料接口程式設計的過程和一般的程式設計過程并無差別,它也包括僞碼開發、編碼、編譯、檢錯、測試等步驟。

在接口程式設計中,要注意:

l           保持高效性,這也是一般的程式設計所要求的;

l           要儲存完整的文檔記錄;

l           要靈活,易于改動;

l           要能完整、準确地完成從操作型環境到資料倉庫環境的資料抽取、轉換與內建。

2. 資料裝入

在這一步裡所進行的就是運作接口程式,将資料裝入到資料倉庫中。主要的工作是:

l           确定資料裝入的次序;

l           清除無效或錯誤資料;

l           資料“老化” ;

l           資料粒度管理;

l           資料重新整理等。

最初隻使用一部分資料來生成第一個主題域,使得設計人員能夠輕易且迅速地對已做工作進行調整,而且能夠盡早地送出到下一步驟,即資料倉庫的使用和維護。這

樣既可以在經濟上最快地得到回報,又能夠通過最終使用者的使用、盡早發現一些問題并提出新的需求,然後回報給設計人員,設計人員繼續對系統改進、擴充。

第六節  資料倉庫的使用和維護

    在這一步中所要做的工作有建立DSS應用,即使用資料倉庫了解需求,調整和完善系統,維護資料倉庫。

建立企業的體系化環境,不僅包括建立起操作型和分析型的資料環境,還應包括在這一資料環境中建立起企業的各種應用。資料倉庫裝入資料之後,下一步工作是:

一方面,使用資料倉庫中的資料服務于決策分析的目的,也就是在資料倉庫中建立起DSS應用;另一方面,根據使用者使用情況和回報來的新的需求,開發人員進一

步完善系統,并管理資料倉庫的一些日常活動,如重新整理資料倉庫的目前詳細資料、将過時的資料轉化成曆史資料、清除不再使用的資料、調整粒度級别等。我們把這

一步驟稱為資料倉庫的使用與維護。

1. 建立DSS應用

    使用資料倉庫,即開發DSS應用,與在操作型環境中的應用開發有着本質差別,開發DSS應用不同于聯機事務處理應用開發的顯著特點在于:

l           DSS應用開發是從資料出發的;

l           DSS應用的需求不能在開發初期明确了解;

l           DSS應用開發是一個不斷循環的過程,是啟發式的開發。

DSS應用主要可分為兩類:例行分析處理和啟發式分析處理。例行分析處理是指那些重複進行的分析處理,它通常是屬于部門級的應用,如部門統計分析,報表分

析等等;而個人級的分析應用經常是随機性很大的,企業經營者受到某種資訊啟發而進行的一些即席的分析處理,是以我們稱之為啟發式的分析處理。

    DSS應用開發的大緻步驟如下:

    步驟l——确定所需的資料。為滿足DSS應用的要求,我們必須從資料倉庫中确定一個可能用到的資料範圍。這是一個試探的過程。

    步驟2——程式設計抽取資料。根據上面得到的資料範圍,編寫一個抽取程式來獲得這些資料。為适應分析需求多變的特點,要求所編寫的抽取程式應該通用,易于修改。

    步驟3——合并資料。如果有多個資料抽取源,要将抽取來的資料進行合并、提煉,使資料符合分析處理的要求。

    步驟4——分析資料。在上步準備好的資料基礎上進行分析處理,并看所得的結果是否滿足了原始的要求,如果不能滿足,則傳回步驟1,開始新的一次循環,否則就準備最終分析結果報告。

    步驟5——回答問題。生成最終分析結果報告。—般情況下,最終的分析結果報告是在許多次的循環後得到的,因為一次分析處理很少是在一次循環後就完成的。

步驟6——例行化、一次分析處理的最後、我們要決定是否将在上面已經建立的分析處理例行化。如果建立的分析處理是重複進行的部門級的DSS應用,那麼最好

是将它例行化,這樣在進行下一次同樣的分析處理時,不必再重複上述六步的循環過程。而且,不斷地積累這種例行處理,形成一個集合,我們就可以通過組合這些

已有的處理來生成新的一個較大的複雜處理,或完成一個複雜處理的一部分。

2. 了解需求,改善和完善系統,維護資料倉庫

    資料倉庫的開發是逐漸完善的原型法的開發方法,它要求:要盡快地讓系統運作起來,盡早産生效益;要在系統運作或使用中,不斷地了解需求,改善系統;不斷地考慮新的需求,完善系統。

維護資料倉庫的工作主要是管理日常資料裝入的工作,包括重新整理資料倉庫的目前詳細資料,将過時的資料轉化成曆史資料.清除不再使用的資料,管理中繼資料,等等;另外,如何利用接口定期從操作型環境向資料倉庫追加資料,确定資料倉庫的資料重新整理頻率,等等。