KETTLE使用说明及带输入参数的java调用.docx

上传人:小飞机 文档编号:4885790 上传时间:2023-05-21 格式:DOCX 页数:19 大小:737.59KB
返回 下载 相关 举报
KETTLE使用说明及带输入参数的java调用.docx_第1页
第1页 / 共19页
KETTLE使用说明及带输入参数的java调用.docx_第2页
第2页 / 共19页
KETTLE使用说明及带输入参数的java调用.docx_第3页
第3页 / 共19页
KETTLE使用说明及带输入参数的java调用.docx_第4页
第4页 / 共19页
KETTLE使用说明及带输入参数的java调用.docx_第5页
第5页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《KETTLE使用说明及带输入参数的java调用.docx》由会员分享,可在线阅读,更多相关《KETTLE使用说明及带输入参数的java调用.docx(19页珍藏版)》请在三一办公上搜索。

1、ETL工具kettle使用说明1简介ETL (Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),Kettle是一款国 外开源的etl工具,纯java编写,数据抽取高效稳定。2运行环境:OS: Window、Linux、Unix 均可Jdk1.4以上3开始使用:Kettle可以在http:/kettle.pentaho.org/网站下载。下载ket tle压缩包,因kettl e为绿色软件, 解压缩到任意本地路径即可。(本文着重介绍kettle3.2.0稳定版 阻二)Spoon是一个图形用户界面,在不同平台上运行Spoon需要不同的脚本:Spoon.bat: 在

2、windows 平台运行Spoon (或直接点击Kettle.exe)。Spoon.sh: 在Linux Apple OSX、Solaris 平台运行Spoon。登陆一般选择没有资源库:Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。4 转换(Transformation)新建一个转换:文件旧|淑iS视图赍源库转换作业向导帮助新建转换CTRL-N打开CTRL-Q作业(JJCTRL-ALT-N从URLH开文件 阳M囱得入 日中军IIWMI寄日片CTRL-Ikettle默认transformati

3、on文件保存后后缀名为ktr新建数据库连接(此链接也可在用到的节点处配置)MM excel CompareExceltoDB管吕|园豚I* II tx*a思主对象何核诙嫌浏览器| as日转换日发转换1Kettl 巳集律 s ch em a s填写数据源配置内容点击Test测试连接成功:核心对象切换到核心对象,菜单列出的是Transformation中可以调用的环节列表,可以通过鼠标拖动 的方式对环节进行添加。并且可通过shift+鼠标拖动,实现环节之间的连接。a步疆田 Transform田 Input0 Q输入0 B蝠出田转换田巳 Utility+Flow田巳脚本田查询田登0数据仓库田Vali

4、dation+Statistics田作业田映射0内联国实验田不瘀的田Bulk loading国 ) History常用节点介绍(红色节点后面逐一演示)类别环节名称功能说明输入文本文件输入从本地文本文件输入数据表输入从数据库表中输入数据获取系统信息读取系统信息输入数据输出文本文件输出将处理结果输出到文本文件表输出将处理结果输出到数据库表插入/更新根据处理结果对数据库表机型插入更新,如果数据库中不更新存在相关记录则插入,否则为更新。会根据查询条件中字段进行判断根据处理结果对数据库进行更新,若需要更新的数据在数删除据库表中无记录,则会报错停止根据处理结果对数据库记录进行删除,若需要删除的数据在数据库

5、表中无记录,则会报错停止查询数据库查询流查询根据设定的查询条件,对目标表进行查询,返回需要的结果字段将目标表读取到内存,通过查询条件对内存中数据集进行转换调用DB存储过程 字段选择查询调用数据库存储过程选择需要的字段,过滤掉不要的字段,也可做数据库字段脚本过滤记录排序记录空操作增加常量Modified Java对应根据条件对记录进行分类将数据根据某以条件,进行排序无操作增加需要的常量字段扩展功能,编与JavaScript脚本,对数据进行相应处理映射Script Value 映射(子转换)数据映射作业Sat Variables设置环境变量Get Variables获取环境变量表输入双击拖动到工作

6、面板上的表输入结点,选择(或者新建)所需要的数据库连接,点击获 取SQL查询语句或自行编辑SQL。若需根据前一步获取数据进行查询,可用“? ”号代替,变量顺序与前一节点相同字段选择界面如下:选择和修改:指定需要流到输出流中的字段的精确顺序和名称 删除:指定从输出流中删除的字段(以后输出流将不会获取到此数据) 元数据:修改元数据字段的名称、类型、长度和精度/插入/更新如下图,表示当原表的id=new_test.id时,比较createdate和account,若不同就进行更新, 如果没有此id就插入该数据 运行Transformation:一个简单的 Transformation如下:这里可以不

7、用配置直接启动执行结果中可以查到执行步骤以及输出日志司一 - M)空鼬系统信息毓入享段迭择插入i更新执行结果执行历史日志ff Step Metrics H性能囹|#1好g称复制的戾枷1读写免入臧曰更新拒垣蔬1藏舌时间凝(貌*)Pri/in/out101220000已獭0.211.9-2字02200000已獭0.211.3-3碰涂信息01100000已诲0.0166.6-4插入/更新02221100已诲0.37.8-5任务(Job)新建一个Job神日糠 视囹 资源库 转换 作业()向导w 帮助新建转换CTRL-N打开CTRL-O作业5CTRL-ALT-NtetoSdec从u RUT开文件技醇入C

