ETL工具kettl应用说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Kettle工具在实际中的应用说明
一:资源库的设置
Kettle提供了两种资源库的选择方式:数据库存放、本地文件存放。
数据库
该方式是通过数据库连接直接在数据库里面创建kettle表,表里面记录着你所做的任何保存过的记录以及转换和任务。此方法是远程存放的方式,具有可多人共享一个资源库的优势,但是也存在资源库不稳定的缺点。
以下就数据库资源库具体怎么实现做一下介绍:
第一:
在tools选项下面有
在资源库选项里面有连接资源库选项,点击之后会出现如下界面:
刚开始的时候是没用任何连接的,需要根据自己的需要选择创建。
笔:修改资源库连接
加:添加新的资源库
叉:删除选中资源库
点那个加号图标就可以进入到新建选项页面:
在中间的显示栏中:第一行代表着写入到数据库的资源库、第二行代表着保存到本地的资源库。
点击第一行进入如下界面:
点击新建按钮将会新建数据库连接,如果已经有你需要的数据库连接也可以选择你需要的。
上面就是新建数据库页面,根据你的需要选择具体的数据库连接方式,填写好完成之后点击一下测试按钮,就可以知道数据库连接是否成功。
到这里,资源库的连接已经做了一半了。接下来介绍另一半要做的事情。
回到这个页面,填写唯一的ID、名称,然后点击创建或更新按钮,之后会出现一些SQL语句,执行这些语句,如果成功的话就创建成功了,如果失败则要检查一下数据库。最后点击确定按钮就成功了。
这个时候就可以连接资源库了。
选择你创建的资源库,admin用户的默认密码是admin ,点击OK就行了。
本地
接下来简单介绍一下本地资源库,其实是很简单的。
选择第二行。将会看到如下页面:
这个就是本地的页面,比数据库简单多了,选择一下存放路径,给它一个ID号和名称,点击OK就可以了。
资源库建好之后就会进入到主页面了:
这个就是主页面了,表面上是空空如也的。
关于资源库的设置就就讲到这里了,关于更多的介绍请参照官方说明文档!
二:实现增量更新的方法
Kettle工具并没有提供增量更新的选项,这个是要根据你的策略来实现的。基本的策略是根据时间字段来做增量更新。接下来我们就如何根据时间字段做增量更新。
要实现增量更新的前提必须是原表必须要有一个时间字段,然后目标表根据这个时间字段来做查询和更新。(具体思想请参照开源ETL工具之增量更新设计技巧文档)
如图:
我将一一解释一下各个选项的具体作用。
第一个表输入:
这个是要获取目标表要做增量更新的时间字段的最大值,这个值将会传递给下一个表输入。此查询必须要保证只能传送一个值。
第二个表输入:
这个就是对原表的查询,要注意SQL语句里面的where子句。Where子句里面的判断字段就是做增量更新的时间字段,值就是前面一个表输入传递过来的。此时判断的值要用?来代
替,这两个选项要这样设置。
表输出:
这里就是要进行更新的目标表了,也就是第一个表输入的表。里面具体的一些选项请参照kettle工具说明手册。
以上就是增量更新的实现方法。
三:JOB定时的实现方法
我们在实际应用当中往往要实现定时的功能,kettle提供了定时的功能,这个只能在任务里面实现定时的功能。
见如下图:
在JOB里面的start选项里面提供了定时机制,可以根据你的需求来选择你需要的定时类型
这里要注意一下,要定时的时候一定要把重复的按钮给勾选上。
这里是通过kettle提供的机制来进行定时的,另一种定时的机制是依靠写脚本语句来定时调用kettle脚本。(这种我们在后面会在脚本调用介绍到)
四:kettle变量的设置与获取
变量在kettle里面使用的比较频繁,这里我就做一下简单的介绍,具体的变量设置请根据实际情况来设置。我这里的案例是获取系统时间,然后分别设置四个变量,这四个变量分别代表着“年”、“月”、“日”、“时”。
如下图:
变量的相关选项在转换里面中的作业里面。
我获取的是系统信息是:系统日期(关于这个选项请参看kettle手册)
为了达到我之前的需求,我在这里运用了kettle另一个功能。
中的javascript脚本选项。
这个步骤是讲系统时间认为的分割为四个字段。这四个字段将会作为变量的值传递到下一个步骤。(关于这个选项请参看kettle手册)
接下来就是到设置变量这个环节了。
后可以用变量名调用变量),第三是变量的活动类型(一般选择是作为全局变量)
第四列是给变量设置默认值。
以上就是变量设置的相关介绍,变量在使用之前必须先执行这个变量设置的转换,这样在后面才能实现对变量的调用。
关于变量的获取,这个在选项中只要有
这个标志的都是可以用变量的,变量的获取可以使用CTRL+ALT+SPACE快捷键来选择你所需要的变量名。
五:通过shell脚本调用kettle文件
在部署有kettle工具的机器上可以通过写脚本文件来调用kettle文件,这样就能实现不打开kettle工具而后台实现kettle文件的运行。
在kettle工具的文件下有这样两个文件
一下就是我在linux系统下写的一个脚本调用的案例:
#!/bin/sh
. /etc/profile
sh /sybase/data-integration/kitchen.sh -rep=111 -user=admin -pass=admin -job=EXCL -dir="/EXCL/" -level=basic>/sybase/pdi/EXCLlog.txt
~
就关于几个参数做一下介绍。
sh /sybase/data-integration/kitchen.sh ——调用kettle文件下的kitchen.sh文件
-rep=111 ——资源库ID
-user=admin ——资源库登陆用户
-pass=admin ——登陆密码
-job=EXCL ——调用JOB的名称
-dir="/EXCL/" ——JOB的存放路径
-level=basic>/sybase/pdi/EXCLlog.txt ——kettle日志写入到文件中
相关的一些参数的详细说明如下:
Options: