数据对接—kettle使用之一

需求:

      你有没有遇到过不同数据库之间数据对接的需求,比如:mysql数据库里的数据要保存到oracle数据库里,或者是excel里的数据要保存到数据库里,或者是数据库的数据要定时的保存到文件中等等数据对接的问题。下面就开始介绍一款软件来帮助我们实现各种数据对接的问题,这将是一个系列的博客,这篇只是个开始,后面将陆续的通过实例来讲解软件如何使用,当然不可能面面俱到,很多功能还需要我们不断的挖掘和完善。

工具介绍:

      说了这么多这个软件到底是什么呢?就是一个我们中文意思是水壶的英文单词kettle,当然它的原意不是这样的,它是“Kettle E.T.T.L. Envirnonment”只取首字母的缩写,这意味着它被设计用来帮助你实现你的ETTL需要:抽取、转换、装入和加载数据。Kettle也叫 PDI,在2006年 Kettle 加入了开源的 BI 组织 Pentaho, 正式命名为PDI,英文全称为Pentaho Data Integeration。这个工具也正如我们中文翻译为水壶那样,它希望把所有需要的数据放到一个水壶里,然后以流的方式流出来。

功能介绍:

      kettle可以创建两种脚本文件,一种是transformation(*.ktr),就是任务,比如抽取数据,合并修改后再存入数据库什么的。 另一种是job(*.kjb),就是用来调用transformation的,类似oracle里的job调用存储过程。如下面的图分别是transformation脚本和job脚本。

      上面两张图是两种脚本,通过第二种脚本调用第一种脚本我们可以配置定时任务,可以指定时间让系统自动执行数据抓取以及转换,是不是很强大的工具,不着急,后面才是真正的开始,看看它到底能有多大本事。

运行环境:

      要运行kettle工具必须安装Sun公司的JAVA运行环境,kettle 4.2.0需要运行java 1.6或者更高版本,Kettle的下载可以到http://kettle.pentaho.org/取得最新版本。目前应该是到kettle 4.4.0版本了,kettle不需要安装,安装好java环境后,在操作系统环境变量path中配置jre路径,把kettle工具压缩包解压后可直接使用,由于它是重java编写,所以它可以跨平台使用。

如何启动:

      Spoon是一个图形用户界面,它允许你运行转换或者任务,其中转换是用Pan工具来运行,任务是用Kitchen来运行。Pan是一个数据转换引擎,它可以执行很多功能,例如:从不同的数据源读取、操作和写入数据。Kitchen是一个可以运行利用XML或数据资源库描述的任务。通常任务是在规定的时间间隔内用批处理的模式自动运行。

      下面是在不同的平台上运行Spoon所支持的脚本:

         Spoon.bat:在windows 平台运行Spoon。

         Spoon.sh:在 Linux、Apple OSX、Solaris 平台运行 Spoon。

这篇就介绍到这里,下一篇我们进入实例讲解…

时间: 2024-08-30 09:09:50

数据对接—kettle使用之一的相关文章

数据对接—kettle使用之四

上一篇介绍了表输出插件,并通过实例介绍插件的简单使用,如果有这样的需求大家可以参考一下并深入研究插件的其它细节设置.这一篇我们介绍和表输出对应的插件(表输入)的使用. 表输入: 1. 从步骤插入数据:指定我们期待读取数据的步骤名称,这些信息能被插入到sql语句.        例如:sql:select * from ttt where date between ? and ?        注意:"?" 的数据来自其他步骤(后面的博客中会有用到),sql语句结束没有标点符号 2.实例

数据对接—kettle使用之三

 上一篇介绍了Data Grid和文本文件输出两个插件,并通过实例介绍插件的简单使用,如果有这样的需求大家可以参考一下并深入研究插件的其它细节设置.这一篇我们介绍(表输出)的使用. 表输出 1.  Target Schema:目标模式.要写数据的表的Schema的名称.允许表明中包含"."对数据源来说是很重要的 2.  目标表:要写数据的表名. 3.  提交记录数量:在数据表中用事物插入行.如果n比0大,每n行提交一次连接.否则不使用事务,速度会慢一些. 4.  裁剪表:在第一行数据插

数据对接—kettle使用之五

