【发布时间】:2021-01-07 05:49:20
【问题描述】:
我一直在研究 AWS Redshift,有点好奇哪种数据加载(完全重新加载)方法的性能更高。
方法 1(使用截断):
- 截断现有表
- 使用 Insert Into Select 语句加载数据
方法 2(使用拖放和创建):
- 删除现有表
- 使用 Create Table As Select 语句加载数据
我们一直在 ETL 中使用这两种方法,但我有兴趣了解 AWS 方面的幕后情况。
在我看来 - Drop and Create Table As 语句的性能应该更高,因为它减少了为 Insert Into 语句所需的表扫描/处理关联数据块的开销。 此外,AWS Redshift 中的 truncate 不会重新设置身份列 - Redshift Truncate table and reset Identity?
请分享你的想法。
【问题讨论】:
-
感谢@MarkB 的建议!我无法在这两种方法之间找到显着的性能差异,因此想了解每种方法在 Redshift 方面发生的情况。
-
也就是说,在许多情况下,删除和创建表似乎稍快一些。但不知道为什么。
标签: amazon-web-services amazon-redshift