第一次写博客,心里有点小激动,肯定有很多需要改进的地方,望海涵. kettle算是我相对较为深入研究过的开源软件了,也是我最喜欢的开源软件之一,它可以完成工作中很多体力劳动,在ETL数据抽取方面得到了广泛的使用.我本身对kettle的各个控件使用也不是很熟悉,只会使用最常见的部分控件,就是这样简单的使用也被它的美深深的吸引住了. 好了,进入正题,这里假设你熟悉java开发.git一般使用.kettle一般使用.kettle源码之前托管在kettle官方的svn上,后来迁移到了github上,在g…
本文就是分享下二进制文件(图片.txt文件等)在oracle和文件系统间的传输的转换示例. 转换示例如下图: 示例本身较简单,但很多人应该还是不太清楚怎么做,很多时候都是上网搜索,网上有关的就是通过javascript脚本入库,整体体验不太好,这里分享的这个示例是我和搞数据的朋友讨论慢慢弄出来的,在windows中文件图片在oracle和文件系统间相互传输都能正常打开.通过kettle自带的控件实现,很简单,主要就是控件属性的设置. 该示例测试mysql的结果是:文件入库没问题,图片入到mysq…
该kettle插件功能类似kettle现有的定义java类插件,自定java类插件主要是支持在kettle中直接编写java代码实现自定特殊功能,而本控件主要是将自定义代码转移到jar包,就是说自定义功能的实现改为在eclipse等ide中开发. 设计本插件的原因是直接在kettle中写java代码是很不容易的事,开发体验与eclipse差得远,java语法还要受到限制,调试麻烦.实现点简单的逻辑还行,稍微复杂一点就比较麻烦,需要对java和kettle相关接口很熟悉.而简单的功能可以采用jav…
要说的话这个工具类还是比较简单的,每个方法体都比较小,但用起来还是可以的,把开发中一些常用的步骤封装了下,不用去kettle源码中找相关操作的具体实现了. 算了废话不多了,直接上重点,代码如下: import java.util.List; import org.apache.log4j.Logger; import org.pentaho.di.core.KettleEnvironment; import org.pentaho.di.core.database.DatabaseMeta; i…
环境:windows7,jvm内存设置14G,kettle5.1后来升级到5.4,oracle作为资源库. 问题背景:我们通过web页面管理kettle的job运行,这只是一个管理界面,即使web项目停掉也不会影响job的运行情况,实际运行job的是后台程序,随着job数量的增多,达到三四百个时,job的运行速度也达到了难以接受的程度. 方案1: 针对出现的问题,经测试发现,job一经运行就不会再重新从资源库读取了(针对定时运行的job),job中的转换则每次都会重新从资源库中读取,我找到了or…
kettle是一个开源产品,产品本身设计是很优秀的,代码应该是很多开源爱好者用业余时间贡献的,代码整体结构还是比较容易理解的,但具体到每一个控件内部就因人而异了,感觉还是挺复杂的,肯定别人考虑得比较全面.但因为是开源产品,不像商业产品那样完善,测试.具体代码规范等就没有商业产品严格了,所以bug相对较多什么的都是可以理解的,后面会将我遇到的部分bug及修复方式分享出来. 上一篇文章我们导入了5个项目,是我认为修改使用过程中遇到的bug时可能需要用到的项目,相信通过上一篇文章的介绍很容易就能添加其…
在数据清洗转换中,常见的字典翻译,如性别在原表中是1(男).2(女)等,类似还有很多较大的字典需要翻译,若同一个表中有很多个字典需要翻译,采用[数据库查询]方式翻译的话效率就会相当低下. 这里采用java代码来翻译,初始化时将相关字典加载到内存中,此后就不需要再查询数据库了,然后每条记录进来就翻译各个字典,其实很简单,只是[java代码]这个控件限制较多,不支持泛型.this并不是步骤本身.能使用的方法都列在了左侧,使用起来不是很方便.关于字典翻译这个事,其实写一个专门的控件也不难,也是很不错的…
kettle管理工具 专门为kettle这款优秀的ETL工具开发的web端调度.管理工具. 新版本 项目简介 kettle作为非常优秀的开源ETL工具得到了非常广泛的使用,一般的使用的都是使用客户端操作管理,但问题是当投入生产环境使用时,动辄上百或几百个job需要管理,这时在使用客户端管理已经很难完成了.我所知道的解决方案有用命令行的调用的,操作麻烦,总之还是很难用啦,还有就是开发web端管理工具,kettle自带了一个web端管理工具,界面极其简陋不说,还很难用,基本无法投入生产环境使用,其他…
开源ETL工具kettle系列之常见问题 摘要:本文主要介绍使用kettle设计一些ETL任务时一些常见问题,这些问题大部分都不在官方FAQ上,你可以在kettle的论坛上找到一些问题的答案 1. Join我得到A 数据流(不管是基于文件或数据库),A包含field1 , field2 , field3 字段,然后我还有一个B数据流,B包含field4 , field5 , field6 , 我现在想把它们 ‘加’ 起来, 应该怎么样做.这是新手最容易犯错的一个地方,A数据流跟B数据流能够Joi…
1.引言 最近公司开始一个etl项目,底层结合开源的kettle进行开发.那么学习kettle势在必行,kettle的使用在这里就不用介绍了,网上有很多的资料.例如:kettle中文社区,我们在这里主要介绍代码方面的开发. 2.开发环境     引用别人的一篇博客:https://my.oschina.net/nivalsoul/blog/779968 注意一点:去官网下载工具版的kettle要和源码的版本一致. 3.异常解决: (1). 安装完环境之后,项目上带有红色的叉,没有注意然后选择ru…