介绍完表输入插件,这一篇我们继续介绍kettle中的获取系统信息插件,并将结合表输入插件演示它的其中的一种用途.首先熟悉一下获取系统信息插件的一些功能: 获取系统信息 1.系统日期(可变):系统时间,每次访问都在改变. 2.系统日期(固定):系统时间,有转换开始来决定.即转换开始时间 3.开始日期范围(转换):根据etl日志表的信息,确定日期范围的开始. 4.结束日期范围(转换):根据etl日志表的信息,确定日期范围的结束. 5.开始日期范围(作业):根据etl日志表的信息,确定日期范围的开始

数据对接—kettle使用之六

前面介绍了表输入的插件,我们可以用它来查询数据库表里的数据,那如果数据不在数据库里我们是不是没没有办法获取了呢?答案是否定的,这个软件还提供了其它的插件可以让我们轻松的获取excel.xml.文本文件等文件里的数据 ,下面我们就一起来简单的了解一下这些插件: 文本文件输入: 1. 没有空行:不往下一步骤发送空行 2. 输出包括文件名:输出包含文件名字段 3. 输出包含行数:输出字段包含行号 4. 格式:可以是DOS. Unix或混合模式.UNIX行终止可以是回车.DOS是回车或换行.混合模式则不

数据对接—kettle使用之十六

这一篇我们介绍Clone row.Delay row和Mail插件. Clone row控件 克隆插件,Nr clones值是复制的行数,0表示不复制. Delay row 延迟执行行,每行执行完,下一行执行需要等待设置的时间 Mail 邮件发送插件,可以根据需要给选择的邮箱发送邮件 邮箱配置和用户名密码都可以从前面的流里传过来,所以我们可以动态的给不同的邮箱发送邮件 总结:        克隆和延迟的功能我们有时候会用到,当然延迟等待还有别的插件也能实现,前面已经介绍过,注意它们之间的差别.邮

数据对接—kettle使用之七

上一篇介绍了数据输入的插件,这一篇介绍一下数据输出的插件,类似数据输入,输出的插件也有很多,可以将数据输出到文本文件,excel文件,xml文件,还可以根据sql语句删除数据库表里的数据,也可以使用插入/更新插件insert或update数据库表里的指定字段,下面先来看几个输出的插件: 插入/更新 1.  步骤名称:要写入数据的表的schema名称. 2.  commit size:提交之前要改变的行数(插入/更新). 3.  不执行任何更新:如果被选择,则不执行任何更新,只允许插入. 4. 

数据对接—kettle使用之十五

这一篇我们介绍几个Flow插件,Switch / Case.空操作.过滤记录.Blocking Step和中止. Switch / Case控件 这个插件式对于多种类型的值进行不同的选择路径,截图如下: 注意事项: 1.一定得有个默认的路径 2.先产生目标步骤,再进行路径连接 3.注意命名规范,最好见名知意 空操作 不做任何处理,一般作为流程的终点,截图下图: 过滤记录 通过使用一个表达式从输入行中过滤数据,将结果是TURE或FALSE的行输出到不同的节点.表达式是"""OP

数据对接—kettle使用之十一

这一篇我们继续介绍字符串处理插件的使用,增加常量控件和增加序列字段. 增加常量控件 这个步骤很简单,主要是添加常量到流中.它的使用也很容易:用字符串形式指定名称,类型和值.利用选择的数据类型指定转换格式. 运行结果: 增加序列可以在流里增加一列,可以根据一定的规则设置自增序列,也可以获取变量值,还可以使用数据库来生成序列一个序列是在某个起始值和增量的基础上,经常改变的整数值.你可以使用数据库的序列,也可以使用Kettle决定的序列.备注:Kettle序列在同一个转换中是唯一使用的.每一次转换运行

数据对接—kettle使用之八

之前由于一些事情耽误了,博客一直没有更新,今天开始继续完善kettle的学习,这一节开始了解转换控件的使用,首先从值映射控件开始. 值映射: 这个步骤是简单的映射字符串,从一个值映射到另一个值. 例子如下: 1.输入或者读取数据库某列值 2.值映射控件设置如下: 3.输出到日志 4.成功转换,日志输出结果: 总结:        目前此控件还不能支持数据库操作,如果需要支持数据库我们可以在此基础上进行二次开发,当然也可以通过别的途径(加一些中间操作)来和数据库交互.