网站首页 > 博客文章 正文
一、认识表输入(inputTable)
表输入是Kettle用来查询数据库数据的组件,即通过执行SELECT语句,从数据库拉取输入数据,首先看看原版的界面中都有哪些元素,这些元素的大概意思是什么。
界面参数说明:
- 数据库连接: 同个脚本配置了多数据源的情况下选择该组件要连接的数据源;
- 编辑: 编辑选中的数据库连接信息;
- 新建: 创建数据库连接;
- 获取SQL查询语句: 通过选择数据库中的数据表生成默认的SQL语句;
- 输入框: 自定义SQL语句;
- 允许简易转换:大字段的延迟转换(延迟转换性能更高,采用byte方式处理,否则就是string方式)
- 替换SQL语句中的变量: 如果需要传入参数则勾选上;
- 从步骤插入数据: 如果该组件有上一步骤,且需要从该步骤中获取变量作为参数则选中上一步骤;
- 执行每一行: 如果上一步骤是一个集合且该表输入需要遍历集合进行查询则勾选上;
- 记录数量限制: 限制要查询的数据记录数,0表示没有限制。
二、API开发实现
1.API 开发界面效果,其中数据库连接部分已经在开源ETL工具Kettle(PDI)开发(四)数据库连接开发中介绍了,这里不再赘述了,数据转换图形化编辑部分后面文章会专门介绍。
2.编辑步骤的代码实现,双击转换界面的步骤节点
根据选择步骤类型打开不同界面,我们选择的表输入。表输入属性都是从Xml信息获取的,具体代码如下。
这里涉及到生成sql语句、数据浏览代码由于代码篇幅太长,就不贴出来了,有兴趣的可以到我开源的代码库中去下载代码。(后台java代码部分已经开源,地址:
https://gitee.com/itsoft7/itbi-java)
三、表输入如何实现变量传参
有时候业务上需要动态查询数据,这时候就需要传入参数来实现,传入参数的方式有两种,包括从之前步骤中获取及从系统环境中获取,无论使用哪一种都是通过在SQL语句中设置占位符来实现动态查询。
第一种方式从之前步骤中获取:
第二种方式从环境变量中获取:
注意:
1.两种方式在定义参数上有所不同,从前步骤获取用?作为参数,变量的的顺序和表输入sql的顺序要保持一致,从系统环境变量获取用${}作为参数,这种方式命名上一定不能和系统参数和命名参数保持一致。
2.在表输入sql语句只执行查询语句包括查询的存储过程,其他update、delete等非查询语句都不会执行。
3.在传参时,是不能预览数据的。
常见问题一
kettle 使用表输入连接mysql获取字段名时,报check the manual that corresponds to your MySQL server version for the right syntax to use near ‘OPTION SQL_SELECT_LIMIT=DEFAULT’ 错误
kettle 报错原因分析:
5.6以下的mysql数据库,在连接数据库时候会发送测试语句SET OPTION SQL_SELECT_LIMIT=DEFAULT,通常在
mysql-connector-java-5.1.25.jar以前为了保持5.6的兼容,保留了此功能,若是mysql server版本号小于5.6,那么此功能支持;若mysql版本号大于5.6,那么则不支持此功能,需要升级mysql connector版本,否则会引起此报错。
解决办法
升级mysql-connector-java为
mysql-connector-java-5.1.47.jar,即可正常使用。
猜你喜欢
- 2025-04-07 数据测试:必备的 Hive 安装&交互方式技能,赶紧GET
- 2025-04-07 [干货]Hive与Spark sql整合并测试效率
- 2025-04-07 [软件编程]JSP软件开发入门--编程环境搭建
- 2025-04-07 Flink SQL Client综合实战(flink实时数仓架构)
- 2025-04-07 Flink on Yarn三部曲之一:准备工作
- 2025-04-07 JAVA基础(java基础入门第三版pdf下载)
- 2025-04-07 Chaosblade: 阿里一个超级牛逼的混沌实验实施工具
- 2025-04-07 字节三面:MySQL数据同步ES的4种方法!你能想到几种?
- 2025-04-07 [JPA教程]01.JPA环境搭建Hibernate.md
- 2025-04-07 0753-6.3.3-如何在Redhat7.6安装CDH6.3.3
你 发表评论:
欢迎- 374℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 369℃用AI Agent治理微服务的复杂性问题|QCon
- 360℃初次使用IntelliJ IDEA新建Maven项目
- 353℃Maven技术方案最全手册(mavena)
- 351℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 348℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 346℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 344℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)