проблема с загрузкой данных hp vertica

#vertica

#vertica

Вопрос:

я загружаю данные из текста на компьютер vertica.

Источник

*.csv

цель

HP vertica database

случай: 1

я получаю текстовые файлы следующим образом

emp.txt

empno,ename
1,hari
2,suri

я использую следующий процесс для загрузки данных из текстового файла в базу данных vertica.

copy scott.emp from 'emp.txt'
delimiter ',' null as '' skip 1 exceptions 'emp-error.log';

данные загружаются успешно.

случай: 2

я получаю текстовые файлы

dept.txt

"sno","sname"
"1",""
"2","suri __ is in uk
for 3.3 years"

здесь я также использую тот же процесс

copy scott.dept from 'dept.txt'
delimiter ',' null as '' skip 1 exceptions 'emp-error.log;

я получаю сообщение об ошибке, и данные не загружаются в целевую таблицу

может ли какой-либо орган помочь мне, как загрузить данные без каких-либо ошибок.

заранее спасибо.

Комментарии:

1. Какую ошибку вы получаете?

Ответ №1:

Однако вы не указали, какую ошибку вы получаете…

  1. Во втором файле используются кавычки, поэтому вы захотите установить enclosed by '"' их в качестве COPY опции. Это можно сделать либо на уровне столбца, либо на уровне инструкции КОПИРОВАНИЯ. Если кавычек не существует, COPY будет притворяться, что весь столбец заключен в кавычки между разделителями.
  2. У вас возникнут проблемы с последней строкой. enclosed by позволит вам delimiters без проблем встроиться в кавычки, но это не позволяет record terminators этого сделать. Для использования данных потребуется предварительная COPY обработка .

Ваша выборка данных слишком мала, чтобы я мог знать наверняка, но вы могли бы сделать что-то вроде добавления точки с запятой в конец каждой записи (возможно awk , скрипт, который ищет строки, оканчивающиеся на " и отмечающие a ; в конце). Затем используйте record terminator ';' COPY инструкцию.