Kettle用户操作手册1
- 格式:docx
- 大小:1.97 MB
- 文档页数:34
1打开程序,点击spoon.bat其实对于简单的数据库数据的抽取,基本只需要转换(.ktr格式)和作业(.kjb格式)这两种东西。
下面就是建立一个转换的步骤:a 点击文件-->新建-->转换。
b 在左侧的树状列表中选“主对象树”,新建DB连接(参照第4点)。
c 在核心对象-->输入这个地方拖出一个表输入,在“输出”目录下拖出“表输出”,按住shift,从一个对象拖到另一个对象可进行连线。
2基本作业由开始,转换,成功3步骤组成。
步骤之间使用shift+左键连线。
2.1‘1’代表无条件执行;2.2‘2’代表上一步执行完成后,再执行下一步;2.3‘3’代表不执行,左击连接线使其生效(绿色)或失效(灰色)。
3打开具体步骤中的转换流程,点击‘Transformation’跳转至相应具体转换流程,编辑此转换具体路径,双击转换,弹出窗口,‘1’为相对路径,点击‘2’选择具体Visit.ktr 转换,为绝对路径。
4建立数据库连接,输入相应信息测试,成功即可图45转换具体设置,如图4,‘表输出’至‘文本文件输出’流程跳接线为错误处理步骤,当输出格式不能满足表输出的目的表结构类型时,将会将记录输出到‘文本文件输出’中的记录中。
5.1双击‘表输入’,输入相应的SSQL语句,选择配置数据库连接,或新增,预览查询生成的结果(如果数据库配置中使用变量获取,此处预览生成错误)。
5.2双击‘表输出’,选择数据库连接,‘浏览’选择相应目标表,(此处‘使用批量插入’勾选去除,目的是在错误处理步骤中无法使用批量处理,可能是插件兼容问题)6表输出插件定义a) Target Schema:目标模式。
要写数据的表的Schema的名称。
允许表明中包含“。
”对数据源来说是很重要的b) 目标表:要写数据的表名。
c) 提交记录数量:在数据表中用事物插入行。
如果n比0大,每n行提交一次连接。
否则不使用事务,速度会慢一些。
d) 裁剪表:在第一行数据插入之前裁剪表。
KETTLE使用说明简介Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。
Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。
Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。
Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。
Kettle可以在/网站下载到。
注:ETL,是英文Extract-Transform-Load 的缩写,用来描述将数据从来源端经过萃取(extract)、转置(transform)、加载(load)至目的端的过程。
ETL 一词较常用在数据仓库,但其对象并不限于数据仓库。
下载和安装首先,需要下载开源免费的pdi-ce软件压缩包,当前最新版本为5.20.0。
下载网址:/projects/pentaho/files/Data%20Integration/然后,解压下载的软件压缩包:pdi-ce-5.2.0.0-209.zip,解压后会在当前目录下上传一个目录,名为data-integration。
由于Kettle是使用Java开发的,所以系统环境需要安装并且配置好JDK。
žKettle可以在/网站下载ž 下载kettle压缩包,因kettle为绿色软件,解压缩到任意本地路径即可。
运行Kettle进入到Kettle目录,如果Kettle部署在windows环境下,双击运行spoon.bat 或Kettle.exe文件。
Linux用户需要运行spoon.sh文件,进入到Shell提示行窗口,进入到解压目录中执行下面的命令:# chmod +x spoon.sh# nohup ./spoon.sh & 后台运行脚本这样就可以打开配置Kettle脚本的UI界面。
Kettle配置使用说明Kettle配置使用说明1.文件结构1.1 kettle4.0.1该文件夹存放的是kettle4.0.1的桌面应用程序,/kettle4.0.1/Spoon.bat是运行软件的一个批处理文件,双击运行。
1.2 workspace该文件夹存放的是以各个警种总队全拼命名的分别存放.ktr文件和.job文件的文件夹。
Start.job是一个启动总纲。
1.3 script该文件夹是存放的数据库建库脚本,目前是oracle10g版本1.4 model存放的是powerDesign的cdm概念模型文件用于根据需要生成pdm和script。
2.文件路径配置本系统使用的都是系统所在路径的相对路径,不管处于什么目录下都请将kettle4.0.1和workspace的文件夹放在同一目录之下。
当然你可以随意改变文件夹的名称。
3.运行环境配置先运行一次/kettle4.0.1/Spoon.bat,Linux就不说了,如果你用的是windows系统,那么你可以在/${userhome}/.kettle下找到一个.kettle的文件夹主要说下:Response.xml-记录资源库信息(自己去勾)Kettle.property-这是好东西,可以让你在软件中任何可以使用到环境变量的地方使用到里面的配置信息(键-值对配置),类似全局变量。
当然是有利有弊,配置点什么数据库连接和一些常用的东西之外别把那里当仓库,想下全局变量定义的多了会给系统带来什么风险。
A_fileInput=file:///E:/Test_Server/srcFile/A_fileOutput=file:///E:/Test_Server/errFile/这2个属性是配置读取的Excel文件和输出错误的Excel文件用到的路径配置。
由于文件名命名的差异和存放位置的不同需要使用者自行配置。
有在系统内修改文件路径的风险,当然这是没有办法避免的,只能在项目初期和用户有这方面的约定俗成。
kettle操作⼿册1.什么Kettle?Kettle是⼀个开源的ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程)项⽬,项⽬名很有意思,⽔壶。
按项⽬负责⼈Matt的说法:把各种数据放到⼀个壶⾥,然后呢,以⼀种你希望的格式流出。
Kettle包括三⼤块:Spoon——转换/⼯作(transform/job)设计⼯具(GUI⽅式)Kitchen——⼯作(job)执⾏器(命令⾏⽅式)Span——转换(trasform)执⾏器(命令⾏⽅式)Kettle是⼀款国外开源的etl⼯具,纯java编写,绿⾊⽆需安装,数据抽取⾼效稳定。
Kettle中有两种脚本⽂件,transformation和job,transformation完成针对数据的基础转换,job则完成整个⼯作流的控制。
2.Kettle简单例⼦2.1下载及安装Kettle下载地址:/doc/209c62d476a20029bd642d26.html /projects/pentaho/files现在最新的版本是 3.6,为了统⼀版本,建议下载 3.2,即下载这个⽂件pdi-ce-3.2.0-stable.zip。
解压下载下来的⽂件,把它放在D:\下⾯。
在D:\data-integration⽂件夹⾥,我们就可以看到Kettle的启动⽂件Kettle.exe或Spoon.bat。
2.2 启动Kettle点击D:\data-integration\下⾯的Kettle.exe或Spoon.bat,过⼀会⼉,就会出现Kettle的欢迎界⾯:稍等⼏秒,就会出现Kettle的主界⾯:2.3 创建kettle后台管理点击【新建】,新建资源库信息这⾥我们选择KETTLE 后台管理数据库的类型,以及配置JDBC设置完成后,点击【创建或更新】,将会在指定的数据库⾥⾯新建KETTLE的后台管理数据表。
再设置【名称】,点击【确定】。
回到登陆界⾯,选择新建的【资源库】,输⼊⽤户账号密码(默认账号:admin,密码:admin)进⼊KTETTLE 的开发界⾯2.4 kettle说明主对象树:转换(任务),作业(JOB)核⼼对象:主对象中可⽤的组件2.5 值映射组件使⽤的字段名:源字段⽬标字段名:⽬标字段源值:源数据的值⽬标值:替换的值注:最好先将源值去空格,再进⾏替换2.6 增加常量组件名称:映射字段类型:字段类型格式:数据格式长度:值:常量的值2.7计算器组件新字段:映射字段计算:计算类型字段A,B,C:需计算的字段值类型:数据的类型2.8获取系统信息组件名称:显⽰的名称类型:显⽰的类型(系统时间,IP,指令等等)2.9增加序列组件值的名称:映射值的名称起始值:序列的初始值增加值:设置增加的值最⼤值:设置最⼤值2.10 表输出组件数据库连接:设置数据库⽬标表:设置⽬标的表提交记录数量:设置提交数量忽略插⼊错误:跳过错误,继续执⾏指定库字段:数据库字段:选择插⼊的字段2.11 多路选择(Switch/Case) 组件更多路选择的字段:设置Switch的字段分⽀值的数据类型:设置值的类型分⽀值:值:设置case的值⽬标步骤:跳过的操作步骤缺省的⽬标步骤:未通过的操作步骤2.12 Null if... 组件名称:选择替换的字段需要转换成NULL的值:需要转换成NULL的值2.12 执⾏SQL脚本组件数据库连接:选择数据库SQL script :输⼊要执⾏的SQL语句参数:设置要替换的参数字段2.13 Modified Java Script Value 组件Java Script:脚本的输⼊:输⼊字段:输出字段字段名称:定义的字段名改成为:新的字段名类型:字段类型Replace Value:是否替换的值2.14 合并记录组件旧数据源:输⼊数据源新数据源:输⼊数据源匹配关键字段:匹配关键字段数据字段:数据字段2.15 记录关联(笛卡尔输出) 组件条件:输⼊关联的条件2.16 Merge Join 组件第⼀个步骤:第⼀个操作的步骤第⼆个步骤:第⼆个操作的步骤步骤选择的字段:步骤关联的字段2.17 ⾏转列组件关键字:选择表的关键字分组字段:分组的字段⽬标字段:选择⽬标在字段VALUE:值字段名称关键字值:关键字值类型:数据类型2.18 ⽣成随机值组件名称:新⽣成字段名类型:随机数的类型2.19 去除重复⾏组件字段名称:关键字的字段忽略⼤⼩写:是否忽略⼤⼩写注意:去掉重复⾏需先排序2.20 插⼊/ 更新组件数据库连接:选择数据库⽬标表:选择⽬标表不执⾏任何更新:是否执⾏更新操作查询的关键字:关键字更新字段:选择要插⼊更新的字段2.21 表输⼊组件数据库连接:选择数据库SQL:输⼊SQL语句预览:数据预览获得SQL查询语句:获得SQL查询语句2.22 排序记录组件字段名称:选择排序的字段名称升序:是否升序⼤⼩写敏感:是否区分⼤⼩写2.23 XML输出组件⽂件名称:输出⽂件的名称跟路径扩展:扩展名2.24 ⽂本⽂件输出组件⽂件名称:输出⽂件的名称跟路径扩展:扩展名2.25 Write to log 组件⽇志级别:选择⽇志级别字段:选择打印的字段2.26 过滤记录组件条件:输⼊条件。
Kettle用户操作手册1.kettle介绍1.1 什么是kettleKettle是“Kettle E.T.T.L. Envirnonment”只取首字母的缩写,这意味着它被设计用来帮助你实现你的ETTL 需要:抽取、转换、装入和加载数据;它的名字起源正如该项目的主程序员MATT所说:希望把各种数据放到一个壶里然后以一种指定的格式流出。
Spoon是一个图形用户界面,它允许你运行转换或者任务。
1.2 Kettle 的安装要运行此工具你必须安装 Sun 公司的JAVA 运行环境1.4 或者更高版本,相关资源你可以到网络上搜索JDK 进行下载,Kettle 的下载可以到取得最新版本。
1.3 运行SPOON下面是在不同的平台上运行Spoon 所支持的脚本:Spoon.bat: 在windows 平台运行Spoon。
Spoon.sh: 在Linux、Apple OSX、Solaris 平台运行Spoon。
1.4 资源库一个Kettle资源库可以包含那些转换信息,这意味着为了从数据库资源中加载一个转换就必须连接相应的资源库。
在启动SPOON的时候,可以在资源库中定义一个数据库连接,利用启动spoon时弹出的资源库对话框来定义,如图所示:单击加号便可新增;关于资源库的信息存储在文件“reposityries.xml”中,它位于你的缺省home 目录的隐藏目录“.kettle”中。
如果是windows 系统,这个路径就是c:\Documents and Settings\<username>\.kettle。
如果你不想每次在Spoon 启动的时候都显示这个对话框,你可以在“编辑/选项”菜单下面禁用它。
admin 用户的缺省密码也是admin。
如果你创建了资源库,你可以在“资源库/编辑用户”菜单下面修改缺省密码。
1.5 定义1.5.1 转换主要用来完成数据的转换处理。
转换步骤,可以理解为将一个或者多个不同的数据源组装成一条数据流水线。
KETTLE简单使用说明文档1. 下载和安装要运行此工具你必须安装SUN 公司的JAVA 运行环境 1.4 或者更高版本,相关资源你可以到网络上搜索JDK 进行下载。
设置JAVA 运行环境变量,JAVA_HOME 和PATHKETTLE 的下载可以到/取得最新版本,下载后解压,就可以直接运行。
2.kettle主要有两部分组成,主对象树,核心对象,3.新建一个kettle文件(数据库之间做处理)1)转换右键点击新建,如图所示2) 设置数据库连接,上图DB连接右键新建(支持多库连接): 如图:3)核心对象里面有很多组件,通过拖拽来供给我们做操作,如图4)添加一个源输入,打开输入文件夹,可以看到各种输入类型,支持文件,数据库等。
如图5)这里通过数据库操作,那我们这里拖拽一个表输入组件6)双击打开,可以看到你可以选择上面连接的数据库,然后通过获取sql语句来选择你要输入的源表进行操作。
并且sql语句支持传递变量参数和占位符参数,以及多表关联sql。
如下图7)输入表已经OK,那输出表呢,那我看下输出组件。
如图8)选中两个组件,右键新建节点连接。
如下图9)双击打开表输出,选择输出的数据库,以及目标表和输入表与目标表的字段映射10)映射选择以及匹配11)点击箭头弹出启动界面,点击启动,该kettle文件即可执行数据的迁移了12)上面是一个简单的数据库转换操作。
在表输入和表输出直接可以加不同组件对数据进行筛选过滤。
通过转换文件夹下的组件。
如图转换可以处理中文乱码,字段数字的计算,值的转换,序列的生成等等脚本可以用java代码,javascript,sql脚本等等查询支持调用存储过程,两个表直接关联查询等等以上只是针对kettle工具的简单实用介绍。
KETTLE使用说明在本使用说明中,我们将详细介绍如何使用KETTLE完成一些常见的数据处理任务。
第一步:安装和启动KETTLE在Windows中,双击运行Spoon.bat文件来启动KETTLE。
在Linux 和Mac OS中,打开终端,进入KETTLE目录,输入"./spoon.sh"命令来启动KETTLE。
第二步:创建一个新的数据流程启动KETTLE后,您将看到一个图形化界面。
在左上角的工具栏中,有一个新建按钮,点击它来创建一个新的数据流程。
在创建数据流程时,您需要为其指定一个名称。
完成后,点击确定按钮。
第三步:添加数据源在左侧的工具箱中,您可以找到各种组件,如输入步骤、输出步骤、转换步骤等。
为了演示,我们先添加一个输入步骤。
在工具箱中,找到输入步骤,并将其拖放到主界面中。
然后,双击该步骤,在弹出的对话框中配置数据源。
在配置对话框中,您需要指定数据源的类型,如文本文件、Excel文件、数据库等。
根据不同的类型,您可能需要提供相应的连接信息。
完成配置后,点击确定按钮。
在数据流程中,您可以使用转换步骤对数据进行处理。
为了演示,我们使用一个简单的转换步骤来删除重复的数据。
在工具箱中,找到去重复步骤,并将其拖放到已添加的输入步骤的下方。
然后,双击该步骤,在弹出的对话框中配置参数。
在配置对话框中,您需要指定要去重的字段。
您可以选择多个字段以进行复合去重。
完成配置后,点击确定按钮。
第五步:添加输出在数据流程中,您也需要指定一个输出步骤来保存处理后的数据。
在工具箱中,找到输出步骤,并将其拖放到已添加的去重复步骤的下方。
然后,双击该步骤,在弹出的对话框中配置输出格式和目标文件。
在配置对话框中,您需要指定输出的格式,如文本文件、Excel文件、数据库等。
根据不同的格式,您可能需要提供相应的连接信息。
完成配置后,点击确定按钮。
第六步:保存和运行数据流程完成对数据流程的配置后,点击工具栏中的保存按钮来保存数据流程。
Spoon.bat修改在set opt=*最后"-Dfile.encoding=UTF-8",解决乱码问题表输入替换SQL语句中的变量:变量用‘?’ 表示从步骤中插入数据:这个组件之前的流程名称新建/编辑Wizard(向导)填写数据库连接名称(选择数据库连接类型和数据库访问类型)NEXT端口号默认NEXT点击测试数据库连接获取SQL查询语句选择表或者视图,确定也可以自定义SQL语句.预览查询查询所需关键字:字段1为流入字段查询返回的值:字段为数据库表字段,可以起个别名,类型不选可能导致跨库乱码获取查询关键字:流入的所有字段获取返回字段:所选数据库表所有字段Switch/CaseSwitch字段:流入的字段Case值数据类型:视情况而定Case值:此处为空时-转到-查询DEPT_CODE 默认目标步骤(default):自定义流程,如图字段选择移除:移除流入字段元数据:修改元数据字段选择和修改:如果指定了移除和元数据就不能选择列映射增加常量添加一列到元数据流中设置字段值替换流字段的值表输出主选项默认不是临时表的话,千万不要选中剪裁表,这个用于删除表中的数据勾选’指定数据库字段’后才能操作’数据库字段面板’提交记录数量:每次批处理的数量,一批对应一个事务输入字段映射不要随便点’猜一猜’空操作什么也不做删除查询所需的关键字:删除的条件插入/更新不推荐使用比较流中和数据库表的值,不同则更新编辑映射:同表输出字符串替换过滤两个或以上中文并设置为空串去除重复记录注意:去除的记录要排序,否则只去除连续的值行扁平化详解:/Document/detail/tid/73025Access输入选择mdb格式文件,支持正则过滤Kettle增量更新/s/blog_6d35752501015dtm.html 获取系统信息类型预览记录计算器如下是移除元数据流字段,新数据流加负号Kettle变量(1)名称对应参数值:可以写SQL函数,比如sysdate+1,to_date()等相对应的变量名(2)位置对应参数获取系统信息此处添加两个变量作为增量的值设置变量变量活动类型:2)通过属性文件(常用)在C:\Users\${userName}\.kettle\kettle.properties中添加变量(key=value)Java Virtual Machine:S系统级作用域,凡是在一个java虚拟机下运行的线程都受其影响。
一、【kettle】window安装与配置1、下载kettle包,并解压2、安装jdk,并配置java环境a).打开我的电脑--属性--高级--环境变量b).新建系统变量JA V A_HOME和CLASSPATH变量名:JA V A_HOME变量值:C:\Program Files\Java\jdk1.7.0[具体路径以自己本机安装目录为准]变量名:CLASSPATH变量值:.;%JA V A_HOME%\lib\dt.jar;%JA V A_HOME%\lib\tools.jar;c). 选择“系统变量”中变量名为“Path”的环境变量,双击该变量,把JDK安装路径中bin目录的绝对路径,添加到Path变量的值中,并使用半角的分号和已有的路径进行分隔。
变量名:Path变量值:%JA V A_HOME%\bin;%JA V A_HOME%\jre\bin;3、配置kettle环境在系统的环境变量中添加KETTLE_HOME变量,目录指向kettle的安装目录:D:\kettle\data-integration4、启动spoonWindows直接双击批处理文件Spoon.bat具体路径为:kettle\data-integration\Spoon.batLinux 则是执行spoon.sh,具体路径为:~/kettle/data-integration/spoon.sh二、使用Kettle同步数据同步数据常见的应用场景包括以下4个种类型:➢ 只增加、无更新、无删除➢ 只更新、无增加、无删除➢ 增加+更新、无删除➢ 增加+更新+删除只增加、无更新、无删除对于这种只增加数据的情况,可细分为以下2种类型:1) 基表存在更新字段。
通过获取目标表上最大的更新时间或最大ID,在“表输入”步骤中加入条件限制只读取新增的数据。
2) 基表不存在更新字段。
通过“插入/更新”步骤进行插入。
插入/更新步骤选项:只更新、无增加、无删除通过“更新”步骤进行更新。
Kettle培训手册Etl介绍ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于金融IT来说,经常会遇到大数据量的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可少。
Kettle是一款国外开源的etl工具,纯java编写,绿色无需安装,数据抽取高效稳定。
Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。
kettle部署运行将kettle2.5.1文件夹拷贝到本地路径,例如D盘根目录。
双击运行kettle文件夹下的spoon.bat文件,出现kettle欢迎界面:稍等几秒选择没有资源库,打开kettle主界面创建transformation,job点击页面左上角的解并到本地路径,例如保存到D:/etltest下,保存文件名为EtltestTrans,kettle默认transformation 文件保存后后缀名为ktr点击页面左上角的解并到本地路径,例如保存到D:/etltest下,保存文件名为EtltestJob,kettle默认job文件保存后后缀名为kjb创建数据库连接在transformation页面下,点击左边的【Main Tree】,双击【DB连接】,进行数据库连接配置。
Connection name自命名连接名称Connection type选择需要连接的数据库Method of access选择连接类型Server host name写入数据库服务器的ip地址Database name写入数据库名Port number写入端口号Username写入用户名Password写入密码例如如下配置:点击【test】,如果出现如下提示则说明配置成功点击关闭,再点击确定保存数据库连接。
一个简单的ktr例子目标:从交易表(trade),帐户表(account),客户表(cust)抽数交易相关的所有信息,并判断对公对私分别进行处理,输出到文本文件中。
Kettle使用方法说明文档安装程序解压pdi-ce-4.0.0-stable.zip到任意盘符,解压后点击根目录下Spoon.bat如下图所示。
点击cancel创建表到表直接抽取本实例演示的是在Oracle数据库zhwater下的zh用户里面表sys_user转换到本地Oracle数据库orcl下的zw用户下的表sys_user。
演示过程是建立transform将数据从zh.sys_user抽取到zw. sys_user 里面。
两个表结构相同。
建立转换进入系统后如下图所示,双击转换。
创建源和目标数据库连接点开【输入】——>【表输入】将表输入拉到右侧。
双击右侧的表输入,如下图,配置点开【输出】——>【插入/更新】将其拉到右侧。
按住shift先后左键点击表输入和插入/更新的图标。
双击插入/更新图标,点击【获取字段】和【获取和更新字段】用来查询的关键字保留主键USERID,其余删掉。
点击确定保存,点击上方验证无错误后,点击执行,如下图。
数据库中可以看到数据已从zh.sys_user抽取到zw.sys_user定时抽取设置建立job点击【文件】→【新建】→【作业】,如下图将【STRAT】拉入图中。
将【Transformation】拉入到图中,按住shift连接。
点开【Transformation】,将test转换加进去,并重命名job为test。
设置定时抽取双击【START】,设定自动抽取时间。
下图中显示为间隔5分钟自动执行抽取。
点击执行,如下图。
然后进行下一次执行等待。
如下图。
命令行执行编写test.bat内容如下E:\kettle\data-integration\Kitchen.bat /norep /file E:\kettle\test.kjb其中红色部分为安装路径下Kitchen.bat文件所在位置,蓝色部分为job 文件所在位置。
注意:/norep和/file前面都有一个空格。
Kettle开发使用手册2017年4月版本历史说明1.Kettle介绍1.1.什么是KettleKettle是纯Java编写的、免费开源的ETL工具,主要用于抽取(Extraction)、转换(Transformation)、和装载(Loading)数据。
Kettle中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。
在这种思想的设计下,Kettle广泛用于不同数据库之间的数据抽取,例如Mysql数据库的数据传到Oracle,Oracle数据库的数据传到Greenplum数据库。
1.2.Kettle的安装Kettle工具是不需要安装的,直接网上下载解压就可以运行了。
不过它依赖于Java,需要本地有JDK环境,如果是安装4.2或5.4版本,JDK需要1.5以上的版本,推荐1.6或1.7的JDK。
运行Kettle直接双击里面的批处理文件spoon.bat就行了,如图1.1所示:图1.12.Kettle脚本开发2.1.建立资源库(repository仓库)Repository仓库是用来存储所有kettle文件的文件系统,由于数据交换平台服务器管理kettle文件也是用Repository仓库,因此我们这边本地的kettle 开发环境也是要用到该资源库。
建立资源库的方式是工具 --> 资源库- -> 连接资源库,这时候弹出一个窗口,我们点击右上角的“+”号,跟着点击下面的kettle 选项,按确定,如图2.1所示:图2.1跟着在右上角选择一个目录,建议在kettle路径下新建repository文件夹,再选择这个文件夹作为根目录,名称和描述可以任意写,如图2.2所示:图2.2建完后会kettle工具会自动连接到repository资源库,每次打开kettle 也会弹出一个窗口让你先连接到资源库。
在连接到资源库的情况下打开文件就是资源库所在目录了,如图2.3所示。
Kettl e使用说明简版1、文档说明本文档主要介绍我们实际应用中使用Kettle工具来开发ETL过程的相关说明,内部文档,仅供参考.2、ETL流程图3、关键操作介绍3.1创建资源库[对象位置]:登陆界面[实现功能]:配置存储相关转换、任务及相关附属信息的数据库[操作说明]:1)进入登陆界面:2)点击新建按钮,进入配置界面,填写相关信息3)填写完毕,可测试是否成功,成功后,进入如下界面,点创建或更新4)创建完毕可用资源库用户登录Kettle,默认用户名,密码:admin/admin[备注]:我们一般建立一个独立的数据库用户,专门存储Kettle相关信息,资源库就连接在这个数据库用户上3.2创建转换[对象位置]:文件〉〉新建〉〉转换[实现功能]:将库A的表A1中的数据经过一定转换,插入到库B的表B1[操作说明]:1)新建一个转换2)将“核心对象〉〉输入〉〉表输入”拖到转换设置面板3)双击“表输入”,进入脚本编辑界面:本界面可以设置数据库连接,点“新建”可以创建一个新的数据库连接,点“编辑”更改数据库连接,然后编辑好相关提取语句:4)将“核心对象〉〉输出〉〉表输出”拖到转换设置面板5)双击“表输出”,进入脚本编辑界面:本界面需要选择数据转入目标表的数据库连接,以及目标表的表名称,如果数据量比较大的话,可以设置每次提交的数据量6)将表输入和表输出连接:按住shift,鼠标从“表输入”拖到“表输出”,如图:7)该转换编辑成功,可以保存并执行测试[保存]:[执行]:8)执行成功后便可以编辑其它转换,过程类似[备注]:1)编写的SQL语句的字段别名要与数据转入的目标表的字段名称一致;2)语句最后不能有标点;3)若SQL中有参数的话,需要将“替换SQL语句中的变量”选中;4)转换前可以执行一些脚本比如:将“脚本〉〉执行SQL脚本”拖入,并连接即可,双击可编辑SQL(需要有分号,若更新库则需要提交)3.3创建任务[对象位置]:文件〉〉新建〉〉任务[实现功能]:将多个操作串行合并,形成一个整体任务,其中的操作可以是转换、任务、脚本等等[使用说明]:1)新建一个任务2)拖入几个任务对象,可以是转换、任务、脚本等,并连接,如图:3)双击相关对象进行编辑,需要选择已经建立好的转换(任务名称)名称4)所有中间步骤的对象都已设定好以后,保存任务,执行测试任务[备注]:任务中各对象执行,以前一对象成功执行为前提,若任务里,包含多个子任务,如果各任务之间相互独立,可以在子任务中拖入“success”对象,否则当母任务中某一对象执行失败,则任务停止。
一、【kettle】window安装与配置1、下载kettle包,并解压/projects/data-integration/2、安装jdk,并配置java环境a).打开我的电脑--属性--高级--环境变量b).新建系统变量JA V A_HOME和CLASSPATH变量名:JA V A_HOME变量值:C:\Program Files\Java\jdk1.7.0[具体路径以自己本机安装目录为准]变量名:CLASSPATH变量值:.;%JA V A_HOME%\lib\dt.jar;%JA V A_HOME%\lib\tools.jar;c). 选择“系统变量”中变量名为“Path”的环境变量,双击该变量,把JDK安装路径中bin目录的绝对路径,添加到Path变量的值中,并使用半角的分号和已有的路径进行分隔。
变量名:Path变量值:%JA V A_HOME%\bin;%JA V A_HOME%\jre\bin;3、配置kettle环境在系统的环境变量中添加KETTLE_HOME变量,目录指向kettle的安装目录:D:\kettle\data-integration4、启动spoonWindows直接双击批处理文件Spoon.bat具体路径为:kettle\data-integration\Spoon.batLinux 则是执行spoon.sh,具体路径为:~/kettle/data-integration/spoon.sh二、使用Kettle同步数据同步数据常见的应用场景包括以下4个种类型:➢ 只增加、无更新、无删除➢ 只更新、无增加、无删除➢ 增加+更新、无删除➢ 增加+更新+删除只增加、无更新、无删除对于这种只增加数据的情况,可细分为以下2种类型:1) 基表存在更新字段。
通过获取目标表上最大的更新时间或最大ID,在“表输入”步骤中加入条件限制只读取新增的数据。
2) 基表不存在更新字段。
通过“插入/更新”步骤进行插入。
Kettle用户操作手册1.kettle介绍1.1 什么是kettleKettle是“Kettle E.T.T.L. Envirnonment”只取首字母的缩写,这意味着它被设计用来帮助你实现你的ETTL 需要:抽取、转换、装入和加载数据;它的名字起源正如该项目的主程序员MATT所说:希望把各种数据放到一个壶里然后以一种指定的格式流出。
Spoon是一个图形用户界面,它允许你运行转换或者任务。
1.2 Kettle 的安装要运行此工具你必须安装 Sun 公司的JAVA 运行环境1.4 或者更高版本,相关资源你可以到网络上搜索JDK 进行下载,Kettle 的下载可以到/取得最新版本。
1.3运行SPOON下面是在不同的平台上运行Spoon 所支持的脚本:Spoon.bat: 在windows 平台运行Spoon。
Spoon.sh: 在Linux、Apple OSX、Solaris 平台运行Spoon。
1.4 资源库一个Kettle资源库可以包含那些转换信息,这意味着为了从数据库资源中加载一个转换就必须连接相应的资源库。
在启动SPOON的时候,可以在资源库中定义一个数据库连接,利用启动spoon时弹出的资源库对话框来定义,如图所示:单击加号便可新增;关于资源库的信息存储在文件“reposityries.xml”中,它位于你的缺省home 目录的隐藏目录“.kettle”中。
如果是windows 系统,这个路径就是c:\Documents andSettings\<username>\.kettle。
如果你不想每次在Spoon 启动的时候都显示这个对话框,你可以在“编辑/选项”菜单下面禁用它。
admin 用户的缺省密码也是admin。
如果你创建了资源库,你可以在“资源库/编辑用户”菜单下面修改缺省密码。
1.5 定义1.5.1 转换主要用来完成数据的转换处理。
转换步骤,可以理解为将一个或者多个不同的数据源组装成一条数据流水线。
然后最终输出到某一个地方,文件或者数据库等。
Step:转换步骤,数据流中的处理步骤,对数据进行处理Hop:节点连接,一个Hop 代表两个步骤之间的一个或者多个数据流。
一个Hop 总是代表着一个步骤的输出流和一个步骤的输入流。
1.5.2 作业完成整个工作流的控制,执行数据处理任务,由一个或多个任务条目(Job Entries)组成,一个任务条目也可以引用一个转换,也可以执行一些文件处理(比较,删除等),还可以ftp上传,下载文件,发送邮件,执行shell命令等。
1.5.3 变量(Variables)试用变量的方法可以如下制定:${ Variable}(unix)%%Variable%% (windows)1.6 基本操作1.6.1 拖拽对象按住左键“拖拽”对象到工作区,如下图将表输入拖拽到右侧工作区。
1.6.2 右键编辑功能如图点击“表输入”右键,选择“编辑步骤”编辑表输入属性设置(或双击)。
如果语句中有变量,就要在上图中“替换SQL语句里的变量”打勾;变量在Parameters中设置如下图所示:点击工作区空白处,编辑“转换”的属性设置,如下图:1.6.3 连接线1)按住shift功能键后左键按住要连接的起始对象指向终止对象。
2)在连接线上右键可以删除节点连接。
如下图,按住shift功能键后左键按住“表输入”后指向“表输出”:1.6.4 执行、调试、停止如图所示:○2转换实例(Transformation)2.1数据转移(库—库)a.文件—新建—转换b.从左侧的核心对象中拖动你想要的步骤至右侧的空白区(此例中只需拖入表输入与表输出即可),并用节点连接。
** 在左侧的核心对象常用的步骤有:输入、输出、转换、连接、查询和脚本。
c.双击表输入--数据库连接—新建—填写你要连接的数据库信息—Test—okd.根据需要编写你的sql语句确定rownum表示输出的语句的条数,设置如下:在空白处点击右键e.表输出设置数据库连接:同表输入,根据需要将生成的表导入到相同或不同的数据库;目标表:即生成的表的名字Sepecify database files 要打勾,当要在 Database files里要获得字段就可以点击Get files就可以获得字段,可以根据自己的需要是否删掉不想要的字段。
Enter field mapping是设置流里与生成表里的字段的映射关系;如下图所示:@Sream field 是表的输入流,也就是输入表的字段,Table field 是输出表的字段,可以根据自己的需要,起字段名称。
@当字段添加完成后,要执行Sql,在数据库空中就创建了表及表的结构。
@最后,我们就可以点击运行按钮了如果执行成功,就可以到数据库查看你所生成的表了。
2.2值映射a.界面设计b.值映射如图所示:值映射即把某一字段的源值改变成目标值或者将某一字段名更改成目标字段名并给其赋值。
2.3去除重复记录a.界面设计b.去除重复记录如图所示:选择某一个或某些字段将字段中的重复值去掉;当用来比较的字段是多个时,他们之间是and的关系@增加计数器到输出:如果你想知道多少重复行被去掉,就选择此选项。
2.4增加常量如图所示:给表中增加字段,并可以给其赋值。
2.5字段选择如图所示:从表输入中选择字段,对字段进行处理后输出;若无移除,则‘选择和修改’中的字段要与‘元数据’中的字段保持一致;输出可以进行两种选择:分发与复制。
分发就是将所选字段的数据依次分配到所选的输出表中这个步骤常常用来:1、选择字段2、重命名字段3、指定字段长度或者精度以下是三个不同标签的功能:1、选择和修改:指定输出流中字段的精确顺序和名称。
2、删除:指定必须从输出流中删除的字段。
3、元数据:修改数据字段的名称、类型、长度和精度。
选项:1、字段名称:选择或者修改的字段名称。
2、改名:如果不想改名就留空白。
3、长度、精度:输入数字指定长度、精度(-1:代表没有长度、精度指定)2.6 拆分字段如图所示:可以把某一字段拆分成多个字段,例如:type_name=’代收话费,新装天翼手机’,可以拆分成type_name_a=’代收话费’,type_name_b=’新装天翼手机’;这个例子中只有type_name1有值,type_name为空**拆分的字段类型必须是String。
2.7排序记录如图:即根据需要将某一字段排序(升序或降序)后输出2.8行扁平化效果如图:把多条记录中不存在重复值的字段进行扁平化:具体设置如下2.9计算器单击计算,会出现各种计算方法来完成你需要的计算。
○3输出3.1文本文件输出与xml文件输出只需定义输出文件的存放位置并在字段选项中获取字段就可以了。
3.2插入/更新@@如果是只想做新插入的话,就把“不执行任何更新”打勾。
3.3更新○4查询4.1数据库查询数据库查询—可用于多表连接○5连接5.1Merge Join如图所示:可以选择内连接、左外连接、右外连接和全连接中的任意一种进行表关联后输出。
连接字段即为两个表的关联字段。
5.2记录关联(笛卡尔输出)如上图条件选项:可以根据条件来限制输出的行数与内容5.3合并记录○6脚本6.1执行SQL脚本@如果直接在脚本中创建表的结构,可以这样做创建一个job可以设置不需要定时,如下图所示在SQL脚本中写sql语句:@如果不需要用sql语句来创建表的结构,可以这样做,创建一个转换。
不需要我教你了吧,相信你能行的~~6.2 Modify java script value表输入和表输出不需要我在给你做了吧,你也看了这么多了,自己动手做吧,下面我们来说说Modify java script value里面的设置@注意:你定义新的字段,要设置字段的类型○7分组注意:分组前要把分组的那个字段进行排序。
这给你看到这吧,上面也给你展示过去除重复记录的例子了,剩下的自己弄吧~~哈哈⑧生成记录generate rows主要是用于:生成一些固定字段的记录,主要用来模拟一些数据进行测试。
这个例子是根据路径获取文件名并将文件名输出到文本中;获取文件名是通过js脚本实现。
&&下面进入我们的实战升级:@追加模式概念:全量追加模式(一天创建一个表,保存历史数据)增量追加模式(一共一个表,只更新每天新插入的数据)全量追加模式展示:思考:这个模式的关键是每天创建一张表,只要每天创建一个动态的表即可。
脚本里写的就是每天创建一个表,相信你能看懂~~~怎样来控制每天执行一次呢,不可能每天手动的执行一次吧,这回就该用到job了。
时间设置每天执行一次再放你需要绑定的转换;转换文件名:是放你不链资源库做的转换下面那俩个是连接资源库做的转换,要选好哦~~增量追加模式展示:思考:每天更新表中的数据,可以根据日期这个字段来找到突破口。
前提:是把表中的数据全部都抽取到一张目标表中,再把这张目标表作为源表,来找这张表中最大的日期,只要大于这张表的最大日期,就是新增加的数据了~~~这个就不需要我给你做了吧!这个是增量追加的前提,把表中所有的数据抽取到目标表中。
下面来看增量追加的重要过程:@这个过程就是把目标表作为源表取最大日期,把这个日期作为参数传给表输入2@这个过程用?来接受传过来的参数。
注意:“从步骤插入数据”要选上一步骤的名称哦~注意:因为只更新新插入的数据,所以“不执行任何更新”要打勾。
因为也是每天执行,所有还是创建一个job来绑定这个转换,看了这么多,不要我教你了吧,自己快动手做吧~~@传参数:可以用%%变量%%或${变量}这是一个简单的抽取数据@在执行的时候,会出现变量,在相应的变量的后面的值上,写上sql 语句,例子 and type_id=10。