将排序键和压缩用于带有 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 也会执行全表扫描
如何使用 Amazon Redshift 中的临时表列更新现有表中的列?