关于如何在星型模式中建模许多半布尔属性的问题
Questions on how to model many semi-boolean attributes in a star schema
在星型模式的维度中建模 37 个不同属性/"checkpoints"(可以分级为 Pass/Fail/Not 适用)的最佳方法是什么,其中每一行在事实 table 是根据相关检查点评分的通信吗?
长话短说:
我开发了一个星型模式模型,其中事实 table 中的每一行都是一次通信。这些通信经过一系列分级 "checks"(例如 "Posted on Time"、"Correct Email Subject"、"XYZ content copied correctly" 等),并且每次检查都可以分级为 "Passed"、"Missed",或 "Not Applicable"。
不同类型的通信根据不同的检查集进行评分(例如,一种类型的通信可能仅根据 3 次检查进行评分,其余为 "Not Applicable",而另一种类型的通信根据 19 次检查进行评分) .总共有 37 个唯一检查。
我已经构建了一个 "CommunicationGrading" 类型 2 缓慢变化的维度,以便于报告哪些 "checks" 通信得分最差。该维度有 37 列,每个属性一列,每行是属性及其可以获得的分数的排列 (pass/fail/NA)。当新的排列可用时添加一个新行 - 不幸的是填充所有可能的排列 returns 数百万行,而这种方式 < 100 行,开销少得多。我创建了 37 个单独的度量,汇总了 37 个单独的 "checks".
中每一个丢失的通信数量。
我可以在 PBI 中快速构建一个树状图,将 37 个度量拖到那里,查看每个 "check" 错过的通信总数,并确定本月 X # 个通信错过了 Y 个检查点。当我想将视觉对象用作切片器时,问题就来了(例如,在树状图上选择 check/tile 以查看在树状图下方的 table 中检查错过了哪些个人通信)或确定前 N 个"checks" 给定一片数据。
据我所知,问题是因为我使用了 37 个不同的属性和度量,而不是一个属性和一个度量(我可以将单个度量拖到值中,而单个 attribute/column 包含所有检查树状图可视化中的组字段)。问题是,我对如何最好地建模 this/the 评分维度感到困惑。它是否涉及将维度缩减为仅两列,一列用于检查,一列用于检查的可能分数,然后创建一个桥梁 table 来处理 M:M 关系?其他想法?
你的维度(作为垃圾维度实现 - google 的东西)是一种方法,但如果沿着这条路走下去,我会把它分解成相关检查点的多个维度以大量减少每个中的排列。还不清楚为什么这需要是类型 2-是否有您需要跟踪的此维度的历史记录?
不过,我建议探索的一种方法是在每个检查点为每个通信的分数设置一个新事实 - 您可以有一个维度的成绩结果(通过、失败、不适用)和一个维度的每个检查点 (这只是检查点描述)。它还可以让您依靠这一事实,而不必采用 37 种不同的措施。如果要保留一些汇总信息,您可能希望在通信级别保留事实,但这取决于您的要求。
在星型模式的维度中建模 37 个不同属性/"checkpoints"(可以分级为 Pass/Fail/Not 适用)的最佳方法是什么,其中每一行在事实 table 是根据相关检查点评分的通信吗?
长话短说:
我开发了一个星型模式模型,其中事实 table 中的每一行都是一次通信。这些通信经过一系列分级 "checks"(例如 "Posted on Time"、"Correct Email Subject"、"XYZ content copied correctly" 等),并且每次检查都可以分级为 "Passed"、"Missed",或 "Not Applicable"。
不同类型的通信根据不同的检查集进行评分(例如,一种类型的通信可能仅根据 3 次检查进行评分,其余为 "Not Applicable",而另一种类型的通信根据 19 次检查进行评分) .总共有 37 个唯一检查。
我已经构建了一个 "CommunicationGrading" 类型 2 缓慢变化的维度,以便于报告哪些 "checks" 通信得分最差。该维度有 37 列,每个属性一列,每行是属性及其可以获得的分数的排列 (pass/fail/NA)。当新的排列可用时添加一个新行 - 不幸的是填充所有可能的排列 returns 数百万行,而这种方式 < 100 行,开销少得多。我创建了 37 个单独的度量,汇总了 37 个单独的 "checks".
中每一个丢失的通信数量。我可以在 PBI 中快速构建一个树状图,将 37 个度量拖到那里,查看每个 "check" 错过的通信总数,并确定本月 X # 个通信错过了 Y 个检查点。当我想将视觉对象用作切片器时,问题就来了(例如,在树状图上选择 check/tile 以查看在树状图下方的 table 中检查错过了哪些个人通信)或确定前 N 个"checks" 给定一片数据。
据我所知,问题是因为我使用了 37 个不同的属性和度量,而不是一个属性和一个度量(我可以将单个度量拖到值中,而单个 attribute/column 包含所有检查树状图可视化中的组字段)。问题是,我对如何最好地建模 this/the 评分维度感到困惑。它是否涉及将维度缩减为仅两列,一列用于检查,一列用于检查的可能分数,然后创建一个桥梁 table 来处理 M:M 关系?其他想法?
你的维度(作为垃圾维度实现 - google 的东西)是一种方法,但如果沿着这条路走下去,我会把它分解成相关检查点的多个维度以大量减少每个中的排列。还不清楚为什么这需要是类型 2-是否有您需要跟踪的此维度的历史记录?
不过,我建议探索的一种方法是在每个检查点为每个通信的分数设置一个新事实 - 您可以有一个维度的成绩结果(通过、失败、不适用)和一个维度的每个检查点 (这只是检查点描述)。它还可以让您依靠这一事实,而不必采用 37 种不同的措施。如果要保留一些汇总信息,您可能希望在通信级别保留事实,但这取决于您的要求。