OLAP 系統的資料倉儲綱要設計
在設計資料倉儲綱要(schema)以支持 OLAP 系統時,我們通常會選擇星型模型(Star Schema)或雪花模型(Snowflake Schema)。這兩種模型在數據倉儲設計中非常常見,且各有優劣。
(一) 採用的綱要模型:星型模型(Star Schema)
原因:
-
簡單直觀:
- 星型模型的結構簡單,事實表(fact table)位於中心,周圍圍繞著多個維度表(dimension tables),這使得數據的查詢和分析變得直觀和高效。
-
查詢效能高:
- 由於星型模型的維度表是去正規化的(denormalized),查詢時無需進行多表連接(joins),這提升了查詢效能,特別是對於大規模數據分析的應用場景。
-
易於理解和管理:
- 星型模型的結構相對簡單,維度表包含所有相關的屬性,這使得資料倉儲的設計、維護和管理變得容易。
資料倉儲綱要設計
事實表(Fact Table)
事實表名稱:Sales_Fact
| Column Name |
Description |
|---|
| Date_Key |
售出日期的鍵(外鍵) |
| Area_Key |
地區的鍵(外鍵) |
| Product_Key |
產品的鍵(外鍵) |
| Sales_Amount |
售貨金額(NUM*VALUE) |
| Sales_Quantity |
售貨數量(NUM) |
維度表(Dimension Tables)
1. 售出日期維度表(Date_Dimension)
| Column Name |
Description |
|---|
| Date_Key |
售出日期的鍵(主鍵) |
| Year |
年 |
| Quarter |
季 |
| Month |
月 |
| Day |
日 |
2. 地區維度表(Area_Dimension)
| Column Name |
Description |
|---|
| Area_Key |
地區的鍵(主鍵) |
| Area |
洲別 |
| Country |
國別 |
| City |
城市 |
3. 產品維度表(Product_Dimension)
| Column Name |
Description |
|---|
| Product_Key |
產品的鍵(主鍵) |
| Class |
產品類別 |
| Product_ID |
產品編號 |
| Product_Name |
產品名稱 |
綱要模型示例
+-----------------+
| Date_Dimension|
+-----------------+
| Date_Key |
| Year |
| Quarter |
| Month |
| Day |
+-----------------+
|
|
|
|
+----------------+ +-----------------+ +------------------+
| Area_Dimension | | Sales_Fact | | Product_Dimension|
+----------------+ +-----------------+ +------------------+
| Area_Key |---| Date_Key |---| Product_Key |
| Area | | Area_Key | | Class |
| Country | | Product_Key | | Product_ID |
| City | | Sales_Amount | | Product_Name |
+----------------+ | Sales_Quantity | +------------------+
+-----------------+
總結
採用星型模型設計資料倉儲綱要,可以簡化數據的查詢和管理過程,提高查詢效能。此模型中,每個維度表都直接連接到事實表,減少了多表連接的複雜性,特別適合用於 OLAP 系統進行高效的多維數據分析。