8、TRL-Ikettle默认job文件保存后后缀名为kjb核心对象菜单列出的是Job中可以调用的环节列表,可以通过鼠标拖动的方式对环节进行添加。每一个环节可以通过鼠标拖动来将环节添加到主窗口中。并可通过shift+鼠标拖动,实现环节之间的连接。常用节点介绍(红色节点后面逐一演示)类别环节名称STARTDUMMYTransformationJobShellSQLFTP功能说明开始结束弓 I用 Transformation流程引用Job流程调用Shell脚本执行sq l语句通过FTP下载Mail发送邮件Table exists检查目标表是否存在,返回布尔值File exists检查文件是否存在,返回

9、布尔值Wait for等待时间,设定一段时间,kettle流程处于等待状态Javascript执行JavaScript脚本Create file创建文件Delete file删除文件Wait for file等待文件,文件出现后继续下一个环节File Compare文件比较,返回布尔值Zip file压缩文件为ZIP包/ Start结点一个Job任务要求要有一个start结点作为工作流入口。如图,设置任务流开始执行的时间,可以循环执行,该图定义为每天16:32执行一次STARTA Job定时1=1回缨:1天以秒计算的间隔:1-J以御I计算的间陶:60Time of day:I16坦Day of

10、 week:期一dDay of month: h帷 1 耽肖 1/ Transformation结点调用一个 Transformation,选择指定的 Transformation文 件(*.ktr)Mail结点配置好目的方和发送方的地址以及SMTP服务器地址此处验证是发送方的用户信息:运行Job:开始结点进入流程,到目标时刻时执行DBUpdate,成功后会发送邮件Gmail B。更多操作写邮件kettlejest 收件箱 x收件箱已加星标重要邮件已发邮件草稿遂请朋友ithrows KettleException*/public void callNativeJob(String jobFil

11、eName) throws KettleExceptionlkettle_test Ioike123.163,comi17:01发送至藏日note作业:作业名 :testMail目录:/作业项:Mail 1上次的结果:作业项编号 :1错误:0读取行:0写入行 :。输入 :o输出行 :0更新行 :。Lines rejected : 0Script exist status : 0结果:true作业项的路径:6 Java调用(注:此处用的是kettle3, kettle4的调用有所不同Jar包引用调用Kettle需要用到的基本jar包如下:4 豚 pdi-kettl&3.2.0 疆 kettle-

12、core.jar - E:pentaholpent3ho4pdi-ce-3.2.0-st3bled3t3-integr3tionlib 晶 kettle-engine.jar - E:pentahopentahoMpdi-ce-3.2.0-stabledata-!ntegrationlib 标 Iog4j-1.2.8.jar - E:pentaho学习已ntaho资料Lpdi-ET.NOftablmWatMntmgratiiDmiibext 标 ognl-2.6.9.jar - E:pentahopentaho*4pdi-ce-3.2.0-stabledata-integrationlibex

13、t 窿 ojdbcl4.jar - E:pe-ntah学习pentahi-ce-3.2.0-stabledata-integrationlibextJDEC 可 spring-core.jar - E:pentah曰学习pentahce-3.2.0-stabledata-integrationlibextspring 囚 commons-beanutils- 1.7.0.Jar - E:pentah学习、pentahoMpdi-ce-3.2.0-stabIedata-integrationlibextcommons 囚 commons-collections-3.1.jar - E:penta

14、h口学习entaho$4pdi-ce-3.2.0-stabIedata-integrationlibextcommons commons-digester-l.S.jar - EiXpentahoXpentahoXpdi-ce-S.S.O-stableXdata-integrationXlibextXcommons common5-lang-2.2.jar - E:pentaholpentaho4pdi-ce-3.2.0-stabIedata-integrationlibextcommons commons-logging-l.l.jar - E:pentahopentahoMpdi-ce-3

15、.2.0-stabIedata-integrationlibextcommons commons-vfs-2.0-20090205.jar - E:pentah学习、pentahoMpdi-ce-3.2.0-stabledata-integrationlibextcommons 湿,kettle-db.jar - EiXpentahoXpentahoXpdi-ce-S.O-stableXdata-integrationXlib其他jar包可根据具体的transformatioajob做添加,这些jar包基本都可以从 data-integration目录中的libext文件夹下找到。调用本地的t

16、ransformation示例代码如下:/*调用本地trans* param transFileName* trans文件路径* throws KettleException*/public void callNativeTrans(String transFileName) throws KettleException (/初始化EnvUtil.environmentInit();StepLoader.init();/转换元对象TransMeta transMeta = new TransMeta(transFileName);/转换Trans trans = new Trans(trans

17、Meta);/执行转换trans.execute(null);/等待转换执行结束trans.waitUntilFinished();调用本地的job示例代码如下: /*调用本地job* param jobFileName* job文件路径 *(/初始化EnvUtil.environmentInit();JobEntryLoader.init();StepLoader.init();/日志TransTest.log最终会出现在项目根目录下LogWriter log = LogWriter.getInstance(TransTest.log, true, LogWriter.LOG_LEVEL_D

18、ETAILED);/ job元对象JobMeta jobMeta = new JobMeta(log, jobFileName, null);/ jobJob job = new Job(log, StepLoader.getInstance(), null, jobMeta);jobMeta.setInternalKettleVariables(job);/执行job job.execute();/等待job执行结束job.waitUntilFinished();带参数的transformation调用做这样一个transformation (将传入的参数输出到一个文本文件中):获取系统信息

19、中作如下配置:示例代码如下: /*带参数的transformation调用* param transFileName* trans文件路径* param params 参数* throws KettleException*/public static void callNativeTrans(String transFileName,String params) throws KettleException (/初始化EnvUtil.environmentInit();StepLoader.init();/转换元对象TransMeta transMeta = new TransMeta(transFileName);/转换Trans trans = new Trans(transMeta);/此处为输入的参数,也可以通过参数传进方法中/String s = 123;/执行转换trans.execute(params);/等待转换执行结束trans.waitUntilFinished();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号