2

我正在處理數據管道。在其中一個步驟中,來自S3的CSV被RedShift DataNode使用。我的RedShift表有78列。檢查用:AWS Data Pipeline RedShift「找不到分隔符」錯誤

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

失敗RedshiftCopyActivity 'stl_load_errors' 表之後顯示 「分隔符未找到」(1214),用於1號線誤差,列命名空間(這是第二列,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行,所以它看起來像數據應匹配...我卡上。也許有人知道我如何能夠找到關於錯誤的更多信息或查看解決方案?

EDIT

查詢:

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行。

回答

4

我想通了,也許這將是對別人有用:

實際上有兩個問題。

  1. 我在紅移表中第一個字段是類型INT IDENTITY(1,1)的和CSV我有0價值存在。去除CSV第一列,即使沒有一切映射指定列沒有如果出了問題被複制...之後
  2. DELIMITER ','commandOption加入S3ToRedshiftCopyActivity使用逗號給力。沒有它RedShift從命名空間(my.namespace.string)識別點作爲分隔符。