通过datastage插入表KUDU

Posted

技术标签:

【中文标题】通过datastage插入表KUDU【英文标题】:Insert into table KUDU by datastage 【发布时间】:2019-02-28 16:32:28 【问题描述】:

我写信是为了询问我的过程中的一个问题:

我有一个 Kudu 表,当我尝试使用 Impala JDBC 驱动程序通过 datastage(11.5 或 11.7)插入大小大于 500 个字符的新行时,我收到此错误:

致命错误:连接器未能执行语句:INSERT INTO default.tmp_consulta_teste (idconsulta, idcliente, idinstituicao, idunidadeinst, datahoraconsulta, desccpfcnpj, idcentral, idcontrato, idusuario, valorconsulta, descretornoxml, idintegracaosistema, nomeservidor) VALUES (? ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)。报告的错误是: [SQLSTATE HY000] java.sql.SQLException: [Cloudera]ImpalaJDBCDriver 获取参数数据类型时出错:HIVE_PARAMETER_QUERY_DATA_TYPE_ERR_NON_SUPPORT_DATA_TYPE。

******************如何解决?我需要加载该信息。 **********

【问题讨论】:

你看community.cloudera.com/t5/Interactive-Short-cycle-SQL/…了吗? 【参考方案1】:

我遇到了类似的问题,我收到的错误是:

Servlet.service() for servlet [dispatcherServlet] in context with path [] threw 
exception [Request processing failed; nested exception is  
org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; 
uncategorized SQLException for SQL [update service set comments =? where service_name 
="Zzzzz";]; SQL state [HY000]; error code [500352]; [Simba] 
[ImpalaJDBCDriver](500352) Error getting the parameter data type: 
HIVE_PARAMETER_QUERY_DATA_TYPE_ERR_NON_SUPPORT_DATA_TYPE; nested exception is 
java.sql.SQLException: [Simba][ImpalaJDBCDriver](500352) Error getting the parameter 
data type: HIVE_PARAMETER_QUERY_DATA_TYPE_ERR_NON_SUPPORT_DATA_TYPE] with root cause

我在以下链接中提到了最后一个答案: https://community.cloudera.com/t5/Support-Questions/HIVE-PARAMETER-QUERY-DATA-TYPE-ERR-NON-SUPPORT-DATA-TYPE/td-p/48849

我做了以下事情:

1.确保表是 Kudu 表。

    我做了 jdbcTemplate.batchUpdate 而不是 jdbcTemplate.query,以便使用 PreparedStatement,SetObject in PreparedStatement

    jdbcTemplate.batchUpdate(UpdateComment, new BatchPreparedStatementSetter()
    
        @Override
        public int getBatchSize() 
    
            return 1;
        
    
        @Override
        public void setValues(PreparedStatement ps, int i) throws SQLException 
            ps.setObject(1, comments);
    
        
    
    );
    

【讨论】:

以上是关于通过datastage插入表KUDU的主要内容,如果未能解决你的问题,请参考以下文章

datastage获取csv文件,并插入数据库

Hive拉链表

DataStage中mergelookupjoin的区别与联系

XML 中的无效字符使 Datastage 作业失败

Datastage JDBC Connector 中文乱码处理

DataStage软件的优缺点