柚子快報(bào)邀請(qǐng)碼778899分享:數(shù)據(jù)倉(cāng)庫(kù)——聚集
柚子快報(bào)邀請(qǐng)碼778899分享:數(shù)據(jù)倉(cāng)庫(kù)——聚集
數(shù)據(jù)倉(cāng)庫(kù)基礎(chǔ)筆記思維導(dǎo)圖已經(jīng)整理完畢,完整連接為: 數(shù)據(jù)倉(cāng)庫(kù)基礎(chǔ)知識(shí)筆記思維導(dǎo)圖
聚集
在對(duì)性能不斷探索的過程中,聚集是最強(qiáng)大最、有效的數(shù)據(jù)處理工具。通過仔細(xì)規(guī)劃和集成,聚集將隊(duì)數(shù)據(jù)倉(cāng)庫(kù)性能產(chǎn)生巨大影響。無需針對(duì)特定的軟件和硬件進(jìn)行大量的投資,使用在數(shù)據(jù)倉(cāng)庫(kù)中已經(jīng)存在的工具即可。與導(dǎo)出模式類似,聚集是一種補(bǔ)充性的數(shù)據(jù)結(jié)構(gòu),用來加快工作進(jìn)度。聚集主要是通過匯總數(shù)據(jù)來獲得改進(jìn)性能的效果。
但是,聚集發(fā)揮作用,需要為每個(gè)查詢選擇正確的聚集,還需要為聚集填充數(shù)據(jù)并確保能夠與基本數(shù)據(jù)模式保持同步。
理想的聚集對(duì)數(shù)倉(cāng)用戶是不可見的,每當(dāng)需要時(shí)才默默地提供支持。理想的聚集也是免維護(hù)的,可以自動(dòng)地建立和維護(hù),不需要ETL開發(fā)人員介入。
聚集的基礎(chǔ)知識(shí)
由于多維數(shù)據(jù)集首先是一種高性能的數(shù)據(jù)結(jié)構(gòu),因此構(gòu)建匯總多維數(shù)據(jù)集的聚集幾乎沒有意義,然而如果原始多維數(shù)據(jù)集被調(diào)整為獲得高容量而不是高性能,這樣做是有用的。
匯總基本數(shù)據(jù)
在基本模式中存儲(chǔ)粒度數(shù)據(jù)在聚集中存儲(chǔ)預(yù)先匯總的數(shù)據(jù)描述聚集模式最方便的方法是描述事實(shí)表的粒度,與之相反的是描述什么被匯總聚集模式的事實(shí)和維度要與基本模式中的事實(shí)和維度表示一直,這樣才能確保獲得一致的結(jié)果為了性能上獲得好處,聚集模式并不需要被優(yōu)化的查詢的粒度完全一致。單個(gè)聚集并不能為所有查詢帶來性能方面的好處,可以采用多個(gè)聚集以不同的方法對(duì)同一個(gè)基本模式進(jìn)行匯總。每個(gè)聚集預(yù)先跨不同維度計(jì)算數(shù)據(jù),而不是采用連續(xù)級(jí)別的匯總,這樣可以最大化聚集表能支持查詢的數(shù)量總會(huì)有一些查詢不能通過聚集獲得優(yōu)化,任何需要訪問粒度的查詢,都必須被定向到原始星型模式
使用聚集
聚集星型模式中事實(shí)和維度屬性與基本星型模型中相關(guān)的事實(shí)和維度屬性一致,對(duì)利用聚集的查詢的重寫工作包含替換表名和關(guān)鍵字列。
對(duì)于某個(gè)給定的查詢,在選擇星型模式時(shí),要獲得最理想的性能,就需要考慮采用在事實(shí)表中具有行數(shù)最少并且能夠回答查詢的聚集星型模式。
僅僅允許有經(jīng)驗(yàn)的開發(fā)人員擁有訪問聚集的權(quán)利。終端用戶和沒有經(jīng)驗(yàn)的開發(fā)人員僅允許訪問基本星型模式。
加載聚集
圍繞性能的原則開展設(shè)計(jì)工作,從原始星型模式構(gòu)建聚集模式是有意義的,如果發(fā)生類型1變化,將導(dǎo)致增量式維度聚集更加困難。
通過采用一致性的概念指導(dǎo)聚集設(shè)計(jì),能夠保證匯總獲得一致的結(jié)果,并使重寫查詢的過程變得盡可能簡(jiǎn)單。有助于保持ETL過程的簡(jiǎn)單。
將聚集表的來源定義在基本星型模式上可以確保結(jié)構(gòu)和內(nèi)容的一致性。
ETL過程中采用的表加載示例
加載基本維度加載一致性上鉆加載基本事實(shí)表加載聚集事實(shí)表
類型1變化
當(dāng)基本數(shù)據(jù)和聚集被順序加載時(shí),若發(fā)生類型1變化,則需要重新加載聚集,而不是對(duì)其進(jìn)行增量更新。
基本模式被更新后,刪除并重新建立聚集。這種方法通常要做的處理工作少,一些工具以此方式自定建立聚集表或者多維數(shù)據(jù)集在聚集時(shí)不使用類型1屬性,類型2變化不會(huì)引起類似的問題,因?yàn)椴粫?huì)改變先前記錄事實(shí)的環(huán)境。
作為聚集的多維數(shù)據(jù)集
當(dāng)采用多維數(shù)據(jù)集存儲(chǔ)維度設(shè)計(jì)時(shí),為獲得高性能,其數(shù)據(jù)集已經(jīng)警醒過優(yōu)化,因此沒有必要匯總多維數(shù)據(jù)集。
多數(shù)體系結(jié)構(gòu)都采用混合使用星型模式和多維數(shù)據(jù)集的方式。星型模式易于拓展,而多維數(shù)據(jù)集易于獲得高性能。最佳的方法是利用星型模式存儲(chǔ)粒度數(shù)據(jù),細(xì)節(jié)數(shù)據(jù),而多維數(shù)據(jù)集包含高性能的獲取結(jié)果。這一安排十許多數(shù)據(jù)倉(cāng)庫(kù)實(shí)現(xiàn)獲得成功的基礎(chǔ),由于都具有維度特性,多維數(shù)據(jù)集和星型模式存在天然的親和性。多數(shù)維度產(chǎn)品都被建立成為支持從基本星型模式構(gòu)建和設(shè)計(jì)多維數(shù)據(jù)集的方式。
使聚集不可見
聚集模式與數(shù)據(jù)庫(kù)索引類似,與索引一樣,為使查詢更加快捷,聚集模式需要占用一些額外的空間。在利用聚集時(shí)需要重寫查詢,需要加載和維護(hù)聚集,同時(shí)保持聚集于原始模式的同步。
聚集導(dǎo)航
聚集導(dǎo)航能力消除了再編寫查詢時(shí),需要開發(fā)人員選擇基本星型模式或是一個(gè)或多個(gè)聚集的需要。工具以不同的方式、以結(jié)構(gòu)的不同部分提供此種能力。聚集導(dǎo)航還能夠提供其他額外的好處。
用戶很難選擇使用哪個(gè)星型模式組合,所以一般不對(duì)終端用戶開放聚集,但是,也因此用戶構(gòu)建報(bào)表時(shí)不能獲得聚集所帶來的的性能方面的好處。
聚集導(dǎo)航是通用的來描述選擇基本星型模式還是一個(gè)或多個(gè)聚集的術(shù)語,完成這種服務(wù)的軟件產(chǎn)品或功能通常被稱為聚集導(dǎo)航。
其他潛在的好處
隨意改變聚集,如果沒有聚集導(dǎo)航器,在查詢中就需要清楚地寫明如何利用聚集。在數(shù)據(jù)庫(kù)中增加新的聚集時(shí),若要利用它,則需要重寫已經(jīng)存在的查詢與報(bào)表。并且使隨時(shí)添加和刪除聚集成為可能,當(dāng)從數(shù)據(jù)庫(kù)增加或者刪除聚集時(shí),不需要重新考慮存在的報(bào)表,聚集導(dǎo)航器可以意識(shí)到發(fā)生的變化。離線或在線放置聚集,它可以提供按需使聚集離線的能力,在重建或刷新聚集時(shí),聚集離線時(shí),聚集不可用使性能降低,但是不會(huì)停止工作異構(gòu)數(shù)據(jù)庫(kù),聚集導(dǎo)航器不只是簡(jiǎn)單重寫SQL,還需要將其定向到不同的物理數(shù)據(jù)庫(kù)上,這些數(shù)據(jù)庫(kù)可能來自不同的提供商,或者需要將sql轉(zhuǎn)換成另外一種語言,極大地?cái)U(kuò)展了解決方案的靈活性。異構(gòu)前端,理想的聚集導(dǎo)航工具將會(huì)重寫所有查詢,無論查詢是由商業(yè)智能工具,還是報(bào)表工具或命令行SQL實(shí)用程序提供的。
建立聚集和維護(hù)聚集
不可見聚集的另一部分是處理聚集的自動(dòng)構(gòu)建和維護(hù)工作。
建立聚集星型模式或聚集多維數(shù)據(jù)集工具通常會(huì)提供用戶界面,開發(fā)人員可以利用該節(jié)點(diǎn)定義所需聚集的特征。聚集或多維數(shù)據(jù)集的建立工具通常是按照對(duì)星型模式和維度數(shù)據(jù)來建立的,這些產(chǎn)品能理解諸如事實(shí)、維度、代理鍵、自然鍵、緩慢變化等概念。
允許數(shù)據(jù)庫(kù)管理系統(tǒng)維護(hù)聚集結(jié)構(gòu)有時(shí)需要放棄對(duì)聚集維護(hù)和更新的完全控制,為了精確控制,如果不愿使用這種自動(dòng)化方法,通常將建立和維護(hù)聚集工作放在ETL過程中。
層次和聚集
屬性層次表示了一種存在于維度表數(shù)據(jù)中的主從關(guān)系,與屬性間的父子關(guān)系不需要鉆取數(shù)據(jù)一樣,他們也不需要定義匯總層次。然而多數(shù)公戶建立的聚集表火多維數(shù)據(jù)集都能夠支持層次,在此情況下,圍繞這些關(guān)系定義并文檔化聚集可能會(huì)具有價(jià)值。
可選的匯總設(shè)計(jì)方案
遵循基本模式的維度聚集只是組織匯總存儲(chǔ)的一種方式,并且單一表設(shè)計(jì)可能會(huì)帶來麻煩。
對(duì)基本星型模式進(jìn)行轉(zhuǎn)換和匯總是一種導(dǎo)出模式而不是聚集,他也能夠提供有用的性能好處,利用導(dǎo)出模式的查詢與利用基本模式的查詢?cè)诮Y(jié)構(gòu)上存在區(qū)別。
單一事實(shí)表設(shè)計(jì)的目的是通過將匯總數(shù)據(jù)和細(xì)節(jié)數(shù)據(jù)存儲(chǔ)在一起,而不是分別放在不同表中來簡(jiǎn)化聚集的存儲(chǔ)。不要在同一表中存儲(chǔ)不同層次的聚集,如果這樣做,將會(huì)導(dǎo)致雙重靜思園或者更糟糕的事。需要避免雙重計(jì)算。
柚子快報(bào)邀請(qǐng)碼778899分享:數(shù)據(jù)倉(cāng)庫(kù)——聚集
好文推薦
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。