kettle中含有參數傳遞的定時任務


1需求描述

使用Linux中的CRONTAB調度kettle

2 數據庫環境

DROP TABLE DB2INST1.TEST_1;

CREATE TABLE DB2INST1.TEST_1

    (

    ID   INTEGER,

    NAME VARCHAR (10),

    DATE VARCHAR(10)

    )

    IN USERSPACE1;

INSERT INTO TEST_1 VALUES ('1','sds','20160909');

INSERT INTO TEST_1 VALUES ('2','sds','20160910');

INSERT INTO TEST_1 VALUES ('3','sds','20160907');

INSERT INTO TEST_1 VALUES ('4','sds','20160908');

DROP TABLE DB2INST1.TEST_2

CREATE TABLE DB2INST1.TEST_2

    (

    ID   INTEGER,

    NAME VARCHAR (10),

    DATE VARCHAR(10)

    )

    IN USERSPACE1;

  


3 整體示意圖
 

 

3.1 ETL.kjb

 

 

3.2 Tran.ktr

 

 

 

3.3 調度示意圖

 

 

 

使用Linux調度kjb,使用kjb調度ktr

4 參數設置

首先在ETL.kjb中定義參數

右鍵---作業設置

 

 

接着看到如下界面:設置作業中的命令參數

 

 

作業中的命令參數設置好了,那么接下來就是把作業中的命令參數傳遞給轉換

 

 

接着打開Tran.ktr,定義轉換參數(定義的名字與作業中定義的轉換參數保持一致)

 

 

接着在表輸入中獲取參數

 

 

  

整個從作業到轉換參數傳遞結束

5 Linux自動調度作業設置

新建ETL.sh文件,內容如下

#!/bin/bash
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.51-2.4.5.5.el7.x86_64/jre
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
/home/kettle/soft/data-integration/kitchen.sh -file=/home/kettle/job/ETL.kjb -param:date=20160909 > /home/kettle/20160909.txt

 

5.1   CRONTAB命令

查看當前用戶的定時任務

[kettle@localhost sh]$ crontab –l

編輯當前用戶的定時任務

[kettle@localhost sh]$ crontab –e 

編輯當前用戶的定時任務

[kettle@localhost sh]$ crontab –r

 

摘自:http://www.cnblogs.com/peida/archive/2013/01/08/2850483.html

實例:

每五分鍾執行  */5 * * * *

每小時執行     0 * * * *

每天執行    0 0 * * *

每周執行    0 0 * * 0

每月執行    0 0 1 * *

每年執行    0 0 1 1 *

Linux中CRONTAB設置

輸入CRONTAB -e,回車查看信息

 

 

按i進入編輯模式,輸入一下內容后保存

 

 

賦予ETL.sh可執行權限

 

 

一分鍾后查看數據庫,結果如下:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM