《資料倉儲工具箱》 第三章零售業務中的知識點彙總

2021-09-11 12:48:54 字數 2770 閱讀 6817

1.選擇業務過程

業務過程通常用行為動詞標示

由某個操作型系統支撐,如訂單和購買系統

業務過程建立獲取關鍵效能度量

業務過程通常由輸入啟用,產生輸出度量

應該將注意力放在業務過程,而不是放在功能化的部門,可以更方便的獲得一致的企業資訊

2.宣告粒度

粒度代表事實表中的每一行代表什麼

3.確定維度

維度定義的是誰,什麼時候,在哪的問題,作為聚合查詢中的查詢條件,分組條件,排序條件

4.確定事實

事實也可以理解為指標,是聚合查詢中用來聚合的字段,如pv,uv,訂單數等

確定業務過程,資料建模,不應該是資料驅動,而應該是業務驅動。

設計開發的維度模型應該標示由業務過程獲取的最詳細的原子資訊。原子粒度能提供最佳的分析靈活性,因為原子粒度可以被約束或者以任何可能的方式上捲。維度模型中的細節資料可以適應業務放比較隨意的查詢請求。

事物型別事實表通常乙個事務一行,或者乙個事務線一行。標示的是乙個事務事件,比較稀疏,但是他的數量無法**,可能會非常龐大。事務事實表返回的指標/度量通常是可加的。

在設計事務事實表初期,應該先估算一下最大表的情況,或者乙個週期內的增量數量

可以提前建立日期維度,預先儲存10年或20年的日期資訊,日期維度表中可包含日期,是否當天,所在周,月,年,假日資訊等常用資訊。不在sql的日期函式或者應用中計算出這些資訊的原因在於:首先如果關係型資料庫不能很好的處理日期型別,那麼就糟糕了;其次大多數優化器都能高效的處理多維查詢,沒必要對關聯查詢談虎色變;並且類似節日這種資訊,在sql函式中是很難計算出來的。

1.在維度建模中,一些標示應該盡可能設定的有意義,而不是0/1,y/n這種**。標示採用越有意義的值,就越能夠方便的轉換為有意義的,能夠自我解析的報表。與其在bi應用中將標示編碼成難以理解的標示,不如將其編碼成資料庫中儲存的可解釋的值。這樣他能夠對所有使用者保持一致。

2.在日期維度表中,雖然大多數屬性不會被更新,但是像iscurrentday,iscurrentmonth,isprior60days這樣的屬性可以加入到日期維度表中,並且每個對應的週期進行更新。該屬性的建立對展示當天資訊的報表有用

3.應該將time-of-day(當天時間)的資訊單獨做成一張維度表,以避免在日期維度中執行行計算的複雜性。否則,由於當天時間的加入,日期維度表的數量可能會急劇膨脹。

1.扁平化多對一層次

在維度建模中,不需要將重複的值分解到另乙個規範化的表中以節省空間。因為對比針對事實表的空間需求來說,維度表空間需求要簡單的多。例如乙個產品表有30000行記錄,其中有50個產品分類,那麼平局來說這個表的產品分類屬性會有6000個重複值,按照3nf正規化,應該建立一張產品分類表儲存這50個分類。但是在維度表中,這6000個重複值相對於上億的事實表來說根本不算什麼,如果建立產品分類表,那麼以為著更多的關聯查詢,節省了一點點的空間卻浪費了相當大的查詢效能。

將重複的低粒度值保持在主維度表中是一種基本的維度建模技術。規範化這些值將其放入不同的表將難以實現簡單化和高效能的目標

2.具有內嵌含義的屬性

應該將維度表中自然鍵的每一部分所表示的含義儲存到維度表中。例如sku(產品統一編碼)中的第5-9個字元示的是製造商,則應該將製造商這個屬性放入維度表

3.作為屬性或事實的數字值

不要在事實表中使用空值鍵。正確的設計應該是在對應維度表中包括一行以表示該維度不可用於度量。

操作型事務空值號碼,如訂單號,發票號,提貨單號碼通常產生空的維度並且表示為事務事實表中的退化維度。退化維度是沒有對應維度表的維度鍵。

**維度通常被認為是一種因果維度,因為他描述了認為可能導致產品銷售發生改變的因素

無事實的事實表,通常沒有度量結果,僅僅包括所有鍵之間的關係。不過為了便於計算,可以包括虛擬事實,如新增某一列,使得其常量值為1。

**鍵簡單的以自增的整數表示。**建的作用僅僅就是連線事實表和維度表。資料倉儲中事實表和維度表的連線應該盡可能的使用無意義的**建。應該避免使用自然鍵作為維度表的主鍵。

使用**建的優點有如下幾點:

1.為資料倉儲抵禦操作性系統的變化。在許多組織中,歷史的操作型**,例如不活躍使用者的使用者編號,會在一定時間內被重新分配。但是對 dw/bi系統中,資料通常會被儲存多年,**鍵為資料倉儲提供了一種機制,用於區分同乙個操作型**的不同例項

2.整合多個源系統。**鍵能夠確保從多個不同源系統中整合資料,通過後端整理,建立交叉應用對映可以將多個自然鍵連線為乙個**鍵

3.改進效能。**鍵是盡可能乙個小的整數,這使得事實表的索引非常小,可以大大提高關聯查詢效能

4.處理空值和未知條件。可以使用特殊的**鍵來代表空值

5.支援維度屬性變化跟蹤。同乙個自然鍵可能有多個不同的歷史版本,這時候使用**鍵就可以很好的進行區分

自然鍵一般被建模為維度表的屬性,他具有明確的業務意義,由業務系統進行生成

在跟蹤維度表屬性變化時,重要的是能夠確定個識別符號用於唯-地和可靠地區分維度實體的屬性變化。持久的超自然鍵被dw/bi系統控制並在系統生命週期中保持不變。類似維度**鍵,它是一種簡單的整數序列分配方法。持久的超自然鍵被當成維度屬性處理,它不能作為維度表的**主鍵的替換方式。

資料倉儲ETL工具箱 元資料

由於etl是資料倉儲得核心,時常承擔著管理和儲存資料倉儲大量元資料得職責。在資料倉儲中etl處理程式是元資料最重要得建立者 資料沿襲。資料沿襲追蹤資料從源系統和檔案中得請確位置直到最終被裝載之前。資料血統包括資料庫系統的資料定義和在資料參考古中最終靜止狀態。元資料分為後台元資料和前端元資料,後台元資...

資料倉儲工具箱讀書筆記01 基礎

1.4 kimball的dw bi架構 1.5 其他dw bi架構 資訊 或者說是資料 一般有兩個目的 記錄操作 操作型系統 指定決策 dw bi系統 操作性系統一般一次只處理乙個事務 獲取訂單 記錄問題等 如果要優化方向在於讓其更快的處理事務,因此不必維護歷史資料,只需要修改資料來反映最新的狀態即...

第三章 工具和資源

第三章 工具和資源 技巧33 熟悉ping實用工具 1 ping 得名於潛艇聲吶的發生,沒有相關的知名埠 把自己的程序id放在identifier欄位中,便於區分屬於自己的響應,相當於埠號的作用 rtt波動意味著網路負載的變化 技巧34 學習使用tcpdump或類似的工具 1 使用 不帶引數,抓取並...