维度建模 - 模糊关系

Zep*_*pee 8 dimensional-modeling powerbi

我一直在努力解决一个问题,到目前为止,我还没有达到我所说的最佳解决方案.我有一个维度(功能)需要在其他2个维度(操作和会话)中引用,而这些维度又是从同一个事实表(UserAction)引用的.这会产生歧义,我无法完成架构:

暧昧关系 (注意:模型的剪辑,而不是整个事物)(包括桥表,以显示模型中具有多对多关系的一些增加的复杂性)

我认为问题可能在于Dim_Features在技术上在两个维度之间具有不同的含义,但我仍然试图使用它作为相同的?它意味着:

  • 动作属于此功能/特征区域
  • 会话有此功能/功能区可用(拥有)

我需要完成的是能够通过Sessions过滤/切片Fact_UserActions,其中某些功能可用/不可用,然后分析如下内容:

  • 当拥有特征'A'时使用哪些特征(如,某些特征之间的相关性,以及其他特征是否被使用)?
  • 拥有功能的用户有多少未使用过它?
  • 功能的使用频率是多少?(受拥有它的会话数量限制,即实际可以使用的会话数量)

关于我可能做错了什么,或者我如何改进模型的任何想法?

编辑:如果它有所帮助,我们想要摆脱的事情就是这样一个表:

在此输入图像描述

我们可以看到一个特征对整个人口以及拥有它的人口的影响.

Jo *_*ass 5

我认为你的问题是你的工作是错误的.对于星型模式的标准Kimball建议总是找到绝对最低的粒度,因为你总是可以聚合.

查看您希望能够回答的所有问题 - 它们都是关于功能的使用,但您用于分析功能的事实表不在功能使用级别.存在Bridge表以尝试解决此问题.

重要的是要记住,绝大多数情况下,你的维度只应间接相关,尽管事实表.有时你需要一个Bridge表,但相对很少.

在不知道它如何适应模型的其余部分的情况下,很难在这里提出建议的模式,但请考虑以下内容:

  • 用Fact_FeatureUsage替换Fact_UserAction.
  • 在Fact_FeatureUsage中有action_id,session_id和feature_id.
  • 摆脱你的桥牌桌.


Mik*_*ney 1

我会删除与 Dim_Features 的关系,然后隐藏它。

然后,我将创建两个新表(在“报告”或“数据”视图中,转到“建模”功能区并单击“新表”)。每个的 DAX 表达式类似于:

Features (Actions) = 'Dim_Features'

Features (Sessions) = 'Dim_Features'
Run Code Online (Sandbox Code Playgroud)

现在您拥有维度表的 2 个独立副本,并且您可以在“关系”窗口中创建与每个副本的关系。