確定數(shù)據(jù)倉庫中數(shù)據(jù)的恰當粒度是數(shù)據(jù)倉庫開發(fā)者需要面對的一個最重要的設(shè)計問題扭弧。數(shù)據(jù)粒度主要針對指標數(shù)據(jù)的計算范圍幔睬,如人口這個數(shù)據(jù)項在統(tǒng)計部門是以街區(qū)范圍還是一個社區(qū)為范圍統(tǒng)計的。人口數(shù)據(jù)細化程度越高饼问,粒度級就越薪酶丁;相反流济,細化程度越低锐锣,粒度級就越大腌闯。粒度是數(shù)據(jù)倉庫主要設(shè)計問題绳瘟,因為它極大地影響存放在數(shù)據(jù)倉庫中的數(shù)據(jù)量的大小,同時影響數(shù)據(jù)倉庫所能回答的查詢類型姿骏。在設(shè)計數(shù)據(jù)倉庫的時候權(quán)衡數(shù)據(jù)量大小和查詢類型得出合理的粒度大小糖声。下面我們通過規(guī)劃設(shè)計和建設(shè)兩個階段來講解數(shù)據(jù)倉庫粒度的確定。
1.規(guī)劃階段
“規(guī)劃”——對未來整體性、長期性蘸泻、基本型問題的思考和考量琉苇,設(shè)計未來整套行動的方案。在規(guī)劃階段過程中首先粗略估算數(shù)據(jù)量悦施,估算的目的是掌握數(shù)據(jù)倉庫中數(shù)據(jù)量的一個范圍并扇。第二步預(yù)測未來數(shù)據(jù)集市中應(yīng)用需要的粒度,數(shù)據(jù)倉庫存儲數(shù)據(jù)集市使用的最小粒度抡诞。
1.1.建立良好的循環(huán)反饋機制是很重要的穷蛹。
首先就要建立完善的循環(huán)反饋機制。數(shù)據(jù)倉庫是面對模糊需求開始建立的昼汗,粒度不可能一次就能規(guī)劃好肴熏,先導(dǎo)入少量數(shù)據(jù),建立一部分應(yīng)用提交給用戶使用顷窒,并聆聽用戶使用意見蛙吏,根據(jù)用戶的使用意見調(diào)整粒度的大小。
1.2.對存儲數(shù)據(jù)進行粗略估算對設(shè)計體系結(jié)構(gòu)的人員來說非常有用鞋吉。
粗略估算數(shù)據(jù)倉庫的數(shù)據(jù)量鸦做,可跟好的規(guī)劃數(shù)據(jù)倉庫架構(gòu)。如果數(shù)據(jù)只有10 000行谓着,那么數(shù)據(jù)倉庫采用粒度級越小的數(shù)據(jù)存儲馁龟,數(shù)據(jù)倉庫中存儲所有明細數(shù)據(jù)。如果明細數(shù)據(jù)有10 000 000行漆魔,進入數(shù)據(jù)倉庫的數(shù)據(jù)就需要進行初步匯總坷檩。如果有100億行,數(shù)據(jù)倉庫不但需要有一個高粒度級改抡,還可能將大部分數(shù)據(jù)移到溢出存儲器上去矢炼。
估算方法如下:
注意:對數(shù)據(jù)倉庫大小的估算預(yù)測幾乎總是偏低,而且阿纤,數(shù)據(jù)倉庫的增長速率一般比預(yù)測的要快句灌。
1.3.預(yù)測數(shù)據(jù)集市中可能使用的數(shù)據(jù)粒度是很必要的。
為了合適地填充所有的數(shù)據(jù)集市欠拾,數(shù)據(jù)倉庫中的數(shù)據(jù)必須在一個所有數(shù)據(jù)集市所需要的最低粒度水平上胰锌。
規(guī)劃階段的成果是數(shù)據(jù)倉庫建設(shè)的重要依據(jù)內(nèi)容。規(guī)劃階段對組織架構(gòu)藐窄,數(shù)據(jù)量大小和后期應(yīng)用的摸底资昧,可以制定方案,并對可能的結(jié)果有預(yù)先的認知荆忍,對可能存在的問題設(shè)計上進行避免格带。
2.建設(shè)階段
2.1.根據(jù)估算的空間結(jié)果撤缴,在體系架構(gòu)設(shè)計上可以根據(jù)數(shù)據(jù)量大小進行存儲設(shè)備選擇。需要多少直接存取存儲設(shè)備叽唱,是否需采用雙重粒度設(shè)計屈呕。
2.2.設(shè)計溢出數(shù)據(jù)的管理。溢出數(shù)據(jù)是指數(shù)據(jù)倉庫將不經(jīng)常被訪問的過時的數(shù)據(jù)轉(zhuǎn)移到存儲量更大的訪問速度慢的存儲器上的數(shù)據(jù)棺亭。管理溢出數(shù)據(jù)可以方便索引定位歷史數(shù)據(jù)并可以快速取出該數(shù)據(jù)虎眨。
跨介質(zhì)存儲管理器和數(shù)據(jù)活動監(jiān)控器可以對溢出數(shù)據(jù)進行有效的管理。磁盤存儲器和大容量低速存儲器之間的數(shù)據(jù)移動是通過一種稱為“跨介質(zhì)存儲管理器(CMSM)”的軟件來控制的镶摘。數(shù)據(jù)活動監(jiān)控器专甩,用來確定哪些數(shù)據(jù)正在被訪問,哪些沒被訪問钉稍。數(shù)據(jù)活動監(jiān)控器能提供數(shù)據(jù)存儲的位置信息涤躲。
2.3.實施數(shù)據(jù)倉庫過程中粒度的確定是一個往復(fù)循環(huán)的過程。利用規(guī)劃階段建立的反饋循環(huán)方法贡未,不斷的從分析員獲得反饋种樱,不斷的優(yōu)化數(shù)據(jù)倉庫。
第一次的設(shè)計過程中俊卤,如果有50%是正確的嫩挤,那么整個設(shè)計就是成功的。
從圖可以看出成功建立數(shù)據(jù)倉庫離不開分析人員的通力協(xié)作消恍。建設(shè)者要不斷的聆聽分析員的意見岂昭。分析人員在建立數(shù)據(jù)倉庫的時候并不知道自己需要什么,只有在他們看到最終分析結(jié)果狠怨,才能告訴數(shù)據(jù)倉庫工作人員什么才是他們真正有用的约啊。為了有效的獲得反饋,以下幾點技巧可供參考:
快速建立數(shù)據(jù)倉庫很小的子集并認真聽取用戶的反饋意見佣赖;
? ? ? ? ? 使用原型方法恰矩;
? ? ? ? ? 參考別人的經(jīng)驗;
? ? ? ? ? 與有經(jīng)驗的用戶協(xié)同工作憎蛤;
? ? ? ? ? 以企業(yè)中已有的功能需要作參考外傅;
? ? ? ? ? 定期舉行數(shù)據(jù)倉庫建設(shè)例會。
3.例舉銀行粒度小例子
3.1.銀行環(huán)境中粒度級別俩檬,下圖是銀行中的數(shù)據(jù)粒度例子萎胰。
銀行的操作層存放的是以日為單位粒度的數(shù)據(jù)。銀行的各個業(yè)務(wù)系統(tǒng)只存放最近60天交易活動明細內(nèi)容棚辽,方便用戶查詢最近兩個月的交易信息詳情技竟,這段時間用戶對交易數(shù)據(jù)明細最為關(guān)心。
數(shù)據(jù)倉庫層將數(shù)據(jù)匯聚成以月為單位粒度的匯總數(shù)據(jù)晚胡。銀行將過去長達十年的數(shù)據(jù)按每個賬戶每月交易信息進行匯聚灵奖,存儲在直接存儲設(shè)備嚼沿,供高速查詢訪問估盘,用戶對過去很久的交易明細并不在意瓷患,但是用戶需要快速查詢得出結(jié)果,此時提供以月為單位的匯總數(shù)據(jù)可以滿足用戶的需求遣妥。
所有的歷史數(shù)據(jù)以日為單位存放在溢出存儲區(qū)擅编,該區(qū)域數(shù)據(jù)量極大,訪問頻率極低箫踩。一般銀行不受理長達十年的歷史明細數(shù)據(jù)查詢的請求爱态,如果一些特殊情況需要查詢超過十年的歷史數(shù)據(jù),查詢時間會相當緩慢境钟。
4.小結(jié)
數(shù)據(jù)倉庫粒度的確定是一個困難的過程锦担,要求一個合適的級別,既不能太高也不能太低慨削。
選擇粒度級別很大程度上基于常識洞渔。建設(shè)之前作好適當?shù)囊?guī)劃,估算數(shù)據(jù)量并建立相應(yīng)的反饋制度缚态。在實施的過程中磁椒,首先建立數(shù)據(jù)倉庫的一小部分,并讓分析人員使用玫芦。然后聆聽他們的意見浆熔,根據(jù)他們的反饋對粒度級別進行適當?shù)恼{(diào)整。