欢迎来到天天文库
浏览记录
ID:10018582
大小:99.00 KB
页数:3页
时间:2018-05-21
《kettle之多表数据复制》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、kettle之------多表数据复制需求:把A库中N个表抽取至B库中,表结构相同或只是增加统一的一些字段,过滤条件基本类似。解决方法:我们把以上内容在解决问题上拆分为二步,1,从一配制表中读出相应的表名及过滤条件,存于一结果。2,根据第一步的结果,一条条循环来进行取数插数的过程。以上过程相当简单,以下为讨论的实现方式。1,如果是ORACLE同字符集,用DBLINK结合着存储过程,写一个通用的程序很容易搞定,只需要建立一个表名及过滤条件的配制表(在此就不多说了)。2,用ETL工具实现,据我所知,以infa为例,它以字段为对应
2、关系,且它的流程内部循环相当困难,曾经我们有个项目,infa就是硬生生的画了一二百个mapping(的确,不会累死人,但看着相当不爽,当然,欢迎提供好的方案),在此,我们以kettle为例进行分析,如何解决这个问题(先抛开性能,kettle的确是个好东西)1),主流程大概是如下这样的在此,我们再看一下第一组件(得到多表表名)里面内容,我们再看一下得到表名中的内容这其中的sql只是模拟一个得到表名的sql,可灵活使用,这个组件其实就完成了把要抽取的表放入一个结果集中了。我们再看第二个组件(表迁移)就是一个取数一个插数的过程。再
3、看一下它们的内容在此就完成了,但是,我们主job设置(表迁移)组件时,也就是把前面的内容当后面的参数循环执行。基本就是如此,另,记得在各主流程及二转换中都设置tt_tab这个参数。说了这么多,其实很简单。如果你是要做数据库表复制的话,kettle有其它的方式,可以根据工具-》向导-》复制表向导完成。以上这种适应的是,可实现一些sql的拼接,且要增加减少表时只需求维护配制表了,相对来说会变的简单。。kettle交流群87340451
此文档下载收益归作者所有