KETTLE後臺進程執行配置方式
原文鏈接
1、簡介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
-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 列出所有的存儲
2、命令行調度任務配置方式
還是拿我在前面文章中提到的第一個例子來去講一下具體的配置方式,主要的思路就行首先定位到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
這裏註意配正確路徑,然後後面是一個基本的日誌模式,後面也需要配置日誌的輸出路徑;
3、後臺進程配置運行方式
前面我們已經把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 激活並顯示窗口。若窗口是最小化或最大化,則恢復到原來的大小和位置。在還原應用程序的最小化窗口時,應指定該標誌。
4、Windows任務設置
經過前面的兩步,我們已經可以讓ETL作業在服務器上無聲無息的運行了,但是如何自由調度呢,我們再結合windows的任務計劃即可,這裏不再贅述!
5、Demo下載
ETL腳本.bat
KETTLE後臺進程執行配置方式