最近公司实施不知道为什么离职了,然后我被迫去干kettle抽取数据到es,到金仓,到mysql...
一开始是各种报错,头都大了,后来经过多次查找翻阅,到现在遇到的问题都是可以解决的。
闲话少说,接下来就来讲讲kettle的使用及注意事项,常见报错处理。
首先是安装kettle,kettle的安装教程网上随处可见,我就不赘述了,安装很方便。
安装之后便是使用,kettle通过spoon.bat文件双击就可以直接启动,附图如下:
目前我使用它都是用来抽取数据的,因此抽数据肯定有一个来源和流向,来源和流向就看你的具体需求了,举个例子,从mysql抽取数据到elasticsearch,那我们就肯定需要建立相应的连接信息。
数据库连接:
然后填写相应的信息就可以,此外还需要将对应的jar包放到
此目录下,对应看具体的安装位置,默认是这样的。
然后就是es的配置了:如下图
其中index是你的es的索引名字,type是类型,默认一般是_doc
servers就是你的es的ip地址和端口号;
fields就是映射的字段。
然后我们点击运行就可以了:
,成功或者失败会弹出一个控制台,有日志信息可以看到。
接下来讲讲一般遇到的问题
1.数据量极大,单表几百万条的那种,此时我们需要分批次,进行抽取,否则就可能会报错:nullpointexception
2.就是数据库的流向和来源数据冲突,比如来源数据有一条id为1的数据,但是流向也已经存在一条id为1的数据,这个问题我个人的解决方法是,从sql语句下手,将查询得到的id加上一定的数字,使他不重复,当然也看到过一个增加序列的方法,过于复杂,而且会改变表数据,我就没这么做。
3.还有就是一些由于自己配置不得当遇到的报错,多尝试还是不复杂的。
接下来介绍一下常用的全量抽取和增量抽取。
用俗话讲,全量抽取就是抽取所有数据,增量就是抽取相比原来上增加的数据。
这个全量抽取就是我们通常所用的直接抽取,增量抽取我们就需要在新建一个表输入,然后编写增量的条件的sql。
值得注意的是,抽取数据的速度可能会让你心烦,因为抽取数据的速度和你的电脑配置有着很大关系,但是仍然可以通过一些人为的方式,在一定程度上打破它的性能瓶颈。
下面介绍两个方法:
1.这个就比较简单了,修改提交记录数量,操作如下图:
2.从kettle的配置文件入手,也就是修改spoon.bat的运行内存,但是此操作注意谨慎操作,千万要考虑清楚这么操作的后果,如果设置不当可能会导致你的kettle出一些奇怪的问题。
除此之外,还有大家常用的定时抽取,这个就是新建一个转换,然后选择start,转换,成功就可以了
值得注意的是,这种方式需要kettle程序始终运行。因此,我们也可以通过编写脚本文件,通过windows自带的定时任务程序来执行。
此次就是带来的kettle的相关使用及问题解决和注意事项,如有误还请不吝赐教。