关于kettle 写入mysql 遇到一个问题:LOAD_TEMP - Unable to get database metadata from this database connection,报错大致如下:

2021/11/26 14:05:12 - LOAD_TEMP - ERROR (version 5.3.0.0-213, build 1 from 2015-02-02_12-17-08 by buildguy) : org.pentaho.di.core.exception.KettleDatabaseException: 
2021/11/26 14:05:12 - LOAD_TEMP - Unable to get database metadata from this database connection
2021/11/26 14:05:12 - LOAD_TEMP -  at java.lang.Thread.run (Thread.java:748)
2021/11/26 14:05:12 - LOAD_TEMP -  at org.pentaho.di.trans.step.RunThread.run (RunThread.java:121)
2021/11/26 14:05:12 - LOAD_TEMP -  at org.pentaho.di.trans.step.BaseStep.markStop (BaseStep.java:2995)
2021/11/26 14:05:12 - LOAD_TEMP -  at org.pentaho.di.trans.Trans$1.stepFinished (Trans.java:1244)
2021/11/26 14:05:12 - LOAD_TEMP -  at org.pentaho.di.trans.Trans.access$600 (Trans.java:155)
2021/11/26 14:05:12 - LOAD_TEMP -  at org.pentaho.di.trans.Trans.killAllNoWait (Trans.java:1727)
2021/11/26 14:05:12 - LOAD_TEMP -  at org.pentaho.di.trans.step.BaseStep.stopAll (BaseStep.java:2866)
2021/11/26 14:05:12 - LOAD_TEMP -  at org.pentaho.di.trans.Trans.stopAll (Trans.java:1892)
2021/11/26 14:05:12 - LOAD_TEMP -  at org.pentaho.di.trans.steps.sql.ExecSQL.stopRunning (ExecSQL.java:268)
2021/11/26 14:05:12 - LOAD_TEMP -  at org.pentaho.di.core.database.Database.cancelQuery (Database.java:660)
2021/11/26 14:05:12 - LOAD_TEMP -  at org.pentaho.di.core.database.Database.getDatabaseMetaData (Database.java:2718)
2021/11/26 14:05:12 - LOAD_TEMP - 
2021/11/26 14:05:12 - LOAD_TEMP - 	at org.pentaho.di.core.database.Database.getDatabaseMetaData(Database.java:2720)
2021/11/26 14:05:12 - LOAD_TEMP - 	at org.pentaho.di.core.database.Database.cancelQuery(Database.java:660)
2021/11/26 14:05:12 - LOAD_TEMP - 	at org.pentaho.di.trans.steps.sql.ExecSQL.stopRunning(ExecSQL.java:268)
2021/11/26 14:05:12 - LOAD_TEMP - 	at org.pentaho.di.trans.Trans.stopAll(Trans.java:1892)
2021/11/26 14:05:12 - LOAD_TEMP - 	at org.pentaho.di.trans.step.BaseStep.stopAll(BaseStep.java:2866)
2021/11/26 14:05:12 - LOAD_TEMP - 	at org.pentaho.di.trans.Trans.killAllNoWait(Trans.java:1727)
2021/11/26 14:05:12 - LOAD_TEMP - 	at org.pentaho.di.trans.Trans.access$600(Trans.java:155)
2021/11/26 14:05:12 - LOAD_TEMP - 	at org.pentaho.di.trans.Trans$1.stepFinished(Trans.java:1244)
2021/11/26 14:05:12 - LOAD_TEMP - 	at org.pentaho.di.trans.step.BaseStep.markStop(BaseStep.java:2995)
2021/11/26 14:05:12 - LOAD_TEMP - 	at org.pentaho.di.trans.step.RunThread.run(RunThread.java:121)
2021/11/26 14:05:12 - LOAD_TEMP - 	at java.lang.Thread.run(Thread.java:748)
2021/11/26 14:05:12 - LOAD_TEMP - Caused by: java.lang.NullPointerException
2021/11/26 14:05:12 - LOAD_TEMP - 	at org.pentaho.di.core.database.Database.getDatabaseMetaData(Database.java:2718)
2021/11/26 14:05:12 - LOAD_TEMP - 	... 10 more
2021/11/26 14:05:12 - LOAD_TEMP - ERROR (version 5.3.0.0-213, build 1 from 2015-02-02_12-17-08 by buildguy) : 错误被检测到!

大致的意思就是 不能获取到数据库中的源数据,在网上查找一番,建议是清理数据库的缓存如下:

工具  --->   数据库  --->  清楚缓存

但是操作下来没有用。

仔细检查了一下影射字段

 在对应的表中,此字段为 is_weak_point ,hive表中的字段拼写错了。是通过获取字段直接来的。看来这个还是得仔细的核对字段名称,避免因字段拼写导致问题。将表字段改成is_weak_point 就行了。

还有一种情况也有可能出现问题。我们一般在hive 中字段类型一般用String 类型,但是业务库中字段却不是,大部分情况下是没有问题,但是遇到 数据库 中使用bit 类型,可能会出问题,一般是文件输入定义字段的时候,将String转成boolean 类型:

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