Ssas 关于BI维度度量的思考

Ssas 关于BI维度度量的思考,ssas,data-warehouse,Ssas,Data Warehouse,我正在与一位顾问合作,他建议创建一个度量维度,然后将度量维度键添加到我们的事实表中 我可以看到,通过只添加行而不是在事实表中实际创建列,这可以使添加新度量变得更容易。我还可以看到这可以如何向ETL过程添加工作,向星型模式添加另一个连接,在事实表中添加一个通用列来保存所有度量数据等 我对其他人如何处理这种情况感兴趣。我们目前有近二十个衡量标准。出于本能,我不喜欢它:这是EAV模型,它不是很受欢迎(你可以在谷歌上搜索原因) EAV模型通常被认为是查询和维护的难题 不同的衡量标准伴随着不同的维度;这

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

我可以看到,通过只添加行而不是在事实表中实际创建列,这可以使添加新度量变得更容易。我还可以看到这可以如何向ETL过程添加工作,向星型模式添加另一个连接,在事实表中添加一个通用列来保存所有度量数据等


我对其他人如何处理这种情况感兴趣。我们目前有近二十个衡量标准。

出于本能,我不喜欢它:这是EAV模型,它不是很受欢迎(你可以在谷歌上搜索原因)

  • EAV模型通常被认为是查询和维护的难题
  • 不同的衡量标准伴随着不同的维度;这种方法可以很容易地变成“一个巨大的事实表,用于所有事情”,而不是多个较小的事实表,用于特定的报告领域
  • 我怀疑您最终还是会创建视图来显示多个事实表
  • 您将把事实表中的行数乘以度量值的数量,从而得到一个更大的物理表
  • 即使使用良好的索引/分区方案,包含多个度量值的查询也必须读取更多的行才能获取数据
  • 使用不同数据类型的度量值如何
  • 您的报告工具是否容易支持这一点

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

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

“度量”本质上是另一个维度(在文档中经常被称为度量)。我相信SSAS在幕后使用了一种基本上以列为导向的结构

然而,这种方法的简单应用确实存在一些问题,这些问题可能会或多或少地影响到您

  • 你只有一个度量标准,[值],[量]或其他任何名称。如果您的工具不允许您在前端注入计算出的度量值,那么您就无法根据某个属性类型的值对整个数据集进行排序。ProClarity和report builder>=2.0可以做到这一点,但Excel不能做到

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

  • 虽然它对多维数据集没有太大影响,但查询数据库和增加存储需求的速度会很慢。对数据库进行查询也很方便


您确定您的OLAP工具支持这种建模吗?我经历过一些工具不允许像那样的创造性解决方案。有时,度量必须以一种方式组织,以便工具读取度量。