对BI的维度度量的思考

时间:2011-11-22 15:09:22

标签: ssas data-warehouse

我正在与一位顾问合作,他建议创建度量维度,然后将度量维度键添加到事实表中。

我可以通过添加行而不是在事实表中物理创建列来了解如何更轻松地添加新度量。我还可以看到这可以如何为ETL过程添加工作,为星型模式添加另一个连接,事实表中的一个通用列来保存所有度量数据等。

我对其他人如何应对这种情况感兴趣。我们目前有近20项措施。

2 个答案:

答案 0 :(得分:3)

本能地,我不喜欢它:它是EAV模型,它不是很受欢迎(你可以谷歌的原因)。

  • EAV模型通常被认为是查询和维护的难题
  • 不同的措施与不同的维度相结合;这种方法可以很容易地变成“一切事物的巨大事实表”,而不是特定报告区域的多个较小的事实表
  • 我怀疑你最终会创建视图,无论如何都会出现多个事实表
  • 您将把事实表中的行数乘以度量数,从而产生更大的物理表
  • 即使使用了良好的索引/分区方案,包含多个度量的查询也必须读取更多行才能获取数据
  • 不同数据类型的措施怎么样?
  • 报告工具是否可以轻松支持此功能?

我确定还有其他问题,但这些问题会立即浮现在脑海中。根据经验,如果有人在任何情况下建议进行EAV实施,您应该非常谨慎,并确切地询问它们提供的优势以及随着数据和复杂性的增加将如何进行管理。但我认为你已经确定了一些值得关注的关键领域。

答案 1 :(得分:1)

SSAS会做到这一点,我知道一个主要的保险政策管理软件供应商提供了M.I.他们的系统的解决方案就是这样的。您可以从该方法中获得一些灵活性,因为您可以添加度量而无需部署多维数据集的构建,但是对于20个度量,我认为您不必担心这一点。

'措施'本质上是另一个维度(在文档中通常也称为“维度”)。我相信SSAS在幕后使用了一个主要面向列的结构。

然而,这种方法的天真应用确实会出现一些问题,可能会或多或少地引起你的兴趣。

  • 您只有一个度量,[值],[金额]或其他任何值。如果您的工具不允许您在前端注入计算的度量,那么您无法对整个数据集中的某个属性类型的值进行排序。 ProClarity和报告生成器> = 2.0将执行此操作,但Excel不会。

  • 您不能以这种方式执行比率或其他计算度量。您必须将它们嵌入到多维数据集脚本中(意味着您需要部署构建以添加它们)或使用允许您在客户端中定义它们的工具。

  • 虽然它不会对多维数据集产生很大的差异,但在数据库上查询并增加存储要求会很慢。查询数据库也很繁琐。