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

相關文章
相關標籤/搜索