代理密钥是一种机制,在我们的书中存在了多年,我讨厌再次讨论。每个人都在谈论使用代理密钥而不是业务密钥的好处。甚至和模型也在使用代理键。上述两个平台都提供了使用一个列连接维度和事实的能力,因此是一个代理键,因为在现实生活中很难有一个单一的业务密钥。
最近几年作为BI架构师,我在Analysis多维和表格中工作,我有多维项目,每晚在DataWarehouse中管理高达500 to的项目。我面临着从5-6个工会和8-10个有着数百万记录的表格中加入的事实。
这里有一个问题,使用代理键,为了能够知道维度键,我们需要做一个额外的连接。因此,如果我们想要将N维(在构造表达式中尚未与事实相关联)与单个事实“关联”,那么我们需要DataWarehouse中的N个附加连接。
让我们以前面的例子为例,对于这个特殊的事实,我们需要5-6个联合+ (8-10 + N)连接,它增加了复杂性,一旦我们需要将这个事实和10-15维关联起来,就可以得到代理键。
这些年来,我一直试着用我早期的咖啡来阅读我的事实表达式,比如阅读报纸,删除未使用的专栏,工会,加入,以及做任何事情来降低复杂性,以节省ETL处理时间。
它完全理解我们将节省查询DataWarehouse和语义层的时间,但是ETL呢,我遗漏了什么?
发布于 2020-10-29 10:22:00
一些关于你的问题的想法..。
如果您不使用SKs,那么您将如何处理来自源系统的自然/业务键(即使是单个列)不会唯一的维度?
。
https://stackoverflow.com/questions/64587765
复制相似问题