首页 > 代码库 > 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