设计效果如下:  

    

kettle JavaScript循环获取变量 kettle循环执行转换_创建数据库

 

 

 

详细介绍

 1)设置变量: BEGIN_DATE、END_DATE,STOP_DATE 

 

kettle JavaScript循环获取变量 kettle循环执行转换_创建数据库_02

 

 如图:当BEGIN_DATE=STOP_DATE时,将结束调度

2)检查字段值:检查BEGIN_DATE是否等于STOP_DATE,如果等于,停止Job,不等于的话执行 acc_bas_ticket_payment_boxed_per_day_ins_detail

kettle JavaScript循环获取变量 kettle循环执行转换_创建数据库_03

 

 

 3) acc_bas_ticket_payment_boxed_per_day_ins_detail 为正常处理逻辑

  

kettle JavaScript循环获取变量 kettle循环执行转换_SQL_04

4)acc_bas_ticket_payment_boxed_per_day_ins_detail 处理完成后执行 RunDayAdd_01 对BEGIN_DATE,END_DATE都加1天

        

kettle JavaScript循环获取变量 kettle循环执行转换_创建数据库_05

5)RunDayAdd_01 执行完成后,判断加了1天的BEGIN_DATE是否等于STOP_DATE,不等于则继续执行acc_bas_ticket_payment_boxed_per_day_ins_detail ,否则结束整个JOB执行,以此循环。

 

 

运行效果(日志记录):

