Vertica COPY отклоняет все данные, когда источником является gzip

Я пытаюсь загрузить файл в Vertica с помощью интерфейса командной строки vsql. Моя команда выглядит следующим образом (это всего одна строка, но я разбил ее на обратную косую черту здесь для простоты чтения):

vsql "-c set timezone to 'UTC';     \   
    copy etl.test_data1 (col1,col2,col3)\
    from local 'test_data1.csv.gz' \
    gzip delimiter E'\\t'       \
    exceptions '/home/error/etl.test_data1.err' \
    NULL AS 'NULL'        \
    NO ESCAPE    \
    rejected data '/home/rejected/etl.test_data1.rejected'" \
    -p5433 -hverticahostname -Uusername -ddatabase -vON_ERROR_STOP=ON

Когда я запускаю эту команду, она выполняется без ошибок, но строки не загружаются, и данные попадают прямо в отклоненный файл.

Когда я запускаю команду csv-load для разархивированной версии того же файла, она загружает данные в таблицу без отклонений:

vsql "-c set timezone to 'UTC';     \   
    copy etl.test_data1 (col1,col2,col3)\
    from local 'test_data1.csv' \
    delimiter ','       \
    exceptions '/home/error/etl.test_data1.err' \
    NULL AS 'NULL'        \
    NO ESCAPE    \
    rejected data '/home/rejected/etl.test_data1.rejected'" \
    -p5433 -hverticahostname -Uusername -ddatabase -vON_ERROR_STOP=ON

Я попытался запустить команду без явного набора разделителей, тот же результат. Я попытался создать gzip как с помощью команды gzip в UNIX, так и путем кодирования его с помощью модуля python gzip, и получил тот же результат (на случай, если файл каким-то образом был поврежден).

Файл, который я в конечном итоге хотел бы загрузить через работу, огромен, и csv не подходит для обычной загрузки. Любые предложения о том, почему загрузка GZIP не удается?

РЕДАКТИРОВАТЬ: Решение в комментариях; выполнение gzip на csv не меняет разделитель - все равно нужно использовать ',' в качестве разделителя, а не табуляции!

0 ответов

Другие вопросы по тегам