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