识别数据仓库设计中的事实表
Posted
技术标签:
【中文标题】识别数据仓库设计中的事实表【英文标题】:Identifying the fact table in data warehouse design 【发布时间】:2015-07-14 21:21:10 【问题描述】:我正在尝试使用包含有关帮助台服务调用信息的 Excel 表中的星型模式设计我的第一个数据集市,该表包含 33 个字段,包括不同的信息,我无法识别事实表,因为我想要稍后根据不同的 KPI 进行报告。 我想知道如何轻松识别事实表度量,我还有另一个问题是:事实表可以只包含维度的外键而没有度量吗?在此先感谢大家,并为我的英语不好感到抱歉。
【问题讨论】:
【参考方案1】:您可以拥有多个事实表。
事实表表示您要分析的事件或过程。
事实表的结构取决于您尝试分析的过程或事件。
您需要告诉我们您想要分析的事件或流程,然后我们才能进一步帮助您。
事实表可以只包含维度的外键而不包含度量吗?
是的。这称为factless fact table。
假设您要对调用进行基本分析:
您的完整表格可能如下所示
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 维度表。
Agile Data Warehouse Design 是一本好书,Kimball 的书也是。
【讨论】:
非常感谢,我还有一个问题:我们可以在事实表中存储一些计算的度量吗? 非常感谢,您的回答很有帮助【参考方案2】:一般来说,我所做的方式(并且有很多方法可以做任何事情)是在事实表中使用 FKey 引用分类数据,但是您想要对其执行聚合的任何内容(通常因为数据类型 $/integers/doubles 等)也可以在事实表中。例如,事实表可能包含类型的层次结构,例如 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
几年前的某个时候,我确实有一个没有度量列的事实表...因为我唯一的度量是基于计数的,我会通过在事实表中对不同维度进行分组来动态地做到这一点。
【讨论】:
非常感谢,我还有一个问题:我们可以在事实表中存储一些计算的度量吗?以上是关于识别数据仓库设计中的事实表的主要内容,如果未能解决你的问题,请参考以下文章