0

我正在尝试将数据从 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 用于复制大量文件,这些文件都导致相同的问题。

4

1 回答 1

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)
) ;
于 2019-06-06T15:34:47.893 回答