应该"计算"度量存储在事实表中?

时间:2015-05-22 19:28:14

标签: data-warehouse dimensions fact-table datamart

我有一个事实表,其中包括"等待时间(以小时为单位)"对于某些服务。我有很多维度可以描述基于不同切片的等待时间;但是,我也有兴趣了解有多少人(计数)通过相同尺寸的过滤器来获得服务。

考虑到以小时为单位的等待时间的维度和获得服务的人数完全相同,我认为将它保存在同一个事实表中是最佳做法。我的问题是:

  1. 上面提到的计数指标是否应该有不同的事实表?
  2. 我如何包含此措施?我只是在每一行中加1吗?因为无论等待时间如何,他们只获得了一次服务(在我的方案中你不能超过/低于1)。

1 个答案:

答案 0 :(得分:1)

1)考虑现有事实表的粒度。听起来这可能是“一个人接受服务的场合”。如果那是你想要计算的东西,那么是 - 等待时间和计数是相同的。

然而,尽管它们可能是相同的颗粒,但可能不需要在表格中添加任何内容。阅读第2点以获得解释。

2)你可以在每一行的一列中加1,但我不确定你从中获得了什么。你还没有说过哪些工具会消耗这些数据,但是你应该可以进行某种计数/不同计数。

在您标记SSIS的基础上工作,因此很可能使用Microsoft的BI堆栈:

  • TSQL有count(),您可以count(distinct [column])
  • SSAS将计数和不同计数都作为聚合类型。
  • MDX提供多种不同类型的计数。
  • SSRS有Count,CountDistinct和CountRows。

您是否进行正常计数或不同计数将取决于您是否尝试询问“有多少人使用此服务?”“有多少不同人们使用此服务?“