关于如何在星型模式中建模许多半布尔属性的问题

时间:2017-04-20 20:41:05

标签: data-warehouse business-intelligence dimensional-modeling star-schema fact

对37种不同属性/"检查点"进行建模的最佳方式是什么? (对于星型模式的维度,可以将其评级为“通过/失败/不适用”),其中事实表中的每一行都是针对相关检查点进行评级的通信?

TL; DR:

我开发了一个星型模式模型,其中事实表中的每一行都是单个通信。这些通信经过一系列评分"检查" (例如"发布时间","更正电子邮件主题"," XYZ内容正确复制"等),每个检查可以评分为"通过","错过"或"不适用"。

不同类型的通信在不同的检查集上评分(例如,一种类型的通信只能在三个检查中分级,其余类型为"不适用"而另一种类型的通信在19检查)。总共有37项独特检查。

我已经建立了一个" CommunicationGrading"键入2缓慢变化的维度,以便于报告哪些"检查"通讯得分最差。维度有37列,每个属性一个,每行是属性的排列和他们可以接收的分数(通过/失败/ NA)。当新的排列变得可用时添加新行 - 填充所有可能的排列不幸地返回数百万行,而这种方式是< 100行,更少开销。我已经创建了37个单独的措施,这些措施汇总了错过了37个单独"检查"中每一个的通信数量。

我可以在PBI中快速构建一个树形图,在那里拖动37个测量值,查看错过每个的通信总数#"检查",并确定本月X#通信错过了Y检查点。当我想将视觉用作切片器时(例如,在树形图上选择一个检查/图块,以查看在树形图下面的表格中检查了哪些个人通信)或确定前N"检查&# 34;给出了一些数据。

据我所知,问题是因为我使用了37个不同的属性和度量而不是一个属性和一个度量(我可以将单个度量拖动到值中,并且包含所有检查的单个属性/列)进入树形图视觉中的组字段)。问题是,我对如何最好地建模/评分维度感到困惑。它是否涉及将尺寸修剪为仅两列,一列用于检查,一列用于检查'可能的分数,然后创建一个桥表来处理M:M关系?其他想法?

1 个答案:

答案 0 :(得分:0)

你的维度(作为垃圾维度实现 - 谷歌的东西)是这样做的一种方式,尽管如果沿着这条道路走下去,我将其分解为相关检查点的多个维度,以大规模减少每个维度中的排列。它也不清楚为什么这需要是一个类型2-是否有你需要跟踪的这个维度的历史?

然而,我建议一种探索方法是在每个检查点为每个交流的得分提供一个新的事实 - 你可以有一个等级的成绩(通过,失败,不适用)和一个维度每个检查点(这只是检查点描述)。它还可以让你依靠这个事实,而不是必须有37个不同的措施。如果要保留一些汇总信息,您可能希望在通信级别保留一个事实,但这取决于您的要求。