【发布时间】:2015-04-09 09:23:01
【问题描述】:
我了解the COPY command 可以非常有效地导入大量数据。但是使用the INSERT command 将数据从一个表复制到另一个表很慢。有没有更有效的方法将数据从一个表复制到另一个表?还是应该使用the UNLOAD command 将表卸载到S3,然后从那里复制回来?
【问题讨论】:
标签: amazon-redshift
我了解the COPY command 可以非常有效地导入大量数据。但是使用the INSERT command 将数据从一个表复制到另一个表很慢。有没有更有效的方法将数据从一个表复制到另一个表?还是应该使用the UNLOAD command 将表卸载到S3,然后从那里复制回来?
【问题讨论】:
标签: amazon-redshift
您可以将insert 转换为new_table (select * from old_table)。
但是对于较大的表,您应该始终从旧表中卸载然后复制到新表。
复制命令并行加载数据并且运行速度很快。 Unload 还会并行卸载数据。因此,卸载和复制是将数据从一个表复制到另一个表的不错选择。
当您执行复制命令时,它会自动为您的数据进行编码(压缩)。当您插入(select * from)时,它不会进行压缩/编码。创建新表时需要显式应用编码类型。
【讨论】:
如果您想将记录从source_table 复制到target_table。那么查询必须在下面
insert into target_table select * from source_table
【讨论】: