我知道the COPY command可以非常高效地导入大量数据。但是使用the INSERT command将数据从一个表复制到另一个表的速度很慢。有没有更有效的方法将数据从一个表复制到另一个表?或者我应该使用the UNLOAD command将表格卸载到S3中,然后从那里将其复制回来?
答案 0 :(得分:9)
你可以插入new_table(select * from old_table)。
但是对于较大的表,你应该总是从旧表中卸载然后复制到新表。
复制命令并行加载数据,并且运行速度很快。卸载也会并行卸载数据。因此,卸载和复制是将数据从一个表复制到另一个表的好选择。
当你复制命令时,它会自动对你的数据进行编码(压缩)。插入(select * from)时,它不会进行压缩/编码。您需要在创建新表时显式应用编码类型。
答案 1 :(得分:0)
如果要将记录从source_table
复制到target_table
。然后查询必须在下面
insert into target_table select * from source_table