【发布时间】:2019-08-22 14:07:14
【问题描述】:
我在 Redshift 中有一个非常大的表,其中大约 3600 万行使用复合键。我正在尝试每半分钟执行一次大规模删除 + 复制(S3 复制命令)操作。我们有一个 ETL 管道,它试图接近实时地更新我们的数据仓库表。目前我正在使用 psycopg2 的executemany 方法来删除行,这个方法基本上是批处理我的删除查询并执行许多小操作
delete from table where col1=val1 and col2=val2 ...
在 for 循环中(我可能过度简化了实现)。如果我更改我的表以使复合键成为排序键,这会加快我的删除速度吗?
【问题讨论】:
-
“复合键”是什么意思?您指的是 SORTKEY 吗?
-
@JohnRotenstein 我知道 Redshift 不会强制执行主键/复合键约束,但我正在这样做。 “复合键”是指可用于唯一标识表中单个记录的多个列。我的想法是希望将这些列变成排序键,我想这个想法没有多大意义......
标签: python-3.x amazon-web-services amazon-redshift psycopg2 sql-delete