如何停止获取错误并保留数据:缺少换行符:在位置116处发现意外字符0x31

时间:2019-06-06 15:27:54

标签: sql amazon-s3 amazon-redshift razorsql

我正在尝试将数据从Amazon s3复制到Amazon Redshift,但是每次都在同一行中不断出现“意外字符”换行错误。这是文件中间的随机行,这是我尝试复制的许多文件都发生的情况。

这是复制语句:

COPY sample_table FROM "S3://bucket/file.psv' iam_role 'role' delimiter '|'
ACCEPTINVCHARS IGNOREBLANKLINES DATEFORMAT 'auto' TIMEFORMAT 'auto'
emptyasnull blanksasnull maxerror as 100000 ;

这是表格格式:

create table sample_table (
id varchar (25),
model varchar (25),
api varchar (25),
msgdatetime timestamp,
msgdate date,
alias bigint,
key varchar (255),
value varchar (50)
) ;

这是数据中的原始行:

AAA111111111|AA1111111|sample_API|2019-06-06 11:20:00|2019-06-06|111111111|Sample_key|1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

还应注意,这是自动化过程的一部分,其中,上面的sql用于复制大量导致相同问题的文件。

1 个答案:

答案 0 :(得分:0)

数据中的列多于表中的列

id = AAA111111111
model = AA1111111
api = sample_API
msgdatetime = 2019-06-06 11:20:00
msgdate  = 2019-06-06
key = 111111111
value = Sample_key

,在最后一列的末尾保留“ 1”。 1是0x31

您可能需要一个新列(我在下面将其称为newcol)

create table sample_table (
id varchar (25),
model varchar (25),
api varchar (25),
msgdatetime timestamp,
msgdate date,
newcol varchar(255),
key varchar (255),
value varchar (50)
) ;