我是Redshift的新手。我不知道哪一列适合于设置分配键以提高查询性能。如何找到最佳的专栏?以及如何使用dist键将数据分布在各个节点上?
答案 0 :(得分:0)
这是一个非常广泛的问题,很难提供简短的答案。无论如何,让我尝试在这里进行总结,在Redshift
中有两种类型的密钥,distkey
和sortkey
。
distkey -表的distkey是分配给每个节点的列。保证该列中具有相同值的行位于同一节点上。
排序键-表的排序键是在每个节点中对其进行排序的列。它应该应用于您通常order by
要做的列。
让我们在这里关注distkey
。
分发密钥可以是两种类型,“偶数”或“全部”。分发密钥用于实现跟踪。
“全部”分发样式应用于-具有缓慢变化的数据,合理的大小(即几百万行,而不是几亿行),缺少频繁联接的公共分发键。 对于不经常联接或聚集的表以及没有可接受的候选键的大型表,应使用“偶数”分配样式。
这里有一些不错的材料可供阅读。 https://www.slideshare.net/AmazonWebServices/deep-dive-on-amazon-redshift-64919704 https://www.youtube.com/watch?v=iuQgZDs-W7A https://docs.aws.amazon.com/redshift/latest/dg/c_best-practices-best-dist-key.html https://docs.aws.amazon.com/redshift/latest/dg/c_Distribution_examples.html
我希望这能为您提供一些前进的方式。