我想使用 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 示例