如何通过SVV_TABLE_INFO中的skew_sortkey1估算排序关键字?

时间:2019-01-24 09:00:43

标签: amazon-redshift

根据下面的AWS参考,“ skew_sortkey1”对于评估当前排序键的有效性非常有用,但我无法完全理解。

https://docs.aws.amazon.com/redshift/latest/dg/r_SVV_TABLE_INFO.html

让我给你看一些例子。下面的表具有相同的排序键p_date(purchse_date),但具有不同的skew_sortkey1值。

那我想问一下我是否可以说“ table_a具有更有效的排序键,因为它的值比table_b高”?

高度赞赏您的任何反馈。

example:
select "table", encoded, diststyle, skew_sortkey1, skew_rows from svv_table_info order by 1;

table          | encoded | diststyle       | skew_sortkey1 | skew_rows
---------------+---------+-----------------+---------------+----------
table_a            Y         KEY(P_DATE)    67.73           1.16
table_b            Y         KEY(P_DATE)    3.52            1.86

感谢您在这里提出的所有专家意见,我们成功地在两个月前迁移了Redshift,并且运行情况没有大问题。 尽管这比我们的预期要快得多,但我认为现在应该评估当前设置是否合适。

1 个答案:

答案 0 :(得分:1)

在此问题的几个答案中讨论了“ skew_sortkey1”的基本原理:What does the column skew_sorkey1 in Amazon Redshift's svv_table_info imply?

此列的值基本上不大理想,因为偏移量越大,Redshift必须扫描的数据块越多。在您的示例中,对于table_a而言,对于要扫描的排序键列的每一块,Redshift必须扫描多达68个其他列的块以检索数据。

高偏斜值的一个原因是排序键列上的压缩:

enter image description here

(来源:https://www.slideshare.net/AmazonWebServices/bdt401-amazon-redshift-deep-dive-tuning-and-best-practices

因此,如果您已压缩了这些表上的排序键列,请考虑删除压缩并使其保持未压缩状态。