【发布时间】:2017-01-03 16:09:36
【问题描述】:
我目前正在尝试将当前 AWS 实例的 redshift 数据库中的多个数据表移动到不同 AWS 实例中的新数据库(作为背景,我的公司已经获得了一个新数据库,我们需要整合到 AWS 实例上)。
我在一个表上使用下面的 UNLOAD 命令,我计划将该表设为 csv,然后将该文件上传到目标 AWS 的 S3 并使用 COPY 命令完成表的移动。
unload ('select * from table1')
to 's3://destination_folder'
CREDENTIALS 'aws_access_key_id=XXXXXXXXXXXXX;aws_secret_access_key=XXXXXXXXX'
ADDQUOTES
DELIMITER AS ','
PARALLEL OFF;
我的问题是,当我将文件类型更改为 .csv 并打开文件时,我得到的数据不一致。有些区域会跳过许多行,并且在某些行上,当预期的列结束时,由于未知原因,我会得到值为“f”的附加列。任何有关我如何实现此转移的帮助将不胜感激。
编辑 1:看起来带引号的字段正在删除引号。此外,带有逗号的字段将逗号分开。我用引号和逗号标识了一些字段,他们把所有东西都扔掉了。无论字段中是否有引号和逗号,我是否会将 addquotes 子句应用于整个字段?
【问题讨论】:
-
请从您的表格和您遇到问题的 csv 文件中提供一些示例数据。
-
如果需要将数据从 RS 实例迁移到另一个实例,请采用使用“awslabs”redshift 实用程序加载/卸载数据 SQL 命令生成脚本的编程路线。这种方式记录在定义的目录中导出,可以作为迁移后分析的一部分进行比较。明智地使用分隔符,而不仅仅是逗号或制表符。想出一个不常见的非ASCII字符。例如)
\30
标签: sql amazon-web-services export-to-csv amazon-redshift