Vertica:输入记录 1 已被拒绝(找到的列太少)

Vertica: Input record 1 has been rejected (Too few columns found)

我正在尝试将文件从 Hadoop 复制到 Vertica table 并遇到错误。 问题是相同的副本有时通过有时失败,知道吗?

错误:

Caused by: java.sql.SQLException: [Vertica]VJDBC ERROR: COPY: Input record 1 has been rejected (Too few columns found) at com.vertica.util.ServerErrorData.buildException(Unknown Source) at com.vertica.dataengine.VResultSet.fetchChunk(Unknown Source) at com.vertica.dataengine.VResultSet.initialize(Unknown Source) at com.vertica.dataengine.VQueryExecutor.readExecuteResponse(Unknown Source) at com.vertica.dataengine.VQueryExecutor.handleExecuteResponse(Unknown Source) at com.vertica.dataengine.VQueryExecutor.execute(Unknown Source) at com.vertica.jdbc.SStatement.executeNoParams(Unknown Source) at com.vertica.jdbc.SStatement.execute(Unknown Source) at org.springframework.jdbc.core.JdbcTemplateExecuteStatementCallback.doInStatement(JdbcTemplate.java:420) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:395) ... 27 more Caused by: com.vertica.util.ServerException: [Vertica]VJDBC ERROR: COPY: Input record 1 has been rejected (Too few columns found) ... 37 more

查询:

COPY temp__FACT (ACCOUNT_ID,VISIT_ID,CAMPAIGN_SEQ,EVENT_SEQ) 
SOURCE public.Hdfs(url='DATA-r-00000') DELIMITER AS ',' ENCLOSED BY '"' 
REJECTMAX 1 ABORT ON ERROR DIRECT NO COMMIT;

COPY: Input record 1 has been rejected (Too few columns found)

检查列数是否正确。我建议使用拒绝文件或拒绝表。

因此,由于您检查了列数,请确保您的分隔符不在输入中。

我们发现问题:

Hadoop 中的一个节点是 "shaky" 因此每次 Vertica 访问该节点时文件都是空的。

停止此节点后问题解决。

我们发现了 2 个问题: 1. 节点是 "Shaky" 但仍然有 ping 因此系统 "Thinks" 它是活的 2. Vertica 无法从此节点读取文件,但没有在文件存在于

的其他节点上重试