Вставить в таблицу 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. Убедитесь, что это стол Куду.
Вместо 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); } });