在将数据从 S3 复制到 redshift 时,我遇到了以下错误:

Posted

技术标签:

【中文标题】在将数据从 S3 复制到 redshift 时,我遇到了以下错误:【英文标题】:While copying data from S3 to redshift, I am facing error which is : 【发布时间】:2016-03-08 20:52:15 【问题描述】:

缺少换行符:在位置 0 发现意外字符 0x22

Table Create 语句是

CREATE TABLE venue (
  City varchar(45) ,
  Country varchar(2) ,
  Description varchar(82) ,
  lat_lon varchar(30) ,
  Region varchar(30) ,
  State varchar(15) ,
  Venue_Config_ID int ,
  zip varchar(8) ,
  CT_ID int ,
  CN_ID int ,
  DS_ID int ,
  RG_ID int ,
  ZP_ID int ,
  ST_ID int 
) 

CSV 文件中的示例行是

" D e n v e r"," U S"," E l l i e   C a u l k i n s   O p e r a   H o u s e"," 3 9 . 7 4 3 6 4 7 9 , - 1 0 4 . 9 9 8 1 4"," D e n v e r"," C O","1230057"," 8 0 2 0 4","11","1","8771","11","2673","11"

任何帮助将不胜感激

【问题讨论】:

【参考方案1】:

0x22 是一个引号 (")。这可能与您正在加载带有引用文本的 int 字段这一事实有关。

尝试在COPY 命令中使用REMOVEQUOTES 选项来删除引号。

【讨论】:

您好,我尝试了 REMOVEQUOTES 选项,但出现错误“CSV 与 REMOVEQUOTES 不兼容” 我使用的复制命令是从 's3://' CREDENTIALS 'aws_access_key_id=************************复制表;aws_secret_access_key=******************************' CSV 区域 '*******';【参考方案2】:

我遇到了同样的问题,我发现我的 csv 文件是 unicode,并且Redshift COPY expects UTF-8:

默认情况下,COPY 命令要求源数据位于字符分隔的 UTF-8 文本文件中。默认分隔符是竖线字符 ( | )。如果源数据为其他格式,请使用以下参数指定数据格式。

【讨论】:

以上是关于在将数据从 S3 复制到 redshift 时,我遇到了以下错误:的主要内容,如果未能解决你的问题,请参考以下文章

AWS:使用从 s3 到 redshift 的复制命令时没有插入任何内容

使用 Psycopg2 将数据从 S3 复制到 AWS Redshift 时出错

从 S3 接入点复制到 Redshift

从 s3 复制到 redshift

将数据从本地复制到 S3 到 Redshift 表时出现问题

将数据从 Amazon S3 复制到 Redshift 并避免重复行