数仓建模之声明粒度 一文读懂什么是粒度 看完保证通透!
聲明粒度
粒度是說明事實表的每一行表示什么,比如:用戶下單的內容放到訂單事實表的每一行中 這里的關鍵是粒度的描述 不能將維度列出來 而代替粒度聲明 這一步特別容易被忽略 粒度聲明需要達到共識 否則極有可能到下面三四步后返工重來
1 確定數據粒度的基本準則
數據粒度是指數據倉庫中保存數據的細化或綜合程度。數據倉庫中包含大量數據表,這些數據表中的數據以什么粒度來存儲,會對信息系統的多方面產生影響。在做 數據倉庫設計時,設計者確定以數據的什么層次作為粒度的劃分標準,將直接影響到數據倉庫中數據的存儲量及查詢質量,并進一步影響到系統是否能滿足最終用戶 的分析需求。一般情況下,根據數據粒度劃分標準可以將數據倉庫中的數據劃分為:詳細數據、輕度總結、高度總結三級或更多級。在確定數據粒度時,應注意的一 條原則是:細化程度越高,粒度越小;細化程度越低,粒度越大。確定數據粒度是數據倉庫設計的基礎,當數據粒度合理確定后,設計和實現的其他問題就會變得非 常容易,相反,如果沒有合理地確定粒度,后續的工作就會很難進行下去。
2.粒度分類
粒度問題是設計數據倉庫的一個重要方面,粒度是指數據倉庫的數據單位中保存數據的細化或綜合程度的級別。細節程度越高,粒度級別就越低。因此根據粒度數據倉庫設計分為低粒度高細節、高粒度低細節、雙粒度(兩者共存,根據不同業務不同客戶設計)。如下:
?
而要如何選擇是低粒度還是高粒度呢?
數據量總是數據倉庫中的首要問題,如果數據倉庫的空間很有限的話,用高粒度級表示數據將比用低粒度級表示數據的效率要高得多。高粒度級不僅只需要少得多的字節存放數據,而且只需要較少的索引項。然而數據量大小和原始空間問題不是僅有的應考慮的問題。為了訪問大量數據,其處理能力的大小同樣也是應考慮的一個因素。所以,在數據倉庫中數據壓縮非常有用。當數據被壓縮后就大大節省所用的存儲設備的存儲空間,節省所需的索引項,以及節省處理數據的處理器資源。但是,當提高數據粒度級時,數據壓縮就會帶來另一個問題:數據所能回答查詢的能力就會隨之降低。換句話說,在一個很低的粒度級上實際可以回答任何問題,但在高粒度級上,數據所能處理的問題的數量是有限的。總結一句話:高粒度查詢快,而低粒度可以解決的問題比較多。
在一個DSS(決策支持系統)環境中查詢總體性的問題比查詢單個事件要常見的多,它既可以在高粒度級上也可以在低粒度級上得到回答,在不同的粒度級上所使用的資源具有很大的差異。在低粒度級需要查詢每一條記錄,所以需要大量的資源來回答這個問題。但在高粒度級上,數據進行了很大的壓縮,只需要查詢很少的記錄就能得到一個答案。如果在高粒度級上包括了足夠的細節,則使用高粒度級數據的效率將會高的多。因此,在確定粒度級別時,應注意的一條原則是:細化程度越高,粒度越小;細化程度越低,粒度越大。確定數據粒度是數據倉庫設計的基礎,當數據粒度合理確定后,設計和實現的其他問題就會變得非常容易。相反,如果沒有合理地確定粒度,后續的工作就會很難進行下去。在設計和構造數據倉庫之初就必須仔細考慮這種權衡。
雙粒度-雙重級別
很多時候,用戶十分需要提高存儲與訪問數據的效率,以及非常詳細地分析數據的能力。當一個企業或組織的數據倉庫中擁有大量數據時,在數據倉庫的細節部分考慮雙重(或多重)粒度級是很有必要的。圖3表明了一家電話公司在數據倉庫的細節級上的兩種粒度級。
?
總結
以上是生活随笔為你收集整理的数仓建模之声明粒度 一文读懂什么是粒度 看完保证通透!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hyperledger v1.0.5 区
- 下一篇: pli测试50题题库_面试人员情商测试5