Redshift DISTSTYLE 密钥。决定定义为 KEY 的最佳列

1 amazon-web-services amazon-redshift

嗯,我最近进入了 Redshift 的这个领域,试图优化数据库的磁盘使用和性能,并且在 AWS 上阅读了有关该主题的大量信息,但我仍然有一些疑问。首先,我的数据库结构。每个模式,我有 3 个主表,具有 3 个不同的 ID,这些现在是 DISTSTLYE ALL 表,尺寸很小。

每个主表都有不同数量的ID,

日期表 --> 最大的一个(#1 最常加入的)

存储表 --> 中表(#3 最常加入)

项目表 --> 最小的一个(连接最多的#2)

然后我有我的核心表,它需要这些 ID 的组合来显示有关它们的附加信息。无论如何,根据我的知识,该表应该是 DISTSTYLE KEY 类型。那么,我应该选择 3 个 ID 中的哪一个作为我的 DIST KEY?

这个决定的标准是什么?我知道对于连接,我需要查看排序键,这已经被理解并定义为 ID_date,因为它是连接最多的表。那么现在,该表的每个节点的分布情况如何?

如果我胡言乱语,我很抱歉,我不想遗漏任何信息。如果我有,请随时询问!感谢您抽出时间阅读!

Joh*_*ein 6

您将找到有关设计表的 Amazon Redshift 最佳实践的最佳建议。它涉及相当多的细节。

然而,我的经验法则是:

  • 应该DISTKEY是表之间 JOIN 中最常用的列
  • 应该SORTKEY是 WHERE 语句中最常用的列
  • 用于DISTSTYLE ALL小型查找表