欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Kettle使用心得汇总系列一

程序员文章站 2022-03-04 18:20:03
Kettle使用心得汇总系列一 一、kettle实现的功能: kettle可以实现从不同数据源(excel、数据库、文本文件等)获取数据,然后将数据进行整合、转换处理,可以再将数据输出到指定的位置(excel、数据库、文本文件)等; 通过kettle处理大量数据非常方便,如果window服务器或者L ......

Kettle使用心得汇总系列一

一、kettle实现的功能:

kettle可以实现从不同数据源(excel、数据库、文本文件等)获取数据,然后将数据进行整合、转换处理,可以再将数据输出到指定的位置(excel、数据库、文本文件)等;

通过kettle处理大量数据非常方便,如果window服务器或者Linux服务器硬件一般情况下,对于处理千万级一下的数据都是可以的;

二、Kettle作业与转换如何配合使用:

一个作业相当于一个主要任务项,在这个主线中可以调用其它若干个转换,每个转换中可以从作业这个主线中获取数据,然后将数据进行相应的处理操作,再将数据传递给作业主线,也可以在转换中单独获取数据------处理数据------输出数据;

并且如果对于需要设置变量的情况下,一般也是需要用到作业与转换的配合使用,因为变量在当前线中设置,不能再当前线中获取,需要到下一个线中才能够获取;

三、Kettle中设置编码格式:

如果处理的数据中有中文,需要对中文设置编码格式,一般是utf8格式,彻底的修改格式的方法就是,修改spoon.bat文件中增加如下信息:"-Dfile.encoding=UTF-8";

 Kettle使用心得汇总系列一

四、Kettle中调整运行性能:

Kettle默认的性能适用于普通的一般硬件,如果自己的电脑硬件比较好(内存比较大),可以对kettle的spoon.bat中的参数进行修改,这样可以适当的提高kettle的运行性能,主要是修改-Xms、-Xmx、-XX:MaxPermSize三个参数的值:

-Xms:设置JVM初始内存 ;
-Xmx:设置JVM最大可用内存 ;
-XX:MaxPermSize:设置JVM最大允许分配内存,按需分配;

非常注意:

1、 -Xmx必须小于等于系统内存的1/4,要不然会报错,其他两个选项不大于-Xmx ;
2、当系统内存为4G时-Xmx不能大于1G,当系统内存为8G或更大时,java版本必须是64位的才能识别出来,此时-Xmx可以为2G或更高

自己配置的信息:window服务器内存8G:

-XX:MaxPermSize = -Xmx = 4096m;

-Xms =  1024m

 Kettle使用心得汇总系列一

五、Kettle中常用的控件:

(1)作业中常用控件:

1、通用——START:作业开始;

2、通用——作业:指定某个作业循环执行;

3、通用——转换:指定某个转换,加入到作业中来;

4、通用——设置变量:设置变量,为了转换或者作业中获取变量;

5、通用——成功:作业完成操作;

(2)转换中常用控件:

1、输入——Excel输入:从excel文件中读取数据;

2、输入——文本文件输入:从文本文件中读取数据;

3、输入——生成随机数:用来生成指定类型的随机数;

4、输入——自定义数据常量:将值不变的变量存入到此处,方便管理;

5、输入——获取系统信息:可以获取系统信息(日期、命令行参数);

6、输入——表输入:从数据库表中读取数据;

7、输出——Excle输出:注意.xls格式输出行数有限制,一般输出.xlsx最好;

8、输出——插入/更新:根据指定的匹配字段,可以检测是插入新数据,还是修改旧数据;

9、输出——文本文件输出:将结果数据输出到文本文件中去;

10、输出——表输出:将结果数据输出到某个数据库的某个表中;

11、转换——增加常量:在原数据中将常量值增加新一列;

12、转换——排序记录:对原数据按照某个字段进行排序;

13、流程——空操作:将不需要的数据放到此处,类似垃圾箱;

14、流程——过滤记录:按照条件进行过滤,类似if-else;

15、流程——Switch/Case:与java中switch/case一样;

16、脚本——java代码:执行java代码;

17、脚本——javascript代码:执行javascript代码;

18、脚本——执行SQL脚本:执行sql;

19、连接——记录集连接:类似于sql的left join/right join/inner join,但是使用前的数据必须要经过排序;

20、作业——从结果获取记录:从作业中获取数据;

21、作业——复制记录到结果:将转换中的结果数据放到作业中去;

22、作业——获取变量:从作业中获取变量;

23、作业——设置变量:设置变量,从而让作业中能够获取变量;

六、Kettle中javascript脚本执行:

在javascript脚本中可以直接定义变量,可以直接从上一个控件中获取值,获取值的方法直接写前一个控件中某列的列明就好,定义的变量在后续的控件中都可以直接获取:

 Kettle使用心得汇总系列一

七、Kettle中常用的功能代码:

1、javascript生成uuid的代码:

var uuid = replace(java.util.UUID.randomUUID(),"_","");

2、Javascript截取前一个控件中某个字段的长度,获取另外一个变量:

var choice = substr(tydm,0,4);

0:开始截取的角标;4:表示截取的长度;

八、Kettle中常见的异常处理:

1、异常类型:java.lang.*Error

原因:栈溢出,可能是在处理的数据比较大,栈默认值不够使用了;

解决方法:修改kettle中的启动项spoon.bat中的信息,添加一个Xss=1024m即可解决,如果还不够,可根据硬件来适当增加值;

 Kettle使用心得汇总系列一

2、中文输出乱码问题:

设置编码格式,具体操作上述有步骤;