2015-07-10 61 views
2

我正在嘗試將S3從lzop-compresed文件複製到Redshift。該文件最初是通過使用帶有--outputCodec lzo選項的S3DistCp生成的。無法從S3加載lzop壓縮文件到Redshift

的S3文件似乎是正確的壓縮,因爲我可以成功下載並在命令行它充氣:

lzop -d downloaded_file.lzo 

但是,當我試圖將其加載到紅移,我得到一個錯誤:

COPY atomic.events FROM 's3://path-to/bucket/' CREDENTIALS 'aws_access_key_id=xxx;aws_secret_access_key=xxx' REGION AS 'eu-west-1' DELIMITER '\t' MAXERROR 1 EMPTYASNULL FILLRECORD TRUNCATECOLUMNS TIMEFORMAT 'auto' ACCEPTINVCHARS LZOP; 

ERROR: failed to inflate with lzop: unexpected end of file. 
DETAIL: 
    ----------------------------------------------- 
    error: failed to inflate with lzop: unexpected end of file. 
    code:  9001 
    context: S3 key being read : s3://path-to/bucket/ 
    query:  244 
    location: table_s3_scanner.cpp:348 
    process: query0_60 [pid=5615] 
    ----------------------------------------------- 

關於什麼可能導致負載失敗的任何想法?

+0

您在該「文件夾」中是否有其他文件? – Guy

+0

@Guy我沒有 - 只有一個壓縮文件。 – fblundun

回答

0

嘗試指定確切的文件名。

s3://path-to/bucket/THE_FILE_NAME.extension

您使用的代碼將遍歷所有可用的文件。看起來像在同一文件夾中可能有其他類型的文件(例如:清單)

COPY atomic.events 
FROM 's3://path-to/bucket/THE_FILE_NAME.extension' 
CREDENTIALS 'aws_access_key_id=xxx;aws_secret_access_key=xxx' 
REGION AS 'eu-west-1' 
DELIMITER '\t' 
MAXERROR 1 
EMPTYASNULL 
FILLRECORD 
TRUNCATECOLUMNS 
TIMEFORMAT 'auto' 
ACCEPTINVCHARS 
LZOP; 
相關問題