柚子快報(bào)邀請(qǐng)碼778899分享:數(shù)據(jù)倉(cāng)庫(kù)——聚集(1)
柚子快報(bào)邀請(qǐng)碼778899分享:數(shù)據(jù)倉(cāng)庫(kù)——聚集(1)
對(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ù)語(yǔ),完成這種服務(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)換成另外一種語(yǔ)言,極大地?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à)值。
網(wǎng)上學(xué)習(xí)資料一大堆,但如果學(xué)到的知識(shí)不成體系,遇到問題時(shí)只是淺嘗輒止,不再深入研究,那么很難做到真正的技術(shù)提升。
需要這份系統(tǒng)化資料的朋友,可以戳這里獲取
一個(gè)人可以走的很快,但一群人才能走的更遠(yuǎn)!不論你是正從事IT行業(yè)的老鳥或是對(duì)IT行業(yè)感興趣的新人,都?xì)g迎加入我們的的圈子(技術(shù)交流、學(xué)習(xí)資源、職場(chǎng)吐槽、大廠內(nèi)推、面試輔導(dǎo)),讓我們一起學(xué)習(xí)成長(zhǎng)!
一個(gè)人可以走的很快,但一群人才能走的更遠(yuǎn)!不論你是正從事IT行業(yè)的老鳥或是對(duì)IT行業(yè)感興趣的新人,都?xì)g迎加入我們的的圈子(技術(shù)交流、學(xué)習(xí)資源、職場(chǎng)吐槽、大廠內(nèi)推、面試輔導(dǎo)),讓我們一起學(xué)習(xí)成長(zhǎng)!
柚子快報(bào)邀請(qǐng)碼778899分享:數(shù)據(jù)倉(cāng)庫(kù)——聚集(1)
相關(guān)閱讀
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。