是否可以在不相关的维度属性之间创建用户定义的层次结构?

时间:2013-05-28 18:42:19

标签: sql-server-2012 ssas business-intelligence

我正在努力寻找一个BI解决方案,我试图在“客户”维度中创建一个层次结构,或多或少地复制我所知道的最终用户将会做的事情。

客户端维度表与其他表有3个外键关系,这些关系中的每一个都是独立的。它们是角色,服务类型和状态。

每当使用这个维度时,它几乎总是首先使用Role属性,所以我尝试创建像Role这样的层次结构 - >服务类型 - >客户。现在,当我尝试使用此设置进行处理时,我收到错误“无法根据数据源视图中的关系访问连接所需的表”

有没有办法用这样的不同属性创建层次结构?

1 个答案:

答案 0 :(得分:1)

不可能以这种方式在多个维度之间构建一个彼此无关的层次结构。

一种选择是将架构重构为Star架构而不是Snowflake架构。如果这不是一个选项,根据您可能能够在SSAS或SQL Server中的视图中构建查询的详细信息,然后从中创建SSAS中的维度。

根据给出的信息,很难判断角色,服务类型和状态是否应该在单独的表中,但要好好考虑一下。您想要从中使用的属性是否实际上是客户端的属性?这样做可以让你摆脱一些表和/或减少雪花的数量?请记住,维度模型与普通关系模型有很大不同:目标是保持连接数较低,如果效率更高,则可以接受在不同表中重复属性。当然,有时重组并不是一个现实的前景,而查询或视图可能会对解决这个问题有用。

我自己最近一直在学习SSAS,并且发现当我努力在SSAS中工作时,问题往往是基础架构没有以最佳方式设置我正在尝试完成。

(道歉,如果这有点模糊,但如果不知道数据的性质就很难更详细,我还没有能力发表评论并要求提供更多信息!)

相关问题