本文主要是介绍Kettle8.2查询组件之流查询,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Kettle8.2查询组件之流查询
- 一、相关说明
- 二、设计转换
- 三、转换配置
- 四、运行转换
- 五、结果分析
一、相关说明
- 数据库查询组件说明:
流查询
在查询前把数据都加载到内存
中,并且只能进行等值查询
。 - 需求说明:
从A数据库中的sys_dept表中读取数据,在从从B数据库中sys_user表查询数据,然后根据dep_id获取dep_name,保存到Excel中。 - 源表sys_user和sys_dept建表语句及数据参考如下博文:
Kettle8.2查询组件之数据库查询
二、设计转换
- 输入:表输入(两个步骤)
- 查询: 流查询
- 输出:Excel输出
三、转换配置
-
Step1:表输入(连接A库)组件配置
- 双击组件,写上步骤名称等
- 相关配置如下所示:
-
Step2:表输入(连接B库)组件配置
- 双击打开,设置步骤名称
- 配置信息,如下
-
Step3:流查询组件配置
- 双击打开,设置步骤名称
- 配置信息,如下,其中lookup setup 指的是从哪个步骤查询数据
-
Step3:Excel输出组件配置
- 双击打开,设置步骤名称
- 配置信息,如下
-
Step4:保存转换
上述配置好后,点击确定即可!
四、运行转换
- 点击运行按钮,成功运行如下:
五、结果分析
-
在Excel中查看结果
-
Preview data 中查看结果
切换到“Preview data页面”- 点击“流查询”,看到结果数据
- 点击“流查询”,看到结果数据
-
结果简单分析
流查询
组件本质上就是将前一步骤查询出的结果集中的字段作为查询条件,循环执行lookup setup中所指定的步骤,会将当前查询出来的字段及数值缓存到行集中,经Hop传递到下一个步骤,即Excel输出。该案例实现的功能,其实可以等价于如下SQL语句:SELECT * FROM sys_user u LEFT JOIN sys_dept d ON u.`dept_id`=d.`dept_id`;
稍微不同的是,该SQL语句是用于同一个库下的两张表的等值连接,而案例是它连接了两个不同的数据库而已。
这篇关于Kettle8.2查询组件之流查询的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!