您可以拥有多个事实表。
事实表表示要分析的事件或进程。
事实表的结构取决于您尝试分析的过程或事件。
在我们进一步帮助您之前,您需要告诉我们您要分析的事件或流程。
事实表是否只包含维度的外键和没有度量?
是。这被称为a 事实上的事实表 。
假设您想对呼叫进行基本分析:
您的全表可能如下所示
CALL_ID START_DATE DURATION AGENT_NAME AGENT_TENURE (how long worked for company) CUSTOMER_NAME CUSTOMER_TENURE (how long a customer) PRODUCT_NAME (the product the customer is calling about) RESOLVED
你会把它变成这样的事实表:
CALL_ID START_DATE_KEY AGENT_KEY CUSTOMER_KEY PRODUCT_KEY DURATION (measure) RESOLVED (quasi-measure)
您将拥有DATE维度表,AGENT维度表,CUSTOMER维度表和PRODUCT维度表。
敏捷数据仓库设计 是一本好书,Kimball也是如此。
一般来说,我已经完成它的方式(并且有很多方法可以做任何事情)是分类数据在事实表中用FKey引用,但是你想要执行聚合的任何东西(通常作为数据类型) $ /整数/双精度等)也可以在事实表中。因此,例如,事实表可能包含类型的层次结构,例如product_category>> product_name,它通常还包含时间和/或位置字段;所有这些都将由FKEY引用到查找表。度量列通常是基于整数或货币数据,并用于由其他字段分组的聚合函数,如下所示:
select sum(measureOne) as sum, product_category from facttable where timeCol between X and Y group by product_category...etc
几年前的某个时候,我确实有一个没有度量栏的事实表...因为我唯一的衡量标准是基于计数,我会通过对事实表中的不同维度进行分组来动态完成。