kettle使用】的更多相关文章

1.开发背景 在web项目中,经常会需要查询数据导出excel,以前比较常见的就是用poi.使用poi的时候也有两种方式,一种就是直接将集合一次性导出为excel,还有一种是分批次追加的方式适合数据量较大的情况.poi支持xls和xlsx,使用2003版本的只支持6万多行以下的数据量,使用2007版本的支持百万行.但是呢,当数据量大了之后这种方式却非常耗内存和时间. 接触了etl之后就想着用kettle来做导数据,经过测试是完全可行的.几十万行,一百万行都能快速导出来,代码也非常简单.   2.…
Kettle是一个开园ETL工具,做数据仓库用Spoon. 工具:下载Spoon,解压即可用   1.认识常用组件:     表输入     插入\更新     数据同步     文本文件输出     更新     自动文档输出     表输出       列转行     增加常量     增加序列     排序记录     行转列     过滤记录     数据库连接       合并记录     排序合并     记录关联(笛卡尔输出)     记录集连接       分组     在内存中…
(1)新建一个作业(新建->作业),并在控制面板右键: (2)设置一个命令参数: (3)把作业的参数传递给转换: (4)在转换中右键设置转换属性: (5)接收作业中设置的传递参数: (6)参数的获取: (7)用命令行执行此.kjb文件: 进入到kitchen目录下 执行的命令: 数据库设计: 一: 二: 附加( 附加部分转发自:http://www.cnblogs.com/loren-love-xixi/articles/5716774.html): 1.ktr的运行:运行transformat…
设置全局变量. 找到.properties文件: 在文件中设置值: 在kettle中新建一个job(不用做任何设置): 转换中获取便元的设置: 重启kettle的执行结果:…
有没有能统一管理一个参数,然后让所有的transformation和job都可以读到呢? 答案是有 1.首先,打开.kettle\kettle.properties(个人主机是:C:\Users\for_elegant\.kettle),直接在里面定义,(注意这个文件需要与spoon.bat放在同一个目录下面)比如: paramName=to_char(sysdate,'yyyymmdd') 这里支持数据库函数, 说的更直白点,就是这里定义是个啥,那么在transformation里边取到的它就…
导读 Excel数据导入Oracle数据库的方法: 1.使用PL SQL 工具附带的功能,效率比较低 可参考这篇文章的介绍:http://www.2cto.com/database/201212/176777.html 2.使用Kettle工具,免费,相比之下功能更丰富,可实现一定的业务逻辑,推荐使用 注:Kettle下载后解压即可使用,但是依赖jvm,可以安装一下JDK 1.7(推荐) Excel数据导入Oracle示例 Kettle将Excel数据导入Oracle过程记录如下: 1.准备Ex…
这是一篇几年前写下的文档,最近打算根据这篇文档重写一下kettle插件的教程.结果各种理由,一推再推.今天索性将这篇文档发布出来,分享给大家,例子等有空再补上.这是一篇基于kettle3.2基础上完成的kettle插件文档.然而现在最新版的kettle的界面已经完全变了样了,但是那些组件还是那么熟悉.对数据处理稍微熟悉点的应该对kettle都不陌生,kettle是一个快速格式化和数据抽取的工具.好吧,入正题: 如果你对kettle插件感兴趣可以到官网查看更多的资料:http://www.pent…
该kettle插件功能类似kettle现有的定义java类插件,自定java类插件主要是支持在kettle中直接编写java代码实现自定特殊功能,而本控件主要是将自定义代码转移到jar包,就是说自定义功能的实现改为在eclipse等ide中开发. 设计本插件的原因是直接在kettle中写java代码是很不容易的事,开发体验与eclipse差得远,java语法还要受到限制,调试麻烦.实现点简单的逻辑还行,稍微复杂一点就比较麻烦,需要对java和kettle相关接口很熟悉.而简单的功能可以采用jav…
本介绍我的开源项目[kettle-manager]kettle管理平台如何获取并部署使用,该项目介绍请参看另一篇博文:http://www.cnblogs.com/majinju/p/5739820.html . 下面主要介绍项目部署流程,使用中有问题可以发邮件反馈. 准备工作: 本系统支持oracle和mysql数据库,所有你需要有一个oracle或mysql数据库. 本系统现在开发时使用的kettle版本是5.4,调整项目结构后,部署包中不包含kettle的jar,会通过环境变量KETTLE…
kettle管理工具 专门为kettle这款优秀的ETL工具开发的web端管理工具. 项目简介 kettle作为非常优秀的开源ETL工具得到了非常广泛的使用,一般的使用的都是使用客户端操作管理,但问题是当投入生产环境使用时,动辄上百或几百个job需要管理,这时在使用客户端管理已经很难完成了.我所知道的解决方案有用命令行的调用的,操作麻烦,总之还是很难用啦,还有就是开发web端管理工具,kettle自带了一个web端管理工具,界面极其简陋不说,还很难用,基本无法投入生产环境使用,其他没留意到还有没…
kettle内置的jndi管理是simple-jndi,功能确实比较简单,我需要监控kettle性能,druid确实是很不错的选择,但没有提供对应的支持,我改进了druid源码,实现了simple-jndi的接口,就可以在simple-jndi/jdbc.properties中配置druid数据源了,通过druid可以得到很多监控数据. 具体druid的使用请参考官方教程:https://github.com/alibaba/druid/wiki/%E9%A6%96%E9%A1%B5,相当详细.…
本文就是分享下二进制文件(图片.txt文件等)在oracle和文件系统间的传输的转换示例. 转换示例如下图: 示例本身较简单,但很多人应该还是不太清楚怎么做,很多时候都是上网搜索,网上有关的就是通过javascript脚本入库,整体体验不太好,这里分享的这个示例是我和搞数据的朋友讨论慢慢弄出来的,在windows中文件图片在oracle和文件系统间相互传输都能正常打开.通过kettle自带的控件实现,很简单,主要就是控件属性的设置. 该示例测试mysql的结果是:文件入库没问题,图片入到mysq…
要说的话这个工具类还是比较简单的,每个方法体都比较小,但用起来还是可以的,把开发中一些常用的步骤封装了下,不用去kettle源码中找相关操作的具体实现了. 算了废话不多了,直接上重点,代码如下: import java.util.List; import org.apache.log4j.Logger; import org.pentaho.di.core.KettleEnvironment; import org.pentaho.di.core.database.DatabaseMeta; i…
资源库的作用:资源库是用来保存操作步骤和相关的日志,转换,JOB 等信息.用户通过图形界面创建的的转换任务可以保存在资源库中.资源库可以是各种常见的数据库,用户通过用户名/ 密码来访问资源库中的资源,默认的用户名/ 密码是admin/admin. 资源库并不是必须的,如果没有资源库,用户还可以把转换任务保存在 xml 文件中.转换文件以ktr为扩展名,作业文件以kjb为扩展名. kettle的资源库包括数据库资源库和文件资源库,在文件和数据库的基础上的封装,实现org.pentaho.di.re…
kettle 3.2 以前的版本里只有 variable 和 argument,kettle 3.2 中,又引入了 parameter 概念:variable 即environment variables(环境变量或全局变量),即使是不同的转换它们也拥有同样的值:而argument(位置参数)和parameter(命名参数),可以映射为局部变量,只针对一个特定的转换,比如像是限定结果集的大小和过滤条件. 1.     variable(变量) variables 也可以认为叫做environme…
第一次写博客,心里有点小激动,肯定有很多需要改进的地方,望海涵. kettle算是我相对较为深入研究过的开源软件了,也是我最喜欢的开源软件之一,它可以完成工作中很多体力劳动,在ETL数据抽取方面得到了广泛的使用.我本身对kettle的各个控件使用也不是很熟悉,只会使用最常见的部分控件,就是这样简单的使用也被它的美深深的吸引住了. 好了,进入正题,这里假设你熟悉java开发.git一般使用.kettle一般使用.kettle源码之前托管在kettle官方的svn上,后来迁移到了github上,在g…
环境: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时可能需要用到的项目,相信通过上一篇文章的介绍很容易就能添加其…
kettle 设计完成之后,可以在设计工具中进行调用,也可以使用java代码进行调用.   1.通过文件方式执行转换.   public static void runTransfer(String[] params, String ktrPath) {          Trans trans = null;          try {              // // 初始化              // 转换元对象              KettleEnvironment.in…
KETTLE 是一款开源的ETL工具,通过图形界面进行设计,可以对数据进行转换.设计好的文件分为两类,一类是trans,一类是job,这些文件可以存储到文件系统中.   也可以存储到数据库中.   如果存储到数据库,那么可以创建配置资源库.   配置步骤   打开设计工具spoon.bat       点击加号   点击创建或更新     这里需要调整下sql语句   INSERT INTO R_USER(ID_USER, LOGIN, PASSWORD, NAME, DESCRIPTION,…
使用Kettle在不同的数据库抽取数据时,有时会出现中文乱码问题:其解决方案如下: 1.查看数据库的字符集是否是UTF-8(最常用的字符集) 2.如果数据库设置正确仍然存在中文乱码,则可能是因为有的客户端数据库默认的编码集不是UTF-8,我们只需要在输出时对输出的数据库进行编码配置.我的数据库是MySql,下面是解决图示: a.我的转换图 b.打开表输出-->数据库连接后的"编辑"-->Advanced,在下方的空白处输入:set names utf8;,设置数据库客户端的…
kettle部署需要有jdk环境,所以需要配置环境变量. 1.首先配置jdk,将jdk压缩包解压到c盘下 增加系统变量:JAVA_HOME:c:\jdk 在path后追加: %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 增加CLASSPATH变量:%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar2.增加kettle系统变量,KETTLE_HOME 3.启动spoon.bat即可…
本文主要阅读目录如下: 1.简介Kettle的Kitchen和Span 2.命令行调度任务配置方式 3.后台进程配置运行方式 4.Windows任务设置 5.Demo下载 1.简介Kettle的Kitchen和Span 前面两篇文章中主要讲述了Kettle的 Spoon的转换和作业的GUI设计方式以及运行,也给出了Demo实战,那么实际上我们的应用模式可能会要求在服务器上以后台进程的方式运行这个ETL任务,就像我们传统上一般都是用Windows服务的方式来处理数据一样,那么用Kettle我们怎么…
本文主要阅读目录如下: 1.应用场景 2.DEMO实战 3.DEMO下载 1.应用场景 这里简单概括一下几种具体的应用场景,按网络环境划分主要包括: 表视图模式:这种情况我们经常遇到,就是在同一网络环境下,我们对各种数据源的表数据进行抽取.过滤.清洗等,例如历史数据同步.异构系统数据交互.数据对称发布或备份等都归属于这个模式:传统的实现方式一般都要进行研发(一小部分例如两个相同表结构的表之间的数据同步,如果sqlserver数据库可以通过发布/订阅实现),涉及到一些复杂的一些业务逻辑如果我们研发…
本文主要阅读目录如下: 1.Kettle概念 2.下载和部署 3.Kettle环境配置 4.Kettle使用及组件介绍 ETL(Extract-Transform-Load的缩写,即数据抽取.转换.装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可少,这里我介绍一个我在工作中使用了3年左右的ETL工具Kettle,本着好东西不独享的想法,跟大家分享碰撞交流一下!在使用中我感觉这个工具真的很强大,支持图形化的GUI设计界面,然…
kettle输入“去除空格类型”设置不上,设置完了还是现实“none”的办法: 在xml中直接将对应处“none”改为“both”,即“去掉两边空格”. 原文来自:http://blog.csdn.net/sptoor/article/details/24427627…
需求: 1.源数据库新增一条记录,目标库同时新增一条记录: 2.源数据库修改一条记录,目标库同时修改该条记录: 示例用到三个Kettle组件 下面详细说下每个组件的配置 Source: 本示例连接的是Mongodb数据库,四个字段,ID默认为主键,_id会系统自动生成暂时先不管. 本节点的详细说明,可见官网:http://wiki.pentaho.com/display/EAI/MongoDB+Input 值映射: 本步在本示例作用不大,只是为了测试效果.按照截图上进行配置即可 MongoDbO…
由于和第三方合作,需要知道第三方合作方有了订单后通知对方,如果每天查看数据太麻烦了,因此想到了用Kettle定时任务,先判断系统里有没有订单,如果有就执行查询调取订单数据并发送邮件作业,如果没有则不执行  这里用了kettle 条件栏里 计算表中的记录数 这个空间,通过自定义SQL 判断数据的行数,如果记录数>0 则有订单 则执行邮件步骤,<=0 则不执行…
ETL利器Kettle实战应用解析系列一[Kettle使用介绍] 本系列文章主要索引如下: 一.ETL利器Kettle实战应用解析系列一[Kettle使用介绍] 二.ETL利器Kettle实战应用解析系列二 [应用场景和实战DEMO下载] 三.ETL利器Kettle实战应用解析系列三 [ETL后台进程执行配置方式] 本文主要阅读目录如下: 1.Kettle概念 2.下载和部署 3.Kettle环境配置 4.Kettle使用及组件介绍 ETL(Extract-Transform-Load的缩写,即…
最近因为公司业务需要,刚刚接触了kettle.这不看不知道,一看才发现kettle的功能是在是太强大了,让我有种相见恨晚的感觉.由于主要是应用kettle与hadoop集群和hive连接进行数据处理.所以这里简单叙述下kettle与hadoop集群连接时的大致步骤: 1.双击kettle(即data-integeration)目录下的spoon.bat,启动kettle 2.kettle启动后,新建一个作业(job).可以命名为load_hdfs 3.在load_hdfs中有个Hadoop cl…