在Redshift中,如果维度表和事实表的PK和FK(分别)作为分配键,但在事实表的DDL中没有声明外键约束,那么这些表是否会在没有任何重新分配的情况下进行并置和连接?
答案 0 :(得分:2)
首先,值得指出的是,Amazon Redshift不会强制执行外部约束,但它们可用于优化查询。请参阅:Define Primary Key and Foreign Key Constraints
<强>主机托管强>
如果表具有分发键,则行分布在所有切片上,但与特定DISTKEY值相关的行将全部位于同一切片上。
DISTKEY使用散列算法来确定哪个切片存储数据。这在表之间很常见。例如:
Table-A
和Table-B
Table-A
已将DISTKEY设置为列PK
Table-B
已将DISTKEY设置为列FK
Table-A
PK = 100
Table-B
FK = 100
两个表中的行数据将位于同一切片上。即使没有在表之间定义外键约束,也是如此。