2

Izop 圧縮ファイルを S3 から Redshift にコピーしようとしています。このファイルは、もともと S3DistCp--outputCodec lzoオプションを使用して生成されたものです。

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

ロードが失敗する原因についてのアイデアはありますか?

4

1 に答える 1

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;
于 2017-01-06T12:12:29.283 に答える