计算机网络应用Kettle命令行使用说明_第1页
计算机网络应用Kettle命令行使用说明_第2页
计算机网络应用Kettle命令行使用说明_第3页
计算机网络应用Kettle命令行使用说明_第4页
计算机网络应用Kettle命令行使用说明_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Kettle命令行使用说明KETTLE简介说到ETL开源项目,Kettle当属翘首,项目名称很有意思,水壶。按项目负责人Matt的说法:把各种数据放到一个壶里,然后呢,以一种你希望的格式流出。呵呵,外国人都很有联想力。看了提供的文档,然后对发布程序的简单试用后,可以很清楚得看到Kettle的四大块:Chef——工作(job)设计工具(GUI方式)Kitchen——工作(job)执行器(命令行方式)Spoon——转换(transform)设计工具(GUI方式)Span——转换(trasform)执行器(命令行方式)Chef——工作(job)设计器这是一个GUI工具,操作方式主要通过拖拖拉拉,勿庸多言,一看就会。何谓工作?多个作业项,按特定的工作流串联起来,开成一项工作。正如:我的工作是软件开发。我的作业项是:设计、编码、测试!先设计,如果成功,则编码,否则继续设计,编码完成则开始设计,周而复始,作业完成。Chef中的作业项包括:转换:指定更细的转换任务,通过Spoon生成。通过Field来输入参数;SQL:sql语句执行;FTP:下载ftp文件;邮件:发送邮件;检查表是否存在;检查文件是否存在;执行shell脚本:如dos命令。批处理:(注意:windows批处理不能有输出到控制台)。Job包:作为嵌套作业使用。JavaScript执行:这个比较有意思,我看了一下源码,如果你有自已的Script引擎,可以很方便的替换成自定义Script,来扩充其功能;SFTP:安全的Ftp协议传输;HTTP方式的上/下传。工作流如上文所述,工作流是作业项的连接方式。分为三种:无条件,成功,失败,为了方便工作流使用,KETTLE提供了几个辅助结点单元(也可将其作为简单的作业项):Start单元:任务必须由此开始。设计作业时,以此为起点。OK单元:可以编制做为中间任务单元,且进行脚本编制,用来控制流程。ERROR单元:用途同上。DUMMY单元:什么都不做,主要是用来支持多分支的情况,文档中有例子。存储方式支持XML存储,或存储到指定数据库中。一些默认的配置(如数据库存储位置……),在系统的用户目录下,单独建立了一个.Kettle目录,用来保存用户的这些设置。LogView可查看执行日志。Kitchen——作业执行器是一个作业执行引擎,用来执行作业。这是一个命令行执行工具,没啥可讲的,就把它的参数说明列一下。-rep:Repositoryname任务包所在存储名-user:Repositoryusername执行人-pass:Repositorypassword执行人密码-job:Thenameofthejobtolaunch任务包名称-dir:Thedirectory(don'tforgettheleading/or\)-file:Thefilename(JobXML)tolaunch-level:Thelogginglevel(Basic,Detailed,Debug,Rowlevel,Error,Nothing)指定日志级别-log:Theloggingfiletowriteto指定日志文件-listdir:Listthedirectoriesintherepository列出指定存储中的目录结构。-listjobs:Listthejobsinthespecifieddirectory列出指定目录下的所有任务-listrep:Listthedefinedrepositories列出所有的存储-norep:Don'tlogintotherepository不写日志嗯,居然不支持调度。看了一下文档,建议使用操作系统提供的调度器来实现调度,比如:Windows可以使用它的任务计划工具。Spoon——转换过程设计器GUI工作,用来设计数据转换过程,创建的转换可以由Pan来执行,也可以被Chef所包含,作为作业中的一个作业项。下面简单列举一下所有的转换过程。(简单描述,详细的可见Spoon文档)Input-Steps:输入步骤lTextfileinput:文本文件输入可以支持多文件合并,有不少参数,基本一看参数名就能明白其意图。lTableinput:数据表输入实际上是视图方式输入,因为输入的是sql语句。当然,需要指定数据源(数据源的定制方式在后面讲一下)lGetsysteminfo:取系统信息就是取一些固定的系统环境值,如本月最后一天的时间,本机的IP地址之类。lGenerateRows:生成多行。这个需要匹配使用,主要用于生成多行的数据输入,比如配合Addsequence可以生成一个指定序号的数据列。lXBaseInputlExcelInputlXMLInput这三个没啥可讲的,看看参数就明了。Output-Steps:输出步聚lTextfileoutput:文本文件输出。这个用来作测试蛮好,呵呵。很方便的看到转换的输出。lTableoutput:输出到目的表。lInsert/Update:目的表和输入数据行进行比较,然后有选择的执行增加,更新操作。lUpdate:同上,只是不支持增加操作。lXMLOutput:Look-up:查找操作lDataBaselStreamlProcedurelDatabasejoinTransform转换lSelectvalues对输入的行记录数据的字段进行更改(更改数据类型,更改字段名或删除)数据类型变更时,数据的转换有固定规则,可简单定制参数。可用来进行数据表的改装。lFilterrows对输入的行记录进行指定复杂条件的过滤。用途可扩充sql语句现有的过滤功能。但现有提供逻辑功能超出标准sql的不多。lSortrows对指定的列以升序或降序排序,当排序的行数超过5000时需要临时表。lAddsequence为数据流增加一个序列,这个配合其它Step(Generaterows,rowsjoin),可以生成序列表,如日期维度表(年、月、日)。lDummy不做任何处理,主要用来作为分支节点。lJoinRows对所有输入流做笛卡儿乘积。lAggregate聚合,分组处理lGroupby分组,用途可扩充sql语句现有的分组,聚合函数。但我想可能会有其它方式的sql语句能实现。lJavaScriptvalue使用mozilla的rhino作为脚本语言,并提供了很多函数,用户可以在脚本中使用这些函数。lRowNormaliser该步骤可以从透视表中还原数据到事实表,通过指定维度字段及其分类值,度量字段,最终还原出事实表数据。lUniquerows去掉输入流中的重复行,在使用该节点前要先排序,否则只能删除连续的重复行。lCalculator提供了一组函数对列值进行运算,用该方式比用户自定义JAVASCRIPT脚本速度更快。lMergeRows用于比较两组输入数据,一般用于更新后的数据重新导入到数据仓库中。lAddconstants:增加常量值。lRowdenormaliser同Normaliser过程相反。lRowflattener表扁平化处理,指定需处理的字段和扃平化后的新字段,将其它字段做为组合Key进行扃平化处理。除了上述基本节点类型外还定义了扩展节点类型lSPLITFIELDS按指定分隔符拆分字段lEXECUTESQLSCRIPT执行SQL语句lCUBEINPUTlCUBEOUTPUT其它l存储方式:与Chef相同。l数据源(Connection);见后。lHops:setp连接起来,形成Hops。lPluginsteptypes等节点:这个没仔细看,不知如何制作Pluginstep。lLogView:可查看执行日志。Pan——转换的执行工具命令行执行方式,可以执行由Spoon生成的转换任务。同样,不支持调度。参数与Kitchen类似,可参见Pan的文档。其它Connection可以配置多个数据源,在Job或是Trans中使用,这意味着可以实现跨数据库的任务。支持大多数市面上流行的数据库。个人感觉:(本人不成熟的看法)1、转换功能全,使用简洁。作业项丰富,流程合理。但缺少调度。2、java代码,支持的数据源范围广,所以,跨平台性较好。3、从实际项目的角度看,和其它开源项目类似,主要还是程序员的思维,缺少与实际应用项目(专业领域)的更多接轨,当然,项目实施者的专注点可能在于一个平台框架,而非实际应用(实际应用需要二次开发)。4、看过了大多数源码,发现源码的可重用性不是太好(缺少大粒度封装),有些关键部分好像有Bug。比如:个别class过于臃肿,线程实现的同步有问题。5、提供的工具有些小错,如参数的容错处理。命令行执行实例使用资源库(repository)登录时,默认的用户名和密码是admin/admin。当job是存放在资源库(一般资源库都使用数据库)中时,使用Kitchen.bat执行job时,需使用如下的命令行:Kitchen.bat-repkettle-useradmin-passadmin-jobjob名当job没有存放在资源库而存放在文件系统时,使用Kitchen.bat执行job时,需使用如下的命令行:Kitchen.bat-norep-fileuser-transfer-job.kjb可以使用命令行执行job后,就可以使用windows或linux的任务调度来定时执行任务了命令,在控制台执行测试。Bat文件实例如下:@echooffrem该批处理为每小时开启一个。需要在执行计划中添加。rem仅适用于不怕开启两个任务重复抽取的JOB。否则可能会导致重复。rem隐藏执行的窗口,避免人为关掉remif"%1"=="h"(goto:begin)remstartmshtavbscript:createobject("wscript.shell").run("""%~nx0""h",0)(window.close)&&exit:beginrem设置环境变量。remsetJAVA_HOME=C:\ProgramFiles\Java\jdk1.6.0_27remsetCALASSPATH=%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;remsetPath=%JAVA_HOME%\binrem以下才是执行相关的内容。rem得到当前日期:日sett_dd=%date:~8,2%rem得到当前时间:小时remsett_hh=%time:~0,2%rem设置等待时间1000=1ssett_sleep=1800000remKETTLE的路径setpath_kettle=F:\ETL\data-integrationrem日志文件setfile_log=F:\ETL\Job_Log\DS_JB_30MIN%date:~0,4%%date:~5,2%%date:~8,2%.logsetfile_sleep=F:\ETL\data-integration\sleep30MIN.vbsrem作业相关rem资源库JOB路径用户密码setmyrep=kettlesetmyjob=DS_JB_30MINsetmydir=/总体维护/J01_半小时任务setmyuser=adminsetmypass=passwordf:cd%path_kettle%rem循环:myloopecho请不要关闭此窗口:正在执行kettle_every30MIN_job30分钟定时抽取rem执行KETTLE。callkitchen-rep%myrep%-job%myjob%-dir%mydir%-user%myuse

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论