ETL利器Kettle实战应用解析系列三 【ETL后台进程执行配置方式】

本系列文章主要索引以下:html

1、ETL利器Kettle实战应用解析系列一【Kettle使用介绍】shell

2、ETL利器Kettle实战应用解析系列二 【应用场景和实战DEMO下载】windows

3、ETL利器Kettle实战应用解析系列三 【ETL后台进程执行配置方式】服务器

本文主要阅读目录以下:工具

一、简介Kettle的Kitchen和Span命令行

二、命令行调度任务配置方式设计

三、后台进程配置运行方式日志

四、Windows任务设置code

五、Demo下载orm

 

一、简介Kettle的Kitchen和Span

前面两篇文章中主要讲述了Kettle的 Spoon的转换和做业的GUI设计方式以及运行,也给出了Demo实战,那么实际上咱们的应用模式可能会要求在服务器上之后台进程的方式运行这个ETL任务,就像咱们传统上通常都是用Windows服务的方式来处理数据同样,那么用Kettle咱们怎么去实现呢?这就须要咱们了解一下Kettle的Kitchen和Span。

 Kitchen——工做(job)执行器 (命令行方式)
 Span——转换(trasform)执行器 (命令行方式)

这里咱们重点讲一下 Kitchen.bat做业执行器 ,这个是常常要用到的。

它是一个做业执行引擎,用来执行做业。这是一个命令行执行工具,它的参数说明以下:

    -rep      : Repository name   任务包所在存储名
    -user     : Repository username   执行人
    -pass     : Repository password   执行人密码
    -job      : The name of the job to launch 任务包名称
    -dir      : The directory (don''t forget the leading / or \) 
    -file     : The filename (Job XML) to launch 
    -level    : The logging level (Basic, Detailed, Debug, Rowlevel, Error, Nothing) 指定日志级别
    -log      : The logging file to write to  指定日志文件
    -listdir  : List the directories in the repository 列出指定存储中的目录结构。
    -listjobs : List the jobs in the specified directory 列出指定目录下的全部任务
    -listrep  : List the defined repositories 列出全部的存储
    -norep    : Don''t log into the repository  不写日志

二、命令行调度任务配置方式

仍是拿我在前面文章中提到的第一个例子来去讲一下具体的配置方式,主要的思路就行首先定位到kettle中Kitchen.bat的根目录,而后执行kitchen命令;

步骤1:首先咱们创建一个bat文件,而后点击编辑进入以后,以下所示,这是定位到Kitchen.bat的目录;

E:
cd E:\ETL\pdi-open-3.1.0-826

 

步骤2:执行kitchen命令,以下:

kitchen /file:E:\ETL\脚本文件\MyTest.kjb /level:Basic>>D:\MyTest.log

 

这里注意配正确路径,而后后面是一个基本的日志模式,后面也须要配置日志的输出路径;

三、后台进程配置运行方式

前面咱们已经把bat文件创建起来了,这时候咱们能够以bat方式运行咱们的ETL任务了,不过它的问题是服务器桌面上永远有个黑CMD屏幕,并且不能关,怎么让Bat在屏幕上消失然后台还能运行呢?具体方法有不少种这里介绍两种:

方法一

  bat里有隐藏窗口的命令,很简单,只须要在代码头部加一段代码就能够了。 

  @echo off 

  if "%1" == "h" goto begin 

  mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit 

  :begin 

  ::下面是你本身的代码。

方法二

  在你批处理的相同目录下新建一个记事本,里面输入: 

  DIM objShell set objShell=wscript.createObject("wscript.shell") 

  iReturn=objShell.Run("cmd.exe /C c:\1.bat", 0, TRUE)   

  (其中win.bat为你本身的批处理名字,本身改)

  而后把这个记事本保存为后缀名为.vbe的文件,到时候你只要运行这个vbe文件就达到目的了!

  能够写的简单点: 

  Set ws = CreateObject("Wscript.Shell") 

  ws.run "cmd /c c:\1.bat",0 

  或者 

  CreateObject("WScript.Shell").Run "cmd /c c:\1.bat",0 

  (这种写法不少杀软报毒, 须要替换参数0) 

  最后那个0是指窗口参数,用法为:

  0 隐藏窗口并激活另外一窗口。 

  1 激活并显示一个窗口。若窗口是最小化或最大化,则恢复到其原来的大小和位置。 

  2 激活窗口并以最小化显示该窗口。 

  3 激活窗口并以最大化显示该窗口。 

  4 按窗口最近的大小和位置显示。活动窗口保持活动。 

  5 以当前大小和位置激活并显示窗口。 

  6 最小化指定窗口并激活按 Z 序排序的下一个顶层窗口。 

  7 最小化显示窗口。活动窗口保持活动。 

  8 以当前状态显示窗口。活动窗口保持活动。 

  9 激活并显示窗口。若窗口是最小化或最大化,则恢复到原来的大小和位置。在还原应用程序的最小化窗口时,应指定该标志。

四、Windows任务设置

通过前面的两步,咱们已经可让ETL做业在服务器上无声无息的运行了,可是如何自由调度呢,咱们再结合windows的任务计划便可,这里再也不赘述!

五、Demo下载

ETL脚本.bat

相关文章
相关标签/搜索