数据仓库架构与维度设计基础
1. 维度设计基础
1.1 代理键与自然键
在数据仓库中,代理键(surrogate keys)和自然键(natural keys)是重要的概念。代理键在列名中通常带有“_key”后缀,例如客户维度的代理键为“customer_key”,销售人员维度的代理键为“salesperson_key”。在图示中,维度表的代理键通常作为第一个属性列出。
自然键则是在运营系统中唯一标识某事物的键列,如“customer_id”“sku”“salesperson_id”,分别用于标识特定的客户、产品和销售人员。
代理键和自然键的分离使数据仓库能够跟踪变化,即使原始运营系统无法做到。例如,运营系统中客户“ABC Wholesalers”的“customer_id”为 10711,若该客户更改总部位置,运营系统可能直接覆盖该“customer_id”的地址。但出于分析目的,可能需要跟踪该客户的历史信息。由于星型模式不依赖“customer_id”来唯一标识客户维度中的行,因此可以存储“ABC Wholesalers”的多个版本,即使它们具有相同的“customer_id”,这些版本可通过不同的代理键值区分。
1.2 事实表
星型模式的核心是事实表(fact table)。事实表除了呈现事实外,还包含指向各个关联维度表的代理键。例如,简单的订单星型模式包含“quantity_ordered”“cost_dollars”“order_dollars”等事实,以及指向产品、销售人员、客户和订单日期的代理键。
事实表中的外键有时可用于唯一标识一行,但并非总是如此。事实表的每一行存储特定详细级
数据仓库架构与星型模式设计
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



