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