Redshift:sortkey是否应包含distkey?

时间:2016-03-24 03:32:19

标签: amazon-web-services amazon-redshift

我们拥有按公司ID分片的客户数据。也就是说,没有公司数据会与其他公司数据混合,所以这被选为distkey。

如果某个节点可能包含数千家公司,公司ID应该是sortkey中的第一列吗?或者distkey在开始扫描之前是否已经将数据限制在某个公司?

1 个答案:

答案 0 :(得分:1)

Dist键不会影响每个节点/切片/块中存储行的顺序。排序键(或没有这样的自然顺序)defines the order

如果您希望频繁查询company_id并希望获得最佳性能,请将company_id设为主排序键(COMPOUND或默认值,而不仅仅是INTERLEAVED)。

我还建议您熟悉SVL_QUERY_REPORT view。它可以告诉您是使用全扫描(或使用最佳排序键时的范围限制),针对哪些切片以及实际扫描了多少行。为相同的数据尝试不同的表格布局,不仅要查看查询时间,还要从此报告中确认Redshift可以执行您期望的操作。