请教如何学习kettle工具优缺点


操作完上面的步骤后,会出现下面图片的界面



如果之前建立过资源库,会展示出目前所有的资源库,选中一个想要的,点击确定就可以了。如果没有,可以点击“+”来添加一个新的资源库。点击之后出现下图的界面。





图中圈中的为必填的,填好之后点击确定,这样就成功添加了一个新的资源库。



点击确定即可连接成功。

2. 如何连接数据库在连接数据库之前,首先需要保证当前在一个transform(转换)页面,然后点击左侧选项栏中的“主对象树”,然后右键点击“DB连接”,选择“新建”。







3. 如何解决数据库连接更新不及时问题有时候我们数据库中的表的字段进行了更新(增加或删除字段),但是在使用“表输入”控件的“获取SQL语句”功能是会发现的到的字段还是原来的字段,这是由于缓存造成的,需要进行缓存清理。









而运行该transform时会在D:\SVN\etl_repo\smzdm\recommend目录(配置属性中的目录)下寻找这个trans.ktr文件,这就导致找不到文件的错误。需要将配置文件中的目录跟实际文件所在目录保持一致。更改步骤如下图:



然后就进入到了当前Transform的配置页面。修改配置中的目录即可。

如何解决tinyint类型数据丢失问题在Kettle使用JDBC连接MySQL时,对于表中数据类型为tinyint的字段,读取时有可能会将其转为bool类型,这有可能造成数据丢失。例如,有一个叫status名字的tinyint类型字段,取值有三种:0、1、2。kettle读取之后很可能将0转为false,1、2都转为true。输出时,将false转为0,true转为1,这样就会造成元数据中status为2的数据被错误的赋值为1。

}

 这次间隔时间比较长,这次记录一下怎么使用java来调用我们书写好的kettle脚本,因为我之前一直是使用创建文件的形式来保存kettle脚本,所以对于kettle来说使用java程序来说可以对kettle脚本可以随意的调用的。那么废话不多说了,贴出示例代码:

* 执行本地job脚本 * job脚本路径以及文件名称 // 向job脚本传递参数,脚本中获取参数值:${参数名} // 如果需要从方法参数中添加并在此处添加 // 等待job执行结束,然后程序才继续执行 * 调用本地转换脚本(带参数) * 转换脚本路径以及文件名 // 设置日志等级(debug非常详细,对于跟踪问题有帮助) // 执行转换准备执行 // 直接执行(需要传入参数,如果使用该方法。可以不是用prepareExecution。)

   这段相信如果用到的人,已经在网上找到一大堆了,只要按照这个例子进行一些修改就可以了。

   ps:其中这里面需要说明的一点就是无论是java代码执行转换还是执行job,都是可以传入参数(这个参数只能是string类型,比如想传入日期、整数或者浮点等类型,这就需要向String类型转)。

下面做一个kettle的例子吧!如图:

首先,要创建一个转换,在输入中拖拽出获取系统信息,按照图片上面设置一下,然后在输出中拖拽出文本文件输出,如图:

配置好文件的输出位置和类型,然后配置字段,如图:

然后执行我们的java程序,执行java程序可能需要很多jar包,这些jar包都可以在这里,如图:

然后执行我们的程序,如图:

控制台打印出来的是kettle日志和我获取的result的xml输出,可以忽略了,结果只看INFO开头的就行了。

那么简单使用java调用kettle就完成了。

job在这里没有写,是因为job的传参数十分简单,只要使用:job.setVaribale("name","");//这段代码就可以传入参数到job中,在job中使用也特别简单。直接在需要使用的地方${name},就可以取到传入的值了。

}

我要回帖

更多关于 kettle工具优缺点 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信