使用Pentaho无法从MariaDB读取数据(报invalid fetch size错误)
解决Pentaho Kettle Table Input连接MariaDB时的"invalid fetch size"错误
已成功连接到MariaDB数据库,连接测试正常,但使用Table Input转换执行简单查询SELECT * from patient limit 10;时,出现以下错误:
37:11 - Table input.0 - ERROR (version 9.3.0.0-428, build 9.3.0.0-428 from 2022-04-12 04.56.25 by buildguy) : 意外错误 2022/12/13 11:37:11 - Table input.0 - ERROR (version 9.3.0.0-428, build 9.3.0.0-428 from 2022-04-12 04.56.25 by buildguy) : org.pentaho.di.core.exception.KettleDatabaseException: 2022/12/13 11:37:11 - Table input.0 - 执行SQL时发生错误: 2022/12/13 11:37:11 - Table input.0 - SELECT * from patient limit 10; 2022/12/13 11:37:11 - Table input.0 - 2022/12/13 11:37:11 - Table input.0 - (conn=49) 无效的抓取大小 2022/12/13 11:37:11 - Table input.0 - 2022/12/13 11:37:11 - Table input.0 - at org.pentaho.di.core.database.Database.openQuery(Database.java:1776) 2022/12/13 11:37:11 - Table input.0 - at org.pentaho.di.trans.steps.tableinput.TableInput.doQuery(TableInput.java:242) 2022/12/13 11:37:11 - Table input.0 - at org.pentaho.di.trans.steps.tableinput.TableInput.processRow(TableInput.java:143) 2022/12/13 11:37:11 - Table input.0 - at org.pentaho.di.trans.step.RunThread.run(RunThread.java:62) 2022/12/13 11:37:11 - Table input.0 - at java.lang.Thread.run(Thread.java:750) 2022/12/13 11:37:11 - Table input.0 - Caused by: java.sql.SQLSyntaxErrorException: (conn=49) 无效的抓取大小 2022/12/13 11:37:11 - Table input.0 - at org.mariadb.jdbc.export.ExceptionFactory.createException(ExceptionFactory.java:282) 2022/12/13 11:37:11 - Table input.0 - at org.mariadb.jdbc.export.ExceptionFactory.create(ExceptionFactory.java:336) 2022/12/13 11:37:11 - Table input.0 - at org.mariadb.jdbc.Statement.setFetchSize(Statement.java:587) 2022/12/13 11:37:11 - Table input.0 - at org.pentaho.di.core.database.Database.openQuery(Database.java:1754) 2022/12/13 11:37:11 - Table input.0 - ... 4 more 2022/12/13 11:37:11 - Table input.0 - 完成查询读取,正在关闭连接 2022/12/13 11:37:11 - Table input.0 - 处理完成 (I=0, O=0, R=0, W=0, U=0, E=1)
解决方案
修改数据库连接参数
打开数据库连接配置的高级选项卡,添加参数useFetchSize=false,或设置fetchSize为正整数(如1000),保存后重新运行转换。调整Table Input步骤设置
打开Table Input配置窗口,在选项区域取消勾选「使用抓取大小」,或手动设置合理的抓取大小值,保存后执行查询。更新JDBC驱动
检查MariaDB JDBC驱动版本与Pentaho Kettle的兼容性,若驱动过旧,替换为最新稳定版驱动。修改连接URL
在数据库连接URL末尾追加&useFetchSize=false,示例:jdbc:mariadb://localhost:3306/your_database?useFetchSize=false保存连接后重新测试。
内容的提问来源于stack exchange,提问作者moe_
相关产品推荐
相关产品推荐

