带有两个代理键或两个单独尺寸的尺寸?

时间:2016-02-29 13:25:07

标签: data-warehouse dimensional-modeling

我正在寻找维度建模的一些指导。 我正在查看以星型模式存储在数据库中的一些搜索数据。查询有一个维度,登录页面有一个维度。两个维度都有一个代理键,它作为外键存储在事实表中。

事实表有大约1亿行,每个行的大小约为100k行。

由于这些表的连接最近需要很长时间,我想知道将两个维度合并为一个是一个好主意,因此它只能连接到一个表。两个维度是M:N,因此新维度将非常巨大。

谢谢!

1 个答案:

答案 0 :(得分:0)

没有"对"在不了解您的数据的情况下回答您的问题(比如您的事实表中有更多维度吗?您有多少组查询和登陆页面?),但很少有评论:

  • 你当前的设计(我从这里可以理解的)并不坏,你有很多数据,你必须处理它,但结合两个维度与100K元素,以避免连接没有&#39 ;对我来说似乎是对的

  • 尝试优化您的查询,构建索引(如果您没有它们),并行化您的查询(如果您的数据库引擎允许您这样做),尽量避免like在您的位置如果可能,最后一个资源会考虑更多硬件或不同的数据库引擎。

  • 如果您通常仅使用这些维度中的一个进行查询,则可以考虑使用聚合表来减少行数,您将使用更多空间,但查询将具有单个连接和更小的事实表

  • 可以查询登陆页面的孩子吗? (即stackoverflow.com是查询的父母,如" Guru Meditation错误消息"" stackcareers.com"是#34;数据池工作的池男孩的父母")当然对于多个登录页面,您将以相同的查询结束,在这种情况下,您需要分配不同的外键。但是这个不同的模型可以导致不同的解决方案,您将只有1:M关系,并且可以通过登陆页面维度来构建聚合表,但这需要更改您的查询以提取数据。而且我再也不知道你的数据,也许它会更有意义查询登陆页面的父母......

这再次只是我的想法"没有解决方案。