Amazon web services 具有分发密钥但没有声明外键是否会将表并置?
在Redshift中,如果维度表和事实表的PK和FK(分别)作为分发键,但事实表的DDL中没有声明外键约束,那么这些表是否会在不进行任何重新分发的情况下并置和连接?首先,值得指出的是,Amazon Redshift不强制执行外键约束,但它们用于优化查询。见: 托管 如果一个表有一个分布键,那么这些行分布在所有的片上,但是与特定DISTKEY值相关的行都将位于同一片上 DISTKEY使用散列算法来确定存储数据的切片。这在表之间很常见。例如:Amazon web services 具有分发密钥但没有声明外键是否会将表并置?,amazon-web-services,amazon-redshift,Amazon Web Services,Amazon Redshift,在Redshift中,如果维度表和事实表的PK和FK(分别)作为分发键,但事实表的DDL中没有声明外键约束,那么这些表是否会在不进行任何重新分发的情况下并置和连接?首先,值得指出的是,Amazon Redshift不强制执行外键约束,但它们用于优化查询。见: 托管 如果一个表有一个分布键,那么这些行分布在所有的片上,但是与特定DISTKEY值相关的行都将位于同一片上 DISTKEY使用散列算法来确定存储数据的切片。这在表之间很常见。例如: 假设有两个表:Table-A和Table-B Tabl
- 假设有两个表:
和Table-A
Table-B
将DISTKEY设置为columnTable-A
PK
将DISTKEY设置为columnTable-B
FK
- 一行以
PK=100
- 一行以
FK=100
两个表中的行的数据将位于同一个切片上。这是正确的即使没有在表之间定义外键约束首先,值得指出的是Amazon Redshift不强制外键约束,但它们用于优化查询。见: 托管 如果一个表有一个分布键,那么这些行分布在所有的片上,但是与特定DISTKEY值相关的行都将位于同一片上 DISTKEY使用散列算法来确定存储数据的切片。这在表之间很常见。例如:
- 假设有两个表:
和Table-A
Table-B
将DISTKEY设置为columnTable-A
PK
将DISTKEY设置为columnTable-B
FK
- 一行以
PK=100
- 一行以
FK=100