如何确保Redshift Unload Copy列的顺序正确?

时间:2017-06-05 17:40:16

标签: amazon-redshift

我正在尝试使用UnloadCopyUtility将实例迁移到加密实例,但有些表失败,因为它试图将值插入到错误的列中。有没有办法可以确保列正确映射到值?如果需要,我可以在本地调整python脚本

1 个答案:

答案 0 :(得分:0)

我觉得,这也应该可以在UnloadCopy实用程序中实现。 但在这里,我试图回答更多通用解决方案withput UnloadCopy实用程序,以便它可能对其他人作为替代解决方案有所帮助。

  1. 在卸载命令中,您可以指定C1,C2,C3,......等列。
  2. 在RedShift中加载数据时,在copy命令中使用相同的序列列。
  3. 卸载命令示例。

    unload ('select C1,C2,C3,... from venue') to 's3://mybucket/tickit/unload/venue_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' parallel off;
    

    复制命令示例,其中包含上述已卸载文件的特定列序列。

    copy table (C1,C2,C3,...) from 's3://<your-bucket-name>/load/key_prefix' credentials 'aws_access_key_id=<Your-Access-Key-ID>;aws_secret_access_key=<Your-Secret-Access-Key>' options;