2015-07-10 36 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; 
相关问题