Не удается загрузить сжатые lzop файлы из S3 в Redshift

Я пытаюсь скопировать сжатый lzop файл из 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]
  -----------------------------------------------

Любые идеи о том, что может привести к сбою нагрузки?


person fblundun    schedule 10.07.2015    source источник
comment
У вас есть другие файлы в этой папке?   -  person Guy    schedule 11.07.2015
comment
@ Парень, я не знаю - есть только один сжатый файл.   -  person fblundun    schedule 13.07.2015


Ответы (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;
person Faiz    schedule 06.01.2017