首先,这是非常非常简单的数据仓库,我只想问下面的具体问题。
情景:
我有一个事实表FactSales和2个维度:DimShop和DimProduct,它们彼此分开并直接连接到事实表。有些商店可以销售特定产品,反之亦然,有些产品可以在特定商店进行销售。这给了我们很多很多关系。问题是,当我尝试切割我的立方体时,我得到了商店和产品之间的所有组合。
问题:
如何在SSAS中的两个独立维度之间创建具有多对多关系的层次结构?我试图使用brigde表,但我无法在SSAS中配置层次结构。它甚至可能吗?
答案 0 :(得分:1)
如果你想报道“会发生什么”而不是“发生了什么”,你需要一个单独的事实表& cube表示产品与可以销售产品的商店之间的关系。它不是真正的层次结构,因为它是多对多的。
一个简单的交叉引用事实应该没问题:
FACT_PRODUCT_SHOP
ProductID
ShopID
然后,在执行想要查看允许在哪些商店中销售哪些产品的报表时,您可以使用此事实表。销售事实只显示“实际发生的事情”。
您甚至可以将此事实修改为您的库存事实表,只需添加日期和“库存金额”和“订单金额”等。
答案 1 :(得分:1)
可以实现这样的设计,但可能效果不佳。 基本上不是事实表中的产品和商店密钥,而是需要替代密钥。 这把钥匙将是产品和商店的独特组合。这需要在ETL中准备。 在名为“商店和产品”的新维度中,在此键的顶部,您可以在同一维度中创建2个层次结构产品和商店。
另外,您还可以根据要求创建不自然的层次结构。但由于它是一个不自然的等级,它可能表现不佳。 因此,除了产品和商店层次结构之外,您还可以提供以下不自然的层次结构:商店 - >产品,产品 - >店。