将排序键和压缩用于带有 Redshift 的临时表

Posted

技术标签:

【中文标题】将排序键和压缩用于带有 Redshift 的临时表【英文标题】:Using sortkeys and compression for a staging table with Redshift 【发布时间】:2021-06-01 08:02:04 【问题描述】:

如果目标表已经有排序键和压缩,那么添加排序键和压缩到 Redshift 中每天截断的临时表是否有意义?在插入到目标表时执行转换有什么不同吗?

我担心的是它是否会以任何方式帮助或损害性能。

【问题讨论】:

【参考方案1】:

是的,确实如此。 当您从临时表中读取数据以将其插入实际表时,排序键将帮助您。 (您可能会在暂存表和真实表之间进行某种连接以确定增量,对吧?)。 确保排序键相似,这将很有帮助。

如您所想,压缩有利有弊。我会在有和没有它的情况下测试相同的过程以获得一个实际的结论 - 但肯定是排序键(和分布键 - 如果适用)。

顺便说一句,行数在这里也很重要——如果你只有几 100 行,当然这可能没有任何区别。

【讨论】:

以上是关于将排序键和压缩用于带有 Redshift 的临时表的主要内容,如果未能解决你的问题,请参考以下文章

Redshift join 与 varchar(40) 和 23 亿行

即使使用 where 子句中使用的排序键,Redshift 也会执行全表扫描

Redshift:当源表中有自动排序键时,创建表失败

如何使用 Amazon Redshift 中的临时表列更新现有表中的列?

在 Insert into() 上不尊重身份列 (Amazon Redshift)

RedShift 临时表中的编码