11:17:30 - RepositoriesMeta - Reading repositories XML file: C:\Users\Administrator\.kettle\repositories.xml
11:17:32 - Spoon - Connected to metastore : BST_ACC_CENTER, added to delegating metastore
11:18:42 - Spoon - Spoon
11:18:47 - Spoon - 正在开始任务...
11:18:47 - JOB_ACC_LOOP_ETL - 开始执行任务
11:18:47 - JOB_ACC_LOOP_ETL - 开始项[设置变量]
11:18:47 - JOB_ACC_LOOP_ETL - 开始项[检验字段的值 1]
11:18:47 - JOB_ACC_LOOP_ETL - 开始项[acc_bas_ticket_payment_boxed_per_day_ins_detail]
11:18:47 - acc_bas_ticket_payment_boxed_per_day_ins_detail - Loading transformation from repository [acc_bas_ticket_payment_boxed_per_day_ins_detail] in directory [/tran/BAS/BUS]
11:18:47 - acc_bas_ticket_payment_boxed_per_day_ins_detail - 为了转换解除补丁开始 [acc_bas_ticket_payment_boxed_per_day_ins_detail]
11:18:47 - bst_acc_read - 为'bst_acc_read'创建数据库连接池...
11:18:47 - acc_bas_ticket_payment_boxed_per_day_ins_detail.0 - Connected to database [gz_bigdata_dw_acc_rpt] (commit=1000)
11:18:52 - bst_acc_read - 为'bst_acc_read'创建数据库连接池成功
11:18:52 - 执行SQL脚本.0 - Finished reading query, closing connection.
11:18:52 - 执行SQL脚本.0 - 完成处理 (I=0, O=0, R=0, W=1, U=0, E=0)
11:18:52 - test ticket_payment_boxed_per_day_ins_detail.0 - Finished reading query, closing connection.
11:18:52 - JOB_ACC_LOOP_ETL - 开始项[RunDayAdd_01]
11:18:52 - RunDayAdd_01 - Loading transformation from repository [RunDayAdd_01] in directory [/tran/COMM]
11:18:52 - RunDayAdd_01 - 为了转换解除补丁开始 [RunDayAdd_01]
11:18:52 - 获取变量.0 - 完成处理 (I=0, O=0, R=1, W=1, U=0, E=0)
11:18:52 - 日期累加1天.0 - Finished reading query, closing connection.
11:18:52 - 日期累加1天.0 - 完成处理 (I=1, O=0, R=0, W=1, U=0, E=0)
11:18:52 - 字段选择 2.0 - 完成处理 (I=0, O=0, R=1, W=1, U=0, E=0)
11:18:52 - 设置变量 时间加一天.0 - Setting environment variables...
11:18:52 - 设置变量 时间加一天.0 - Set variable BEGIN_DATE to value [20200402]
11:18:52 - 设置变量 时间加一天.0 - Set variable END_DATE to value [20200403]
11:18:52 - 设置变量 时间加一天.0 - Set variable now_today to value [2020-07-20 11:18:55]
11:18:52 - 写日志.0 -
11:18:52 - 写日志.0 - ------------> 行号 1------------------------------
11:18:52 - 写日志.0 - BEGIN_DATE = 20200402
11:18:52 - 写日志.0 - END_DATE = 20200403
11:18:52 - 写日志.0 -
11:18:52 - 写日志.0 - ====================
11:18:52 - 设置变量 时间加一天.0 - Finished after 1 rows.
11:18:52 - 设置变量 时间加一天.0 - 完成处理 (I=0, O=0, R=1, W=1, U=0, E=0)
11:18:52 - 写日志.0 - 完成处理 (I=0, O=0, R=1, W=1, U=0, E=0)
11:18:52 - JOB_ACC_LOOP_ETL - 开始项[检验字段的值 2]
11:18:52 - JOB_ACC_LOOP_ETL - 开始项[acc_bas_ticket_payment_boxed_per_day_ins_detail]
11:18:52 - acc_bas_ticket_payment_boxed_per_day_ins_detail - Loading transformation from repository [acc_bas_ticket_payment_boxed_per_day_ins_detail] in directory [/tran/BAS/BUS]
11:18:52 - acc_bas_ticket_payment_boxed_per_day_ins_detail - 为了转换解除补丁开始 [acc_bas_ticket_payment_boxed_per_day_ins_detail]
11:18:52 - acc_bas_ticket_payment_boxed_per_day_ins_detail.0 - Connected to database [gz_bigdata_dw_acc_rpt] (commit=1000)
11:18:52 - 执行SQL脚本.0 - Finished reading query, closing connection.
11:18:52 - 执行SQL脚本.0 - 完成处理 (I=0, O=0, R=0, W=1, U=0, E=0)
11:18:52 - test ticket_payment_boxed_per_day_ins_detail.0 - Finished reading query, closing connection.
11:18:52 - JOB_ACC_LOOP_ETL - 开始项[RunDayAdd_01]
11:18:52 - RunDayAdd_01 - Loading transformation from repository [RunDayAdd_01] in directory [/tran/COMM]
11:18:53 - RunDayAdd_01 - 为了转换解除补丁开始 [RunDayAdd_01]
11:18:53 - 获取变量.0 - 完成处理 (I=0, O=0, R=1, W=1, U=0, E=0)
11:18:53 - 日期累加1天.0 - Finished reading query, closing connection.
11:18:53 - 设置变量 时间加一天.0 - Setting environment variables...
11:18:53 - 设置变量 时间加一天.0 - Set variable BEGIN_DATE to value [20200403]
11:18:53 - 设置变量 时间加一天.0 - Set variable END_DATE to value [20200404]
11:18:53 - 设置变量 时间加一天.0 - Set variable now_today to value [2020-07-20 11:18:56]
11:18:53 - 字段选择 2.0 - 完成处理 (I=0, O=0, R=1, W=1, U=0, E=0)
11:18:53 - 日期累加1天.0 - 完成处理 (I=1, O=0, R=0, W=1, U=0, E=0)
11:18:53 - 写日志.0 -
11:18:53 - 写日志.0 - ------------> 行号 1------------------------------
11:18:53 - 写日志.0 - BEGIN_DATE = 20200403
11:18:53 - 写日志.0 - END_DATE = 20200404
11:18:53 - 写日志.0 -
11:18:53 - 写日志.0 - ====================
11:18:53 - 设置变量 时间加一天.0 - Finished after 1 rows.
11:18:53 - 设置变量 时间加一天.0 - 完成处理 (I=0, O=0, R=1, W=1, U=0, E=0)
11:18:53 - 写日志.0 - 完成处理 (I=0, O=0, R=1, W=1, U=0, E=0)
11:18:53 - JOB_ACC_LOOP_ETL - 开始项[检验字段的值 2]
11:18:53 - JOB_ACC_LOOP_ETL - 开始项[acc_bas_ticket_payment_boxed_per_day_ins_detail]
11:18:53 - acc_bas_ticket_payment_boxed_per_day_ins_detail - Loading transformation from repository [acc_bas_ticket_payment_boxed_per_day_ins_detail] in directory [/tran/BAS/BUS]
11:18:53 - acc_bas_ticket_payment_boxed_per_day_ins_detail - 为了转换解除补丁开始 [acc_bas_ticket_payment_boxed_per_day_ins_detail]
11:18:53 - acc_bas_ticket_payment_boxed_per_day_ins_detail.0 - Connected to database [gz_bigdata_dw_acc_rpt] (commit=1000)
11:18:53 - 执行SQL脚本.0 - Finished reading query, closing connection.
11:18:53 - 执行SQL脚本.0 - 完成处理 (I=0, O=0, R=0, W=1, U=0, E=0)
11:18:53 - test ticket_payment_boxed_per_day_ins_detail.0 - Finished reading query, closing connection.
11:18:53 - JOB_ACC_LOOP_ETL - 开始项[RunDayAdd_01]
11:18:53 - RunDayAdd_01 - Loading transformation from repository [RunDayAdd_01] in directory [/tran/COMM]
11:18:53 - RunDayAdd_01 - 为了转换解除补丁开始 [RunDayAdd_01]
11:18:53 - 获取变量.0 - 完成处理 (I=0, O=0, R=1, W=1, U=0, E=0)
11:18:53 - 日期累加1天.0 - Finished reading query, closing connection.
11:18:53 - 设置变量 时间加一天.0 - Setting environment variables...
11:18:53 - 设置变量 时间加一天.0 - Set variable BEGIN_DATE to value [20200404]
11:18:53 - 设置变量 时间加一天.0 - Set variable END_DATE to value [20200405]
11:18:53 - 设置变量 时间加一天.0 - Set variable now_today to value [2020-07-20 11:18:57]
11:18:53 - 日期累加1天.0 - 完成处理 (I=1, O=0, R=0, W=1, U=0, E=0)
11:18:53 - 写日志.0 -
11:18:53 - 写日志.0 - ------------> 行号 1------------------------------
11:18:53 - 写日志.0 - BEGIN_DATE = 20200404
11:18:53 - 写日志.0 - END_DATE = 20200405
11:18:53 - 写日志.0 -
11:18:53 - 写日志.0 - ====================
11:18:53 - 字段选择 2.0 - 完成处理 (I=0, O=0, R=1, W=1, U=0, E=0)
11:18:53 - 设置变量 时间加一天.0 - Finished after 1 rows.
11:18:53 - 设置变量 时间加一天.0 - 完成处理 (I=0, O=0, R=1, W=1, U=0, E=0)
11:18:53 - 写日志.0 - 完成处理 (I=0, O=0, R=1, W=1, U=0, E=0)
11:18:53 - JOB_ACC_LOOP_ETL - 开始项[检验字段的值 2]
11:18:53 - JOB_ACC_LOOP_ETL - 开始项[acc_bas_ticket_payment_boxed_per_day_ins_detail]
11:18:53 - acc_bas_ticket_payment_boxed_per_day_ins_detail - Loading transformation from repository [acc_bas_ticket_payment_boxed_per_day_ins_detail] in directory [/tran/BAS/BUS]
11:18:53 - acc_bas_ticket_payment_boxed_per_day_ins_detail - 为了转换解除补丁开始 [acc_bas_ticket_payment_boxed_per_day_ins_detail]
11:18:53 - acc_bas_ticket_payment_boxed_per_day_ins_detail.0 - Connected to database [gz_bigdata_dw_acc_rpt] (commit=1000)
11:18:54 - 执行SQL脚本.0 - Finished reading query, closing connection.
11:18:54 - 执行SQL脚本.0 - 完成处理 (I=0, O=0, R=0, W=1, U=0, E=0)
11:18:54 - test ticket_payment_boxed_per_day_ins_detail.0 - Finished reading query, closing connection.
11:18:54 - JOB_ACC_LOOP_ETL - 开始项[RunDayAdd_01]
11:18:54 - RunDayAdd_01 - Loading transformation from repository [RunDayAdd_01] in directory [/tran/COMM]
11:18:54 - RunDayAdd_01 - 为了转换解除补丁开始 [RunDayAdd_01]
11:18:54 - 获取变量.0 - 完成处理 (I=0, O=0, R=1, W=1, U=0, E=0)
11:18:54 - 日期累加1天.0 - Finished reading query, closing connection.
11:18:54 - 设置变量 时间加一天.0 - Setting environment variables...
11:18:54 - 设置变量 时间加一天.0 - Set variable BEGIN_DATE to value [20200405]
11:18:54 - 设置变量 时间加一天.0 - Set variable END_DATE to value [20200406]
11:18:54 - 设置变量 时间加一天.0 - Set variable now_today to value [2020-07-20 11:18:57]
11:18:54 - 写日志.0 -
11:18:54 - 写日志.0 - ------------> 行号 1------------------------------
11:18:54 - 写日志.0 - BEGIN_DATE = 20200405
11:18:54 - 写日志.0 - END_DATE = 20200406
11:18:54 - 写日志.0 -
11:18:54 - 写日志.0 - ====================
11:18:54 - 日期累加1天.0 - 完成处理 (I=1, O=0, R=0, W=1, U=0, E=0)
11:18:54 - 字段选择 2.0 - 完成处理 (I=0, O=0, R=1, W=1, U=0, E=0)
11:18:54 - 设置变量 时间加一天.0 - Finished after 1 rows.
11:18:54 - 设置变量 时间加一天.0 - 完成处理 (I=0, O=0, R=1, W=1, U=0, E=0)
11:18:54 - 写日志.0 - 完成处理 (I=0, O=0, R=1, W=1, U=0, E=0)
11:18:54 - JOB_ACC_LOOP_ETL - 开始项[检验字段的值 2]
11:18:54 - JOB_ACC_LOOP_ETL - 开始项[成功 2]
11:18:54 - JOB_ACC_LOOP_ETL - 完成作业项[成功 2] (结果=[true])
11:18:54 - JOB_ACC_LOOP_ETL - 完成作业项[检验字段的值 2] (结果=[true])
11:18:54 - JOB_ACC_LOOP_ETL - 完成作业项[RunDayAdd_01] (结果=[true])
11:18:54 - JOB_ACC_LOOP_ETL - 完成作业项[acc_bas_ticket_payment_boxed_per_day_ins_detail] (结果=[true])
11:18:54 - JOB_ACC_LOOP_ETL - 完成作业项[检验字段的值 2] (结果=[true])
11:18:54 - JOB_ACC_LOOP_ETL - 完成作业项[RunDayAdd_01] (结果=[true])
11:18:54 - JOB_ACC_LOOP_ETL - 完成作业项[acc_bas_ticket_payment_boxed_per_day_ins_detail] (结果=[true])
11:18:54 - JOB_ACC_LOOP_ETL - 完成作业项[检验字段的值 2] (结果=[true])
11:18:54 - JOB_ACC_LOOP_ETL - 完成作业项[RunDayAdd_01] (结果=[true])
11:18:54 - JOB_ACC_LOOP_ETL - 完成作业项[acc_bas_ticket_payment_boxed_per_day_ins_detail] (结果=[true])
11:18:54 - JOB_ACC_LOOP_ETL - 完成作业项[检验字段的值 2] (结果=[true])
11:18:54 - JOB_ACC_LOOP_ETL - 完成作业项[RunDayAdd_01] (结果=[true])
11:18:54 - JOB_ACC_LOOP_ETL - 完成作业项[acc_bas_ticket_payment_boxed_per_day_ins_detail] (结果=[true])
11:18:54 - JOB_ACC_LOOP_ETL - 完成作业项[检验字段的值 1] (结果=[true])
11:18:54 - JOB_ACC_LOOP_ETL - 完成作业项[设置变量] (结果=[true])
11:18:54 - JOB_ACC_LOOP_ETL - 任务执行完毕
11:18:54 - Spoon - 任务已经结束.