#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:
Однако вы не указали, какую ошибку вы получаете…
- Во втором файле используются кавычки, поэтому вы захотите установить
enclosed by '"'
их в качествеCOPY
опции. Это можно сделать либо на уровне столбца, либо на уровне инструкции КОПИРОВАНИЯ. Если кавычек не существует,COPY
будет притворяться, что весь столбец заключен в кавычки между разделителями. - У вас возникнут проблемы с последней строкой.
enclosed by
позволит вамdelimiters
без проблем встроиться в кавычки, но это не позволяетrecord terminators
этого сделать. Для использования данных потребуется предварительнаяCOPY
обработка .
Ваша выборка данных слишком мала, чтобы я мог знать наверняка, но вы могли бы сделать что-то вроде добавления точки с запятой в конец каждой записи (возможно awk
, скрипт, который ищет строки, оканчивающиеся на "
и отмечающие a ;
в конце). Затем используйте record terminator ';'
COPY
инструкцию.