结构化的,有固定的模式(schema),查询更高效
以下是每种常见数据仓库模型的具体举例:
1. 星型模型(Star Schema)
- 示例: 假设我们有一个电商数据仓库,需要分析销售数据。
- 事实表:
Sales
| Sales_ID | Date_Key | Product_Key | Customer_Key | Sales_Amount | Quantity |
|---|
| 1 | 20230101 | 101 | 201 | 200 | 2 |
| 2 | 20230101 | 102 | 202 | 150 | 1 |
| Date_Key | Date | Month | Year |
|---|
| 20230101 | 2023-01-01 | 1 | 2023 |
| Product_Key | Product_Name | Category |
|---|
| 101 | Laptop | Electronics |
| Customer_Key | Customer_Name | Region |
|---|
| 201 | Alice | USA |
2. 雪花模型(Snowflake Schema)
- 示例: 假设我们继续使用电商数据仓库,但这次我们对维度表进行了规范化。
- 事实表:
Sales
| Sales_ID | Date_Key | Product_Key | Customer_Key | Sales_Amount | Quantity |
|---|
| 1 | 20230101 | 101 | 201 | 200 | 2 |
- 维度表:
- Date(同星型模型)
- Product(规范化,拆分为
Product 和 Category):
- Product:
| Product_Key | Product_Name |
|---|
| 101 | Laptop |
| Category_Key | Category_Name |
|---|
| 1 | Electronics |
- Customer(规范化,拆分为
Customer 和 Region):
- Customer:
| Customer_Key | Customer_Name |
|---|
| 201 | Alice |
| Region_Key | Region_Name |
|---|
| 1 | USA |
3. 星座模型(Fact Constellation Schema)
- 示例: 假设我们同时分析销售数据和库存数据。
- 事实表:
Sales:
| Sales_ID | Date_Key | Product_Key | Sales_Amount | Quantity |
|---|
| Inventory_ID | Date_Key | Product_Key | Stock_Level |
|---|
- 共享的维度表(如
Product 和 Date):
- Product:
| Product_Key | Product_Name | Category |
|---|
4. 层次模型(Hierarchical Schema)
- 示例: 假设我们在一个组织的数据仓库中分析员工的层级结构。
| Employee_ID | Employee_Name | Manager_ID | Department |
|---|
| 1 | John | NULL | Sales |
| 2 | Alice | 1 | Sales |
| 3 | Bob | 1 | Marketing |
- 其中,`Manager_ID` 表示员工的上级ID,形成了层次结构。层级关系:
- `John` 是顶层(无上级),
- `Alice` 和 `Bob` 的上级是 `John`。
5. 虚拟数据模型(Virtual Data Model)
- 示例: 假设有一个销售数据表和产品数据表,但用户并不直接存储这些数据,而是通过数据库视图(Virtual View)进行查询。
6. 平面模型(Flat Schema)
- 示例: 假设我们有一个简单的销售数据表,其中没有维度表,仅将所有数据平铺在一张表中。
| Sales_ID | Date | Product_Name | Category | Customer_Name | Region | Sales_Amount | Quantity |
|---|
| 1 | 2023-01-01 | Laptop | Electronics | Alice | USA | 200 | 2 |
| 2 | 2023-01-01 | Mouse | Accessories | Bob | UK | 20 | 5 |
在平面模型中,所有信息都存储在同一个表格中,冗余性高。