将txt文件复制到Redshift

时间:2017-10-04 20:39:00

标签: amazon-web-services amazon-s3

我正在尝试使用以下命令将文本文件从S3复制到Redshift,但收到相同的错误。

  

错误:   缺少换行符:在位置177找到意外的字符0xffffffe2

     

从's3:// abc_def / txt_006'复制表   凭证'1234567890'   DELIMITER'|'   NULL AS'NULL'   NULL AS'';

文本文件没有标题,字段分隔符为|。 我尝试使用:ACCEPTINVCHARS传递参数。

Redshift显示相同的错误

  

1216错误代码:输入行无效。

有人可以提供解决此问题的方法吗?

提前致谢。

2 个答案:

答案 0 :(得分:0)

您的文件是否为UTF8格式?如果没有转换它并尝试重新加载。

答案 1 :(得分:0)

我假设文本文件的路径是正确的。您还使用某个工具生成了文本文件,并手动上传到红色

我遇到了同样的问题,问题在于空格。我建议你通过归零和修剪空格来生成文本文件。

您的查询应从{table} 中选择RTRIM(LTRIM(NULLIF({columnname},''))),..将此查询的输出生成为文本文件。

如果您使用的是SQl Server,请使用 BCP.exe 查询表格,方法是将所有列和函数传递给上面的查询

然后在S3上载txt文件后使用以下复制命令

复制{table}
来自's3:// {path} .txt'
access_key_id'{value}'
secret_access_key'{value}'{您也可以使用上面提到的凭证}
分隔符'|'
综合上 removequotes
acceptinvchars
emptyasnull
trimblanks
BLANKSASNULL
FILLRECORD
;
承诺;

这解决了我的问题。如果您正面对其他任何事情,请告诉我们。