亚马逊红移真空重新索引

Posted

技术标签:

【中文标题】亚马逊红移真空重新索引【英文标题】:Amazon redshift vacuum reindex 【发布时间】:2019-09-04 06:45:24 【问题描述】:

我正在运行一个脚本来让表根据来自 svv_interleaved_columns 的 interleaved_skew 值运行真空重新索引,该值表示 AWS 指南中提到的交错列的偏斜率(interleaved_skew > 1.4)。 interleaved_skew 的值 1.00 表示所有行都按排序顺序排列,不需要重新索引。

现在我已经对 8gb 数据表运行了真空重新索引,我预计 interleaved_skew 值会下降,但它的行为不正常并且有时会增加。而且由于我的脚本正在根据 interleaved_skew 选择表来运行 Vacuum reindex,并且由于值没有下降到 1.00,因此正在选择相同的表并且 re index 正在再次运行,这浪费了我大部分时间。

我希望这些表在通过真空重新索引之后没有数据流到表中,那么该特定表不应该再次通过真空重新索引,因为不会有任何偏差。 但是,桌子又被挑选出来了。

提前致谢,

关于 stv_interleaved_counts 表以及 svv_interleaved_columns 中的值如何以及何时更改的任何解释都会对我有很大帮助

【问题讨论】:

旁注:交错索引很少是一个好主意。通过 VACUUM 维护系统需要大量开销。您确定它们对于您的用例是必需的吗? @John Rotenstein 在对使用交错排序键如何提高性能进行大量分析之后,我们已经选择了它,因为数据量很大,并且过滤器在大多数用例中都包含多个列 【参考方案1】:

请查看我们在 GitHub 上的 "AnalyzeVacuumUtility"。它可能提供您正在寻找的所有功能。

就交错排序键而言,我建议仅将这种排序键样式用于定期更新的大型表。在大多数情况下,复合排序键会表现得更好。

请查看我们的"Advanced Table Design Playbook: Compound and Interleaved Sort Keys" 以帮助选择正确的样式。

【讨论】:

感谢之前的回复。这些表足够大(21000 MB 块),所以我们选择了交错键。但我担心的是,如果我使用运行了 3 个小时的脚本,并且大部分时间都花在了 Vacuumm reindex 上。如果我采用相同的表进行评估以进行真空重新索引并直接在 redshift 上运行它们,那么它将在大约 5 分钟内完成。这世上怎么可能发生。我假设脚本运行相同的命令。 我能解释一下 svv_interleaved_columns 中的 interleaved_skew 值吗

以上是关于亚马逊红移真空重新索引的主要内容,如果未能解决你的问题,请参考以下文章

从亚马逊红移中选择最大嵌套 ID

亚马逊红移,sqlworkbench/j

使用字符串函数反序列化亚马逊红移中的 php 对象

JDBC 创建表并插入亚马逊红移时出错

从 R 连接到亚马逊红移时出错 - Windows 10

使用亚马逊管道的红移副本因缺少主键而失败