Kettle手册(十)- 跨库查询

浏览: 2343

Kettle整体使用起来,还是很方便的,熟悉应用了之后,就是对控件的熟悉和使用了,只要思路有了,就是整合下Kettle中各个控件的使用就行。

这里,简单介绍下一个“跨库查询”的控件。

有的时候,我们一个脚本,可能只是临时性的,或者需要实时的去查一下,同步到数仓的话,可能不太方便,我们就可以使用跨库查询的控件

用到的表信息

图片.png

图片.png


1. 数据库连接(Database Join)

我们先用这个控件来实现一下

图片.png

用起来也很简单

图片.png


表输入:是我们第一个库中的SQL

数据库连接:是我们另一个库的SQL

图片.png

我们用关联的字段放在where条件后,使用“?”来占位,并在下面,选择要传入的参数

默认的话,是JOIN,我们也可以勾选Outer Join,

然后,我们看下,输出就行

图片.png

这是后面导出的文件,

图片.png

这里,我们就简单实现了跨库的查询


2. 数据库查询

我们再来看另一个控件,“数据库查询”,这个控件同样可以实现跨库,但是有一个小问题

首先,我们使用上一次的数据来看

图片.png

图片.png

我们执行下,结果看上去是一样的

图片.png

这其实有个隐藏的问题,我们再增加几条记录看看

图片.png

比如:现在1号有2条记录,正常的话,我们导出也是要有2条的

我们执行下看看

图片.png

我们会看到,数据并没有增加,这是控件导致的,

先获取左边的结果集,然后一条一条去右边匹配;匹配到第一条记录后,就会跳出,直接去匹配下一个,所以,我们有2条记录,也只会找到第一个。

这并不是我们想要的,我们再试下第一个控件

图片.png

使用这个“数据库查询”控件的话,可以通过将1-N关系汇总,将N的一方,放在前面

图片.png

图片.png


最后的结果也是可以的

图片.png

推荐 3
本文由 liutangwow 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册