
查询、建模和转换
|
267
行。最后,事实表不引用其他事实表,它们只引用维度。
让我们看一下一个基本事实表的例子(如表
8-9
所示)。在你的公司中,一个常见的问题
可能是这样的:显示每个客户每天每个订单的销售总额。事实表应该是细粒度的
—
在
这个例子中需要包含销售的订单
ID
、客户、日期和销售总额。注意,事实表中的数据类
型都是数字(整数和浮点数),没有字符串。在这个例子中,
Customer Key
等于
7
的用
户在同一天有两个订单,这反映了表的粒度。相反,事实表的键引用了不同的维度表,
如客户和日期信息等。销售总额代表销售
事件
的总销售额。
表 8-9:一个基本事实表
OrderID CustomerKey DateKey GrossSalesAmt
100 5 20220301 100.00
101 7 20220301 75.00
102 7 20220301 50.00
维度表
。
Kimball
数据模型中的第二种类型的表是
维度表
。维度表为存储在事实表中的
事件提供参考数据、属性和关系上下文。维度表比事实表小(形状相反),通常是宽而
短。当连接到事实表时,维度可以描述事件的内容、地点和时间。维度是去范式化的,
有可能出现重复的数据。这在
Kimball
数据模型中是允许的。让我们来看看前面事实表
例子中提到的两个维度。
在
Kimball
数据模型中,日期通常被存储在一个日期维度中,允许你在事实和日期维度
表之间引用日期键(
DateKey
)。通过日期维度表,你可以很容易地回答这样的问题:“我
在
2022
年第一季度的总销售额是多少 ...