【发布时间】:2019-05-08 16:37:33
【问题描述】:
我想将表大小超过 1 TB 的表从 S3 加载到 Redshift。
我不能将 DISTSTYLE 用作 ALL,因为它是一张大桌子。
我不能将 DISTSTYLE 用作 EVEN,因为我想在导致性能问题的连接中使用此表。
我的桌子上的列是
id INTEGER, name VARCHAR(10), another_id INTEGER, workday INTEGER, workhour INTEGER, worktime_number INTEGER
我们的 redshift 集群有 20 个节点。
所以,我在工作日尝试了分发密钥,但表格严重歪斜。
有 7 个不同的工作日和 24 个不同的工作时间。
在这种情况下如何避免偏斜?
如果唯一键的行数不均匀(假设 hour1 有 100 万行,hour2 有 150 万行,hour3 有 200 万行,等等),我们如何避免表倾斜?
【问题讨论】:
-
如果您提供示例查询,我们可能会提供更好的建议。
-
我正在使用复制命令将数据从 S3 加载到 redshift。
-
“假设 hour1 有 100 万行,hour2 有 150 万行,hour3 有 200 万行,依此类推” - 如果如您所说,应该没有偏差。即使将 3m 放在一个节点上,将 1m+2m 放在另一个节点上,Redshift 也会进行分布,等等。必须有一个非常显着的异常值导致偏斜。你能分别按天和小时显示计数以及它们组合的前 20 个吗?
标签: amazon-redshift skew