2016-09-28 1 views
2

Я пытаюсь загрузить тысячи сжатых файлов одновременно через NFS в Vertica с копией заявлением с выражением Глобо, но операция прерывания на следующую ошибке:Как пропустить и продолжить сбои загрузки файлов в Vertica?

ERROR 6253: Error occured during LZO header processing: expecting more than 8 bytes, possibly file corrupted 

Что правильный способ сказать vertica, чтобы продолжить загрузку всех хороших файлов и просто сообщить, какие из них не удались в конце загрузки?

ответ

4

Если вы работаете в Vertica 7.2.x, добавили новый параметр: ERROR TOLERANCE. До этой версии его не существует.

Вы можете увидеть варианты копирования here.

Treats each source during execution independently when loading data. The statement is not rolled back if a single source is invalid. The invalid source is skipped and the load continues.

This parameter is disabled for ORC files, Parquet files, and when using a fenced User Defined Load (UDL).

Единственной альтернативой было бы предварительной проверки обоснованности в сценарии или загружать их по отдельности (очевидно, что это будет проблемой производительности, поэтому я выбрал бы для предварительной проверки).

+0

спасибо, это было очень быстро. Это позор, что это отключает распределенные возможности загрузки. – tamale

+0

@tamale Вы можете исправить это в самом узле ApportionedLoad udx, чтобы поймать и обработать ошибки в источниках. Не то, чтобы это тривиально (если только вы уже не разбирались в написании UDL). – woot

+0

@tamale Кроме того, одна заметка заключается в том, что распределенная нагрузка не нужна, если ваши данные уже разделены на многие файлы, и вы ссылаетесь на них со «на любом узле». Он будет параллельно загружать каждый файл на другом узле. – woot