Redshift:sortkey 和 distkey 可以为空吗?

use*_*119 2 nullable key amazon-redshift

可以将可空字段定义为 sortkey 和 distkey 吗?我预计不会有很多空值,但它可能会发生。谢谢

小智 5

虽然 Redshift 可以使用可为 null 的 DIST 键,但您必须小心这一点。

如果许多行在 DIST 键列中具有相同的值(无论是 NULL 还是其他值),则所有这些行最终都将位于同一节点上。因此建议使用提供值均匀分布的列作为dist key,即任何值的频率都与任何其他值相似。

当列可为空时,与其他值相比,NULL 值的频率通常会出现偏差。这将导致节点之间的负载分布不均匀,并且在 x1.large 节点的情况下,您还可能很快耗尽该节点上的磁盘空间。

因此,我建议选择一个不允许 NULL 的列,尽管显然它也需要在逻辑上与连接模式匹配。如果您没有联接,我宁愿建议在这种情况下使用 EVEN dist 样式,以确保负载分布均匀。