Redshift:如何将我的连接表的副本复制到群集中的每个切片上?

时间:2013-06-07 03:31:06

标签: amazon-redshift

想象一下,我有一个大的事实表和一个小而频繁变化的连接表。

我的小连接表的全部内容可能都适合切片。

如何将我的连接表的副本推送到群集的每个切片(或至少每个节点)?如果我能做到这一点,我的连接不会更快吗?

2 个答案:

答案 0 :(得分:3)

Redshift最近增加了对新分发类型“DISTSTYLE ALL”的支持,该分发类型完全符合OP的要求。

http://docs.aws.amazon.com/redshift/latest/dg/c_choosing_dist_sort.html

答案 1 :(得分:0)

您可以尝试将DISTRIBUTION KEY设置为同一列(在事实表和连接表中) - 这样,将要连接的所有行都将位于相同的节点上。

只有在连接列中均匀分配值时才会起作用 - 只有数据才会在节点之间均匀分布。

您可以使用查询检查表的数据分布:

select slice, col, num_values, minvalue, maxvalue
from svv_diskusage
where name = '__INSERT__TABLE__NAME__HERE__' and col = 0
order by slice, col;

您希望在num_values列中具有类似的值。