6

我正在尝试建立一个数据集市。

我有很多维度和几个衡量标准 - 事实。每一项措施都与业务的各个维度相关联。有一种标准方法是,将有一个包含所有措施的大事实表。

但我有一个想法:如果我为每个度量都有单独的事实表怎么办?它将对数据库性能、解决方案可扩展性等产生什么影响?

编辑::: 在真正复杂的企业环境中,将有基于 olap 多维数据集的巨大解决方案。所以首先需要的是易于扩展和维护,然后是性能

4

2 回答 2

8

悬崖笔记:我看到一个事实表/度量的概念存在大量可扩展性问题。

如果您的目标是“可扩展性和维护”,那么您可能会考虑遵循行业范围的标准方法......例如 Kimball 并首先按业务流程对您的事实进行分组,然后按具有一致维度的粒度对您的事实进行分组。我很乐意争辩说,这将提供最大的灵活性和可扩展性,同时还通过标准化确保可扩展性和维护性。

另外,如果您为每个度量设计一个单独的事实表,您的 SAN 管理员会讨厌您的胆量,因为您通过度量的数量有效地增加了空间需求……至少在最初时您的所有度量当前都适合单个事实表.

针对 DW 的查询性能也将是一个问题……报告和/或临时查询必须扫描(或寻找……如果您的 san-admins 仍在与您交谈并且足够慷慨地授予您必要的权限)空间来正确索引你的事实表的垃圾)任何时候你需要组合超过 1 个度量。

我们甚至还没有讨论过 olap 多维数据集,但我已经担心您将遇到的处理问题。全表扫描大量...或分区扫描...如果您在事实表中实现分区...您现在应该使用即将推出的 SQL 2012...我正在查看您的列存储索引!

于 2012-03-22T15:35:10.843 回答
4

如果所有度量的粒度相同,则将它们放在同一个表中。只有当您拥有不同粒度级别的事实时,您才开始使用多个事实表。正如您所说,您的所有事实都与您的所有维度相关联,那么在这个阶段,您似乎只需要一个事实表。

于 2012-03-19T13:23:12.600 回答