我有一个我正在发布的SQL Server 2008 SSIS / SSAS Datawarehouse多维数据集,在这个多维数据集中我有以下内容:
Dimensions
----------
Company
Product
Sales Person
Shipped Date (time dimension)
Facts
-----
Total Income
Total Revenue
Gross
对于上述内容,我已为维度/事实数据引用设置了主要(PK)/代理(SK)密钥。
我还想包括Order Number
或Transaction Number
之类的内容,我认为这些内容适合事实表,因为每个记录的订单号都不同。如果我要创建订单号维度,那就没有多大意义,因为我会拥有与事实一样多的订单号。
现在,当我加载我的事实数据时,我会在维度上执行多个查找来获取代理键,然后我传入事实数据,也包含这些订单号和交易号{{ 1}}列,当我加载我的事实数据,但它们不能被使用,因为它们不是你可以聚合的东西所以它们不会出现在我的SSAS中,只有数值数据类型的列为事实表做(总收入,总收入等)。
我有什么办法可以让使用Cube进行过滤的人可以使用吗?
答案 0 :(得分:2)
发票编号是退化维度的理想选择。 它可以包含在您的事实表中,但不会链接到任何维度。这些类型的数字在分析中没有用,除非您想要深入研究并调查并需要将记录追溯到您的源系统,并且他们没有任何合理的维度"。 Kimball称它们为退化维度。在SSAS中,他们被称为"事实维度" http://msdn.microsoft.com/en-us/library/ms175669(v=sql.90).aspx
您实际上是将一个属性列放入事实表中,而不是维度表。
一个重要提示。在维度建模中,是的,你试图做一个具有完美形状维度的星型模式,但在实际实现时不要害怕忽略理想。 Kimball甚至说过这个,有时候你需要打破规则,并且需要注意你测试你的解决方案。如果它快,那就去做吧!如果符合Kimball理想使其变慢或增加不必要的复杂性,请避免使用它。