用于OLAP数据库设计的Snowflake或Star

时间:2013-11-07 20:39:34

标签: database database-design olap mondrian saiku

我正在使用Saiku 2.5而且我不确定如何模拟以下情况:

Dimentions:

  • 类别(~20行)
  • SubCategory(~100行)
  • SubSubCategory(~1200行)
  • SubSubSubCategory(~8000行)
  • 其他1(~100000行)
  • 其他2(约50000行)
  • 其他3(~500行)
  • 其他4(~500行)
  • 其他5(~200行)
  • 其他6(~200行)
  • 其他7(~100行)
  • 其他8(~10行)

Measuremnts:

  • 事实(约20000000行)

关系

  • 事实有其他[\ d]
  • 事实上有SubSubSubCategory
  • SubSubSubCategory具有SubSubCategory
  • SubSubCategory具有SubCategory
  • SubCategory具有类别

我想知道在性能方面是否更好,将所有类别反规范化为一个表或保持原样。每个“类别”表都有一个VARCHAR(8)和两个TEXT()。

2 个答案:

答案 0 :(得分:2)

  

我想知道在性能方面是否更好,将所有类别反规范化为一个表或保持原样。

您正在针对读取性能优化数据仓库,因此我选择对类别表进行非规范化。在大多数关系数据库中,您大约要说8,000行或一页半。你可以把这张桌子留在记忆中。

看起来像星型模式对你有用。如果其他维度具有关系,那么将保证雪花模式。

答案 1 :(得分:0)

您的类别应该在一个表中,因为8k行连接很容易。

其他应该分成几个表格。这将允许mondrian尽可能在高级别(低基数)执行连接,从而表现更好。

蒙德里安在这两种情况下表现都很好。