首页 > 代码库 > BI之ETL学习(一)kettle

BI之ETL学习(一)kettle

最近开始折腾数据,起源是多业务数据源需要转换到数据分析平台。这个过程需要跨机器,跨库。同时还需要将业务数据表的内容进行转换,合并,清洗等等操作。

经过多方选型,最终决定使用kettle来作为数据抽取处理的工具。

但是,在这里,是想吐槽下kettle这东西的问题。

1.kettle的版本使用的是5.1,搭建了一个kettle的集群之后,经常遇到的问题就是虚拟文件系统异常,作业,或者转换 "is a not a file."。网上找到的解决办法是远程上传的作业是xml,但是缺乏XML头,因此在做XML解析的时候出问题了。但是手工添加然后指定发布太麻烦了,所幸出现几率不大,目前也就顺其自然,先用起来再说。后续受不了了自己维护一套系统,把这个bug修复(此bug在官网的buglist里面历经多年未修复,真是。。。。);

2.kettle的作业,转换,无论结束与否默认情况下是持续可见的,但是那种连续执行的作业,定时执行的作业,在运行一段时间之后就满屏了

像上图这种效果,特别难受,而且这种日志一直保留也会导致jvm oom。但是配置了一些参数:

<slave_config>

<masters>

<slaveserver>

<name>10.172.7.12</name>

<hostname>10.172.7.12</hostname>

<port>8181</port>

<username>admin</username>

<password>admin</password>

<master>Y</master>

</slaveserver>

</masters> 

<report_to_masters>Y</report_to_masters>

<slaveserver>

<name>10.172.7.13</name>

<hostname>10.172.7.13</hostname>

<port>8181</port>

<username>cluster</username>

<password>cluster</password>

<master>N</master>

</slaveserver>

</slave_config>

之后,发现集群运行的作业执行完毕之后不能释放端口。所以又倒回来,只能接受过阵子重启集群这种现实。

3.提供的开始功能,虽然有定时的能力,但是有人说这东西不靠谱,官方也不推荐使用,难道做数据维护,一定需要依赖代码?

4.虽然有推荐java调用kettle的API来操作定时任务与作业,转换,但是,我希望这种数据处理过程可以不依赖代码。这样可以保证业务扩展的时候,可以快速匹配,不需要开发接入代码进行维护。但是,这种运行质量与效果,不知道能忍多久啊。

BI之ETL学习(一)kettle