为啥要分出事实表fact和维度表dim
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥要分出事实表fact和维度表dim相关的知识,希望对你有一定的参考价值。
参考技术A 我们的查询和聚合更加简单,从查询效率上来说要更好一些。但是我们通常又为什么会选择将这个单独的属性还是放在维度表中,这里有以下几个原因是我们需要考虑的:数据仓库的设计是一个迭代的开发过程,开发一年,维护若干年,如果我们可以考虑到以上原因,就可以很清楚的考虑到在设计阶段是否有必要将单一属性挑选出来作为维度来设计了。
结合事实表和维度表的SQL语句?
【中文标题】结合事实表和维度表的SQL语句?【英文标题】:SQL statement to combine fact table and dimension table? 【发布时间】:2021-03-30 01:52:32 【问题描述】:如果我有一个事实表和一个维度表,例如如下:
fact_table
事实密钥
dim_key
收入
成本
维度表
dim_key
广告商
产品
事实表有 4 行,维度表有 3 行。如何合并两个表?
【问题讨论】:
你试过使用外键吗? 我该怎么做?只使用普通的 dim_key 行? 是的 - 完全正确。当您使用查询命令来获取连接的表时,请使用JOIN
s。当表之间存在关系时,外键是很重要的。看看下面的答案:)
【参考方案1】:
由于fact_table
和dimension_table
之间存在关系,您可能需要执行以下操作:
alter table fact_table
add constraint fact_table_fk
foreign key (dim_key) references dimension_table(dim_key);
对于您在选择行时要求的查询,请使用INNER JOIN
或任何其他JOIN
statements
SELECT * FROM fact_table f
INNER JOIN dimension_table d
ON f.dim_key = d.dim_key
【讨论】:
以上是关于为啥要分出事实表fact和维度表dim的主要内容,如果未能解决你的问题,请参考以下文章