从S3到Redshift的COPY无法识别换行符

时间:2015-06-29 19:38:12

标签: postgresql amazon-s3 amazon-redshift

我正在尝试从S3存储桶运行COPY命令到Redshift PostgreSQL表,我收到以下错误(在stl_load_errors中):

err_code: 1207 

err_reason: Invalid digit, Value '2', Pos 3, Type: Short 

raw_field_value: 
2
2/28/15

该文件有两行:

28分之2/ 15电话,机器人,0,1,3,2,2

28分之2/ 15电话,机器人,0,4,1,2,2

CREATE TABLE代码为:

create table aggregate_table( date date, variable varchar(15),source varchar(15), prepaid smallint, direction smallint, total smallint, carrier smallint, carrier_group smallint)

似乎新行未被识别,并且正在尝试将第一行的结尾和第二行的开头读作一个值。我尝试过使用delimiter ','escape,但似乎没有任何效果。

感谢您的帮助!

编辑:这是COPY命令(我也在最后用escape进行了尝试)

COPY aggregate_table FROM 's3://path_to_file.csv'  CREDENTIALS 'aws_access_key_id=XXXX;aws_secret_access_key=XXXXX'  CSV delimiter ','  DATEFORMAT AS 'MM/DD/YY'; 

2 个答案:

答案 0 :(得分:1)

您需要在COPY命令中添加<select> <option class="1" value="1">Etagere 1</option> <option class="1" value="2">Etagere 2</option> <option class="1" value="3">Etagere 3</option> <option class="1" value="4">Etagere 4</option> <option class="1" value="5">Etagere 5</option> <option class="1" value="6">Etagere 6</option> </select> 。否则,redshift无法正确解析第一列中的日期,因为它需要DATEFORMAT AS 'MM/DD/YY'

有关详细信息,请参阅http://docs.aws.amazon.com/redshift/latest/dg/r_DATEFORMAT_and_TIMEFORMAT_strings.html

答案 1 :(得分:0)

@quarterdome感谢您与我共同努力!在你指出它有效之后,我再次尝试从头到尾。事实证明,当我保存没有.csv扩展名的文件时,它工作了! -