为什么 COPY 命令没有将我的 .csv 文件加载到 Amazon Redshift 中?

1 分钟阅读
0

我想使用 COPY 命令将 .csv 文件从 Amazon Simple Storage Service (Amazon S3) 加载到 Amazon Redshift 中。该文件包含记录。但是,该命令不会加载文件或返回错误。

解决方法

如果 .csv 文件使用回车符作为行终止符,则 COPY 无法将数据加载到 Amazon Redshift。回车符包括十六进制的“\\r”、“^M”或“0x0D”。

由于 Amazon Redshift 不将回车符识别为行终止符,因此 Amazon Redshift 将文件解析为一行。当您在 COPY 命令中将 IGNOREHEADER 参数设置为非零数字时,Amazon Redshift 会跳过第一行。从而导致 Amazon Redshift 还会跳过整个文件。该命令不会返回加载错误,因为从技术层面来讲,该操作是成功的。

要解决此问题,请将回车符替换为十六进制的 CRLF、“\\r\\n”或“0x0D0A”,或者十六进制的 LF、“\\n”或“0x0A”。将修改后的文件上传到 S3 存储桶,然后再次运行 COPY 命令。

如果您替换了回车键但仍然遇到问题,请执行以下操作:

相关信息

数据来源

COPY 示例

AWS 官方
AWS 官方已更新 1 个月前