https://web.stanford.edu/dept/itss/docs/oracle/10g/olap.101/b10333/globdiag.gif星型模式:事實表聚合是如何執行的?
假設我們有一個開始架構如上..
我的問題是 - 在實時我們如何填充colums事實表(UNIT_PRICE,UNIT_COST)列..?
任何人都可以提供一個啓動架構表與真實數據?
我有理解星型模式很難......
請幫幫忙!..
https://web.stanford.edu/dept/itss/docs/oracle/10g/olap.101/b10333/globdiag.gif星型模式:事實表聚合是如何執行的?
假設我們有一個開始架構如上..
我的問題是 - 在實時我們如何填充colums事實表(UNIT_PRICE,UNIT_COST)列..?
任何人都可以提供一個啓動架構表與真實數據?
我有理解星型模式很難......
請幫幫忙!..
啓動模式包括兩種類型的表事實表和尺寸的。
明星設計的理想之處在於您可以將數據分爲兩部分。 靜態部分在事實表中用尺寸和動態部分(=交易)來描述。
每個事務都作爲新記錄存儲在事實表中,並連接到定義事務上下文的周圍維度。
鏈接中的示例包含兩個事實表:SHIPMENTS和PRODUCT_CONDITIONS。 請注意鏈接中的事實表被稱爲UNITS_HISTORY_FACT和PRICE_AND_COST_HISTORY_FACT,但我覺得這不是一個最佳選擇。
SHIPMENTS表通過定義的通道在某個時間向客戶存儲每次發運PRODUCT的一條記錄。 以上所有信息均使用相應尺寸的相應按鍵進行定義。 事實表中還包含描述交易屬性的MEASURES,這裏是出貨單位的數量。
事實表的結構將是因此
CUSTOMER_ID
PRODUCT_ID
TIME_ID
CHANNEL_ID
UNITS
第二個事實表(底部)是更加有趣,因爲在這裏你分成兩個部分的產品:
PRODUCT維定義ID ,名稱和其他更多靜態屬性
PRODUCT_CONDITION這是事實表,設計時期望產品的價格和成本隨時間而變化。 每次更改價格或成本時,都會在事實表中插入一條新記錄,並將其連接到PRODUCT(更改時間)和TIME(更改時間)。
事實表的結構會因此
PRODUCT_ID
TIME_ID
UNIT_PRICE
UNIT_COST
最後注意時間維度的設計。
連接事實表與維度表的最佳做法是使用無意義的ID(代理鍵),但對於TIME維度,您應該小心。對於大的(時間分區的)事實表是經常使用的自然鍵(DATE格式)能夠部署分區功能。在網頁中查看How I Defined a Time Dimension Using a Surrogate Key和其他資源的更多詳細信息。