Вставить в таблицу KUDU по данным

Я пишу, чтобы узнать о проблеме в моем процессе:

У меня есть таблица Куду, и когда я пытаюсь вставить по данным (11.5 или 11.7) новую строку, размер которой превышает 500 символов с помощью драйвера JDBC Impala, я получаю эту ошибку:

Фатальная ошибка: Соединитель не удалось выполнить оператор:? 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.

************** Как я могу это исправить? Мне нужно загрузить эту информацию. **********

0 ответов

У меня была аналогичная проблема, когда я получил ошибку:

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. Убедитесь, что это стол Куду.

  1. Вместо jdbcTemplate.query я сделал jdbcTemplate.batchUpdate, чтобы использовать PreparedStatement, сделал SetObject в 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);
    
        }
    
    });
    
Другие вопросы по тегам