当前位置:  开发笔记 > 编程语言 > 正文

AWS Data Pipeline RedShift"未找到分隔符"错误

如何解决《AWSDataPipelineRedShift"未找到分隔符"错误》经验,为你挑选了1个好方法。

我正在研究数据管道.在其中一个步骤中,来自S3的CSV由RedShift DataNode使用.我的RedShift表有78列.检查:

SELECT COUNT(*) FROM information_schema.columns WHERE table_name = 'my_table';

失败的RedshiftCopyActivity'stl_load_errors'表显示行号1的"Delimiter not found"(1214)错误,列名称空间(这是第二列,varchar(255))在位置0上.消费的CSV行看起来像这样:

0,my.namespace.string,2119652,458031,S,60,2015-05-02,2015-05-02 14:51:02,2015-05-02 14:51:14.0,1,Counter,1,Counter 01,91,Chaymae,0,,,,227817,1,Dine In,5788,2015-05-02 14:51:02,2015-05-02 14:51:27,17.45,0.00,0.00,17.45,,91,Chaymae,0,0.00,12,M,A,-1,13,F,0,0,2,2.50,F,1094055,Coleslaw Md Upt,8,Sonstige,900,Sides,901,Sides,0.00,0.00,0,,,0.0000,0,0,,,0.00,0.0000,0.0000,0,,,0.00,0.0000,,1,Woche Counter,127,Coleslaw Md Upt,2,2.50

在简单替换(","到"\n")后,我有78行,所以看起来数据应该匹配...我坚持这一点.也许有人知道如何找到有关错误的更多信息或查看解决方案?

编辑

查询:

select d.query, substring(d.filename,14,20), 
d.line_number as line, 
substring(d.value,1,16) as value,
substring(le.err_reason,1,48) as err_reason
from stl_loaderror_detail d, stl_load_errors le
where d.query = le.query
and d.query = pg_last_copy_id(); 

0行的结果.



1> Arius..:

我想出来了,也许对其他人有用:

事实上有两个问题.

    我在红移表中的第一个字段是类型INT IDENTITY(1,1),在CSV中我0有价值.从CSV中删除第一列后,即使没有指定的列映射,所有内容都被复制而没有问题,如果......

    DELIMITER ',' commandOption已添加到S3ToRedshiftCopyActivity以强制使用逗号.没有它,RedShift将来自命名空间(my.namespace.string)的点识别为分隔符.

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有