0


Kettle报错:使用mysql向hive中插入数据只能插入两条的错误

错误展示

我们在用kettle,使用mysql向hive中插入数据的时候,创建好了一个转换,里面的操作也全部完成了之后,在执行时爆出一下错误

例如我这里写入的表输入为:

表输出为:

解决办法

看起来是一点问题也没有,但是一执行就会报上述错误,这时只需要在我们的/opt/installs/hive/conf下创建一个 .hiverc文件,在里面写入以下内容即可

set hive.stats.column.autogather=false;

这时再次运行,即成功!(甚至都不需要重启hiveserver2)

补充一个新错误(小问题)

还有一个小问题,如果我们表输入的字段里面有date类型的值的时候,我们执行运行kettle的时候也会报一个错误,

即:Caused by: java.sql.SQLFeatureNotSupportedException: Method not supported

2024/09/11 17:19:29 - 表输出.0 - Caused by: org.pentaho.di.core.exception.KettleDatabaseException:
2024/09/11 17:19:29 - 表输出.0 - Error setting value #9 [Date] on prepared statement
2024/09/11 17:19:29 - 表输出.0 - Method not supported
2024/09/11 17:19:29 - 表输出.0 -
2024/09/11 17:19:29 - 表输出.0 - at org.pentaho.di.core.row.value.ValueMetaBase.setPreparedStatementValue(ValueMetaBase.java:5477)
2024/09/11 17:19:29 - 表输出.0 - at org.pentaho.di.core.database.Database.setValue(Database.java:1080)
2024/09/11 17:19:29 - 表输出.0 - at org.pentaho.di.core.database.Database.setValues(Database.java:1096)
2024/09/11 17:19:29 - 表输出.0 - ... 4 more
2024/09/11 17:19:29 - 表输出.0 - Caused by: java.sql.SQLFeatureNotSupportedException: Method not supported
2024/09/11 17:19:29 - 表输出.0 - at org.apache.hive.jdbc.HivePreparedStatement.setDate(HivePreparedStatement.java:460)
2024/09/11 17:19:29 - 表输出.0 - at org.pentaho.di.core.row.value.ValueMetaBase.setPreparedStatementValue(ValueMetaBase.java:5412)
2024/09/11 17:19:29 - 表输出.0 - ... 6 more

这个问题也很好解决,通过查看错误,发现是 Date 类型的错误,所以,修改表输入中的 SQL 语句:

只需将表输入中date字段所在的地方,将默认的字段格式化以下即可

例如:

SELECT
  id
, name
, age
, gender
, province
, city
, region
, phone
, date_format(birthday,'%Y-%m-%d') birthday
, hobby
, date_format(register_date,'%Y-%m-%d %h:%i:%s') register_date
FROM kettle_demo.t_user

此时问题解决!运行正常!

标签: mysql hive 数据库

本文转载自: https://blog.csdn.net/qq_62984376/article/details/142168903
版权归原作者 scc2140 所有, 如有侵权,请联系我们删除。

“Kettle报错:使用mysql向hive中插入数据只能插入两条的错误”的评论:

还没有评论