Amazon s3 从s3 bucket复制到redshift,我在stl加载错误的原始行中获得系统消息

Amazon s3 从s3 bucket复制到redshift,我在stl加载错误的原始行中获得系统消息,amazon-s3,amazon-redshift,Amazon S3,Amazon Redshift,我有一个标签分开的文本文件在一个s3桶,我想上传到红移 我的红移查询如下所示: COPY rk_test_tab from 's3://my_bucket/my_file' iam_role 'arn:aws:iam::XXX:role/XXX' IGNOREHEADER 1 BLANKSASNULL EMPTYASNULL MAXERROR 10 DELIMITER '\t' ; b'1008498338\t1.0\t1\t1\tCBD

我有一个标签分开的文本文件在一个s3桶,我想上传到红移

我的红移查询如下所示:

COPY rk_test_tab
    from 's3://my_bucket/my_file'
    iam_role 'arn:aws:iam::XXX:role/XXX'
    IGNOREHEADER 1
    BLANKSASNULL
    EMPTYASNULL
    MAXERROR 10
    DELIMITER '\t'
;
b'1008498338\t1.0\t1\t1\tCBDT\n'
通过Python读取的数据文件中的原始行如下所示:

COPY rk_test_tab
    from 's3://my_bucket/my_file'
    iam_role 'arn:aws:iam::XXX:role/XXX'
    IGNOREHEADER 1
    BLANKSASNULL
    EMPTYASNULL
    MAXERROR 10
    DELIMITER '\t'
;
b'1008498338\t1.0\t1\t1\tCBDT\n'
此操作失败,消息
加载到表'rk_test_tab'失败。有关详细信息,请查看“stl\U加载错误”系统表。

当我查看
stl\u load\u errors
时,
raw\u line
字段非常奇怪:
[GC工作程序启动(毫秒):最小值:430.9,平均值:430.9,最大值:431.0,差异:0.2]
(仔细检查我的文件中没有类似的行)

错误原因
显示为
未找到分隔符

如果我删除
IGNOREHEADER 1
行,我会得到一个错误,因为我的头与预期的数据字段类型不匹配,但关键是
raw_行与文件中的匹配,因此s3存储桶中的文件正在通过


所以我的问题是:有什么地方会出错,导致Redshift尝试读取类似于系统信息的消息(垃圾收集?)。

根据客户端查询Redshift,您可以尝试另一个反斜杠:“\\t”-在我们的情况下有效。你能从STL_LOADERROR_详细信息中添加相应的结果吗?谢谢,我刚离开计算机,但稍后会尝试。STL_LOADERROR_详细信息表为空,我尝试了各种版本的制表符格式。最后,我使用了一种变通方法,从s3读入文件,将其写回s3,替换“\t”for“,然后像上面一样使用
COPY
命令,使用
DELIMITER',”
。我输入这个并不是为了回答这个问题,因为我仍然需要一个直接从s3加载本机文件的方法。