是否具有分发键但没有声明的外键并置表?

时间:2018-05-16 00:26:48

标签: amazon-web-services amazon-redshift

在Redshift中,如果维度表和事实表的PK和FK(分别)作为分配键,但在事实表的DDL中没有声明外键约束,那么这些表是否会在没有任何重新分配的情况下进行并置和连接?

1 个答案:

答案 0 :(得分:2)

首先,值得指出的是,Amazon Redshift不会强制执行外部约束,但它们可用于优化查询。请参阅:Define Primary Key and Foreign Key Constraints

<强>主机托管

如果表具有分发键,则行分布在所有切片上,但与特定DISTKEY值相关的行将全部位于同一切片上。

DISTKEY使用散列算法来确定哪个切片存储数据。这在表之间很常见。例如:

  • 我们假设有两个表:Table-ATable-B
  • Table-A已将DISTKEY设置为列PK
  • Table-B已将DISTKEY设置为列FK
  • 一行存储在Table-A PK = 100
  • 一行存储在Table-B FK = 100

两个表中的行数据将位于同一切片上。即使没有在表之间定义外键约束,也是如此。