實施一個數(shù)據(jù)倉庫項目的主要步驟是:
- 定義項目范圍
- 收集并確認(rèn)業(yè)務(wù)需求和技術(shù)需求
- 邏輯設(shè)計
- 物理設(shè)計
- 從源系統(tǒng)向數(shù)據(jù)倉庫裝載數(shù)據(jù)
- 使數(shù)據(jù)可以被訪問以輔助決策
- 管理和維護(hù)數(shù)據(jù)倉庫
1.定義范圍
項目范圍定義了一個數(shù)據(jù)倉庫項目的邊界。典型的范圍定義是組織、地區(qū)、應(yīng)用、業(yè)務(wù)功能的聯(lián)合表示。
定義范圍時通常需要權(quán)衡考慮資源(人員、系統(tǒng)、預(yù)算等)、進(jìn)度(項目的時間和里程碑要求)、功能(數(shù)據(jù)倉庫承諾達(dá)到的能力)三方面的因素。
項目范圍是設(shè)定正確的期望值、評估成本、估計風(fēng)險、制定開發(fā)優(yōu)先級的依據(jù)。
?
2.確定需求
數(shù)據(jù)倉庫項目的需求可以分為業(yè)務(wù)需求和技術(shù)需求。
1)定義業(yè)務(wù)需求
- 建立數(shù)據(jù)倉庫的主要目的是為組織賦予從全局訪問數(shù)據(jù)的能力。數(shù)據(jù)的粒度必須能夠滿足用戶執(zhí)行分析的需求,并且數(shù)據(jù)應(yīng)該被表示為用戶能夠理解的業(yè)務(wù)術(shù)語。
- 對數(shù)據(jù)倉庫中數(shù)據(jù)的分析將輔助業(yè)務(wù)決策:數(shù)據(jù)倉庫的設(shè)計者應(yīng)該清楚業(yè)務(wù)用戶是如何做決策的,在決策過程中提出了哪些問題,以及哪些數(shù)據(jù)是回答這些問題所需要的。
- 在為數(shù)據(jù)倉庫收集需求的過程中,還要考慮設(shè)計要能適應(yīng)需求的變化。
2)定義技術(shù)需求
- 數(shù)據(jù)來源
數(shù)據(jù)倉庫的數(shù)據(jù)來源是操作型系統(tǒng),這些系統(tǒng)日復(fù)一日地處理著各種事務(wù)活動。操作型系統(tǒng)大都是聯(lián)機(jī)事務(wù)處理系統(tǒng)。數(shù)據(jù)倉庫會從多個操作型源系統(tǒng)抽取數(shù)據(jù)。- ETL
操作型系統(tǒng)里的數(shù)據(jù)需要一個中間處理過程,這就是所謂的ETL過程。需要知道如何清理操作型數(shù)據(jù),如何移除垃圾數(shù)據(jù),如何將來自多個源系統(tǒng)的相同數(shù)據(jù)整合在一起。- 數(shù)據(jù)的更新頻率
例如,如果需要進(jìn)行長期的或大范圍的數(shù)據(jù)分析,可能就不需要每天裝載數(shù)據(jù),而是每周或每月裝載一次。注意,更新頻率并不決定數(shù)據(jù)的細(xì)節(jié)程度,每周匯總的數(shù)據(jù)有可能每月裝載。
?
3.邏輯設(shè)計
接著進(jìn)行邏輯設(shè)計:需要定義特定數(shù)據(jù)的具體內(nèi)容,數(shù)據(jù)之間的關(guān)系,支持?jǐn)?shù)據(jù)倉庫的系統(tǒng)環(huán)境等,本質(zhì)是發(fā)現(xiàn)邏輯對象之間的關(guān)系。
1)建立需要的數(shù)據(jù)列表
很多情況下,為了得到所需的全部數(shù)據(jù),需要適當(dāng)擴(kuò)展用戶需求或者預(yù)測未來的需要,一般從主題域涉及的業(yè)務(wù)因素入手。
例如,銷售主題域的業(yè)務(wù)因素可能是客戶、地區(qū)、產(chǎn)品、促銷等。然后建立每個業(yè)務(wù)因素的元素列表,依據(jù)也是用戶提出的需求。最后通過元素列表,標(biāo)識出業(yè)務(wù)因素之間的聯(lián)系。
這些工作完成后,應(yīng)該已經(jīng)獲得了如下的信息:
- 原始的或計算后的數(shù)據(jù)元素列表;
- 數(shù)據(jù)的類型;
- 合理的數(shù)據(jù)分組,比如國家、省市、區(qū)縣等分成一組,因為它們都是地區(qū)元素;
- 數(shù)據(jù)之間的關(guān)系,比如國家、省市、區(qū)縣的包含關(guān)系等。
?
2)識別數(shù)據(jù)源
現(xiàn)在已經(jīng)有了需要的數(shù)據(jù)列表,現(xiàn)在考慮:從哪里可以得到這些數(shù)據(jù),以及要得到這些數(shù)據(jù)需要多大的成本。需要把上一步建立的數(shù)據(jù)列表映射到操作型系統(tǒng)上。
從哪里獲?。?/p>
應(yīng)該從最大最復(fù)雜的源系統(tǒng)開始,在必要時再查找其他源系統(tǒng)。數(shù)據(jù)的映射關(guān)系可能是直接的或間接的,比如銷售源系統(tǒng)中,商品的單價和折扣價可以直接獲得,而折扣百分比就需要計算得到。
通常維度模型中的維度表可以直接映射到操作型源系統(tǒng),而事實表的度量則映射到源數(shù)據(jù)在特定粒度級別上聚合計算后的結(jié)果。
成本:
某些數(shù)據(jù)的獲得需要較高的成本,例如,用戶想要得到促銷相關(guān)的銷售數(shù)據(jù)就不那么容易,因為促銷期的定義從時間角度看是不連續(xù)的。
?
3)制作實體關(guān)系圖
邏輯設(shè)計的交付物是實體關(guān)系圖(entity-relationship diagram,簡稱ERD)和對它的說明文檔(數(shù)據(jù)字典)。實體對應(yīng)關(guān)系數(shù)據(jù)庫中的表,屬性對應(yīng)關(guān)系數(shù)據(jù)庫中的列。
在維度模型的ERD中,實體由事實表和維度表組成,關(guān)系體現(xiàn)為在事實表中引用維度表的主鍵。因此先要確認(rèn)哪些信息屬于中心事實表,哪些信息屬于相關(guān)的維度表。維度模型中表的規(guī)范化級別通常低于關(guān)系模型中的表。
?
?
4.物理設(shè)計
物理設(shè)計指的是將邏輯設(shè)計的對象集合,轉(zhuǎn)化為一個物理數(shù)據(jù)庫,包括所有的表、索引、約束、視圖等。
1)性能優(yōu)化
比較通用的數(shù)據(jù)倉庫優(yōu)化方法有位圖索引和表分區(qū)。
位圖索引對索引列的每個不同值建立一個位圖。
- 和普通的B樹索引相比,位圖索引占用的空間小,創(chuàng)建速度快。
但由于并發(fā)的DML操作會鎖定整個位圖段的大量數(shù)據(jù)行,所以位圖索引不適用于頻繁更新的事務(wù)處理系統(tǒng)而數(shù)據(jù)倉庫對最終用戶來說是一個只讀系統(tǒng),其中某些維度的值基數(shù)很小,這樣的場景非常適合利用位圖索引優(yōu)化查詢。- 遺憾的是有些數(shù)據(jù)庫管理系統(tǒng)如MySQL,還沒有位圖索引功能。
大部分?jǐn)?shù)據(jù)庫系統(tǒng)都可以對表進(jìn)行分區(qū)。
- 表分區(qū)是將一個大表按照一定的規(guī)則分解成多個分區(qū),每個表分區(qū)可以定義獨立的物理存儲參數(shù)。將不同分區(qū)存儲到不同的磁盤上,查詢表中數(shù)據(jù)時可以有效分布I/O操作,緩解系統(tǒng)壓力。
- 分區(qū)消除:分區(qū)還有一個很有用的特性,叫做分區(qū)消除。查詢數(shù)據(jù)的時候,數(shù)據(jù)庫系統(tǒng)的優(yōu)化器可以通過適當(dāng)?shù)牟樵儣l件過濾掉一些分區(qū),從而避免掃描所有數(shù)據(jù),提高查詢效率。
?
2)數(shù)倉的拓展性
從技術(shù)上講,可擴(kuò)展性是一種通過增加資源,使服務(wù)能力得到線性擴(kuò)展的能力。
- 比方說,一臺服務(wù)器在滿負(fù)荷時可以為一萬個用戶同時提供服務(wù),當(dāng)用戶數(shù)增加到兩萬時,只需要再增加一臺服務(wù)器,就能提供相同性能的服務(wù)。
- 隨著時間的推移,數(shù)據(jù)量會越來越大,因此在做數(shù)據(jù)倉庫物理設(shè)計時,出于可擴(kuò)展性的考慮,應(yīng)該把對硬件、軟件、網(wǎng)絡(luò)帶寬的依賴降到最低。?
?
5.裝載數(shù)據(jù)
這個步驟實際上涉及整個ETL過程。
需要執(zhí)行的任務(wù)包括:
- 源和目標(biāo)結(jié)構(gòu)之間建立映射關(guān)系;
- 從源系統(tǒng)抽取數(shù)據(jù);
- 對數(shù)據(jù)進(jìn)行清洗和轉(zhuǎn)換;
- 將數(shù)據(jù)裝載進(jìn)數(shù)據(jù)倉庫;
- 創(chuàng)建并存儲元數(shù)據(jù)。
?
6.訪問數(shù)據(jù)
訪問步驟是要使數(shù)據(jù)倉庫的數(shù)據(jù)可以被使用,使用的方式包括:數(shù)據(jù)查詢、數(shù)據(jù)分析、建立報表圖表、數(shù)據(jù)發(fā)布等。根據(jù)采用的數(shù)據(jù)倉庫架構(gòu),可能會引入數(shù)據(jù)集市的創(chuàng)建。
訪問步驟需要執(zhí)行以下任務(wù):
- 為前端工具建立一個中間層。在這個中間層里,把數(shù)據(jù)庫結(jié)構(gòu)和對象名轉(zhuǎn)化成業(yè)務(wù)術(shù)語,這樣最終用戶就可以使用與特定功能相關(guān)的業(yè)務(wù)語言同數(shù)據(jù)倉庫交互。
- 建立和管理數(shù)據(jù)倉庫里的中間表和匯總表。建立這些表完全是出于性能原因。
中間表一般是在原始表上添加過濾條件獲得的數(shù)據(jù)集合,匯總表則是對原始表進(jìn)行聚合操作后的數(shù)據(jù)集合。這些表中的記錄數(shù)會遠(yuǎn)遠(yuǎn)小于原始表,因此前端工具在這些表上的查詢會執(zhí)行得更快。
?
7.管理維護(hù)
這個步驟涵蓋在數(shù)據(jù)倉庫整個生命周期里的管理和維護(hù)工作。
這步需要執(zhí)行的任務(wù)包括:文章來源:http://www.zghlxwxcb.cn/news/detail-719591.html
- 確保對數(shù)據(jù)的安全訪問
- 管理數(shù)據(jù)增長
- 優(yōu)化系統(tǒng)以獲得更好的性能
- 保證系統(tǒng)的可用性和可恢復(fù)性等
?
?
參考:《Hadoop構(gòu)建數(shù)據(jù)倉庫實戰(zhàn)》文章來源地址http://www.zghlxwxcb.cn/news/detail-719591.html
到了這里,關(guān)于【數(shù)據(jù)倉庫設(shè)計基礎(chǔ)(四)】數(shù)據(jù)倉庫實施步驟的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!