之前的博客提到过,kettle的数据抽取主要在于抽取数据,而没有考虑数据库的函数、存储过程、视图、表结构以及索引、约束等,但这些对于数据库来说又是至关重要的,所以我们需要通过修改源码的方式来实现。
具体实现方式为:扩展kettle向导中的多表复制菜单里的功能,在该功能创建的作业中添加节点用于添加输出表的主键和索引。
一、Kettle源码下载
目前我使用的是kettle7.0.0版本,下载的源码版本要与之对应,git下载地址:
https://github.com/pentaho/pentaho-kettle/tree/7.0.0.0-R
在master下选择tags选项卡,选取自己需要的版本:
现在我们拥有了发行版kettle工具和对应的源码,就可以开始进行修改了。
二、Kettle源码运行
1.创建java项目
新建java项目并在项目根目录下建立core,dbdialog,engine,ui,plugins,lib文件夹。
分别将源码目录下的代码拷贝到对应的项目文件下:
拷贝之后各个文件内容如下:
Core,engine,ui,dialog文件内容:
plugins文件内容:
将发行版kettle工具免安装包的lib,libswt,launcher,simple-jndi 四个文件夹拷贝至java项目的根目录,全