没有指向事实表的任何链接的维度
Posted
技术标签:
【中文标题】没有指向事实表的任何链接的维度【英文标题】:Dimensions without any link to the fact table 【发布时间】:2017-04-07 03:51:30 【问题描述】:我目前正在设计一个维度模型,其中有像
这样的维度订单、产品、发货、退货、物品。
我的目标是计算日级别的指标并填充事实表。
指标是每天的订单数、每天的总销售额、每天的总净销售额。
我已经设计了维度,我面临的问题是如何设计我的事实表。由于我只需要这三个指标,因此我希望我的事实表在我的事实表中具有以下四个字段以获得更好的性能。
但我担心的是,如果我在不连接到事实表的情况下将维度隔离开,是否可以?
请就此向我提出建议。任何帮助,将不胜感激。谢谢你。
【问题讨论】:
我不确定我是否理解。如果维度不连接到事实表,它们会做什么?如果您可以添加您的表格设计,也许还有一些示例记录,它将帮助我们回答您的问题。 这不是事实表,它只是一个(简单的)报告。这是在没有过滤产品、装运、退货和选择日期维度的情况下查询事实表的结果。不连接维度意味着你只能做这个报告,这确实是一个非常糟糕的dwh。 如果您的意思是“我是否需要定义外键关系”,那么不,您不需要,尽管许多人仍然选择这样做。 数据仓库中不需要外键。参照完整性可以由您的 ETL 处理。这也允许热交换尺寸 我想@Teja 想知道我如何报告一个没有订购任何东西(因此在 Fact 表中没有订单记录)但存在于 Dimension 表中的新客户?是这样吗? 【参考方案1】:如果您只想计算指标,例如 - 每天的订单数、每天的总销售额、每天的总净销售额。您可以直接从事务表中执行此操作。
如果您在进行维度建模,您的事实表应该有详细的细节,在您的情况下,它应该订购行项目。您必须将维度与事实相关联,以便您可以在不同级别执行聚合,并对已聚合的数据进行切片/切片以显示详细信息。
现在,如果您执行了上述所有操作,但仍希望在每日级别显示订单计数和总销售额/净销售额总和的指标,那么您可以为此目的创建一个汇总表。仅当您希望它被预先计算时才聚合表,否则您可以对 Fact 本身进行聚合并获得结果。一般来说,您的实际用例场景可能有助于进一步解释。
【讨论】:
以上是关于没有指向事实表的任何链接的维度的主要内容,如果未能解决你的问题,请参考以下文章