根据下面的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,并且运行情况没有大问题。 尽管这比我们的预期要快得多,但我认为现在应该评估当前设置是否合适。
答案 0 :(得分:1)
在此问题的几个答案中讨论了“ skew_sortkey1”的基本原理:What does the column skew_sorkey1 in Amazon Redshift's svv_table_info imply?
此列的值基本上不大理想,因为偏移量越大,Redshift必须扫描的数据块越多。在您的示例中,对于table_a而言,对于要扫描的排序键列的每一块,Redshift必须扫描多达68个其他列的块以检索数据。
高偏斜值的一个原因是排序键列上的压缩:
因此,如果您已压缩了这些表上的排序键列,请考虑删除压缩并使其保持未压缩状态。