hp vertica加载数据问题

时间:2014-06-19 09:37:45

标签: 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 个答案:

答案 0 :(得分:1)

你没有真正提到你得到的错误,但是......

  1. 第二个文件使用引号,因此您需要将enclosed by '"'设置为COPY选项。您可以在列级别或COPY语句级别执行此操作。如果引号不存在,COPY将假装在分隔符之间引用整列。
  2. 你最后一行会遇到问题。 enclosed by允许您在引号中嵌入delimiters而没有任何问题,但它不允许record terminators这样做。您必须预处理数据才能使用COPY
  3. 您的数据样本太小,我无法确切知道,但您可以执行类似的操作,例如在每条记录的末尾添加分号(可能是一个awk脚本,用于查找以{{1结尾的行并在最后添加"。然后在;声明中使用record terminator ';'