【问题标题】:Cannot load lzop-compressed files from S3 into Redshift无法将 lzop 压缩文件从 S3 加载到 Redshift
【发布时间】:2015-07-10 14:41:26
【问题描述】:

我正在尝试将 lzop 压缩文件从 S3 复制到 Redshift。该文件最初是使用带有--outputCodec lzo 选项的 S3DistCp 生成的。

S3 文件似乎被正确压缩,因为我可以在命令行成功下载并膨胀它:

lzop -d downloaded_file.lzo

但是当我尝试将它加载到 Redshift 中时,我得到一个错误:

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]
  -----------------------------------------------

关于可能导致加载失败的任何想法?

【问题讨论】:

  • 那个“文件夹”里还有其他文件吗?
  • @Guy 我没有 - 只有一个压缩文件。

标签: amazon-web-services amazon-s3 amazon-redshift lzo


【解决方案1】:

尝试指定确切的文件名。

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;

【讨论】:

    猜你喜欢
    • 2019-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多