如何使用在数据本身具有分隔符的DELIMITER选项在Redshift中复制数据?

时间:2019-02-26 13:55:01

标签: amazon-web-services amazon-redshift

我有一些管道定界的数据,我试图将它们从S3复制到RedShift,但是COPY操作失败,错误代码为1202 : Extra column(s) found

当我查看stl_load_errors时,对于具有|的行,复制操作失败。其中的定界符。

样本数据:

1|hello world|how|are you|
2|"hope|you|are|doing|good"|thank you|
3|I am fine|thank you|

对于上述数据,2|"hope|you|are|doing|good"|thank you|无法复制,因为它具有|分隔符本身,即使它在双引号中也是如此。

我的复制命令如下所示:

COPY <DATABASE.TABLE NAME>
FROM 's3://path/to/file'
iam_role 'arn:aws:iam:my_role'
delimiter '|'
dateformat 'auto'
IGNOREHEADER 1
MAXERROR 5;

AWS RedShift文档提供了一个示例来加载这种类型的数据,但是他们使用了CSV选项,而不是DELIMITER选项。

请帮助我解决这个问题。

谢谢, 钱德拉

1 个答案:

答案 0 :(得分:3)

您应该添加REMOVEQUOTES参数。

来自Data Conversion Parameters - Amazon Redshift

  

从输入数据的字符串中删除引号。引号内的所有字符(包括定界符)都将保留。