Kettle,"Job"中设置变量并在"转换"中使用。

48 篇文章 0 订阅
14 篇文章 0 订阅

 

        本篇博客主要介绍Job中自定义变量,并将变量传递到转换中运用。我使用的Kettle工具版本是7.1 .

 

        如下图1、图2所示,是本篇博客需要讲解的Job、转换。其中,图一Job中的 "START"控件、 "设置变量"控件、"转换" 控件均来自 Job 中的 "通用" 列表,如图3所示。

                                                                              图片1

 

                                                                              图片2

 

1、对 job_table_import_process.kjb 文件介绍,如下图3、图4、 图5 、图6 所示。 图4、图5,“设置变量”控件中, "变量有效范围" 表示该控件的范围。"变量替换"属性需要勾选, 变量界面中设置的变量名严格区分大小写,变量有效范围表示该变量的范围。 图6,"转换"控件中, "Transformation: " 输入框中, ' ${Internal.Entry.Current.Directory}/ ' 表示当前目录, job_table_import_process.kjb 文件、table_import_process.ktr 文件如图7表示。

                                                                              图片3

 

                                                                              图片4

 

                                                                              图片5

 

                                                                              图片6

 

                                                                              图片7

 

2、table_import_process.ktr 文件中“表输入”控件,如下图8所示。 SQL输入框中,以 ${变量名} 的形式引用 job 中设置的变量, 变量名严格区分大小写。 在表输入界面中,记得勾选 " 替换SQL 语句里的变量 " 属性,否则 job 中定义的变量名无法使用。

                                                                              图片8

 

3、table_import_process.ktr 文件中“写日志”控件,如下图9所示。 先选择“日志级别”, 之后是否定义日志头文件信息,可自己定义。在"字段"界面,由于 "表输入" 控件中引用自定义变量, 若点击“获取字段” 选项,则会报错。因此,字段界面中的 id、name、 create_date 这3个字段,是我自己手动输入。这3个字段来自 "表输入"控件中SQL界面 SELECT 后的 字段名。

                                                                              图片9

 

启动 job 后,kettle 脚本运行后的日志如下所示:

2020/01/13 23:03:56 - Carte - Installing timer to purge stale objects after 1440 minutes.
2020/01/13 23:04:47 - org.pentaho.di.trans.steps.writetolog.WriteToLogMeta@7235f92b - ERROR (version 7.1.0.0-12, build 1 from 2017-05-16 17.18.02 by buildguy) : 因为一个错误无法从以前的步骤里获取字段
2020/01/13 23:04:55 - Spoon - Spoon
2020/01/13 23:06:04 - Spoon - Spoon
2020/01/13 23:06:11 - Spoon - Spoon
2020/01/13 23:07:23 - Spoon - Spoon
2020/01/13 23:07:30 - Spoon - Spoon
2020/01/13 23:08:31 - Spoon - Spoon
2020/01/13 23:08:39 - Spoon - Spoon
2020/01/13 23:08:57 - Spoon - Spoon
2020/01/13 23:30:03 - org.pentaho.di.trans.steps.writetolog.WriteToLogMeta@7235f92b - ERROR (version 7.1.0.0-12, build 1 from 2017-05-16 17.18.02 by buildguy) : 因为一个错误无法从以前的步骤里获取字段
2020/01/13 23:50:39 - Spoon - Spoon
2020/01/14 00:06:01 - Spoon - 正在开始任务...
2020/01/14 00:06:01 - job_table_import_process - 开始执行任务
2020/01/14 00:06:01 - job_table_import_process - 开始项[设置变量]
2020/01/14 00:06:01 - job_table_import_process - 开始项[转换]
2020/01/14 00:06:01 - 转换 - Loading transformation from XML file [file:///D:/coding_Myself/Kettle-Java/Project_01/03_表输入_定义变量/table_import_process.ktr]
2020/01/14 00:06:01 - 转换 - Using run configuration [Pentaho local]
2020/01/14 00:06:01 - 转换 - Using legacy execution engine
2020/01/14 00:06:01 - table_import_process - 为了转换解除补丁开始  [table_import_process]
2020/01/14 00:06:01 - 表输入.0 - Finished reading query, closing connection.
2020/01/14 00:06:01 - 表输入.0 - 完成处理 (I=2, O=0, R=0, W=2, U=0, E=0)
2020/01/14 00:06:01 - 写日志.0 - 
2020/01/14 00:06:01 - 写日志.0 - ------------> 行号 1------------------------------
2020/01/14 00:06:01 - 写日志.0 - log日志为:
2020/01/14 00:06:01 - 写日志.0 - 
2020/01/14 00:06:01 - 写日志.0 - id = 1002
2020/01/14 00:06:01 - 写日志.0 - name = vx3
2020/01/14 00:06:01 - 写日志.0 - create_date = 2020/01/11 08:15:20.000000000
2020/01/14 00:06:01 - 写日志.0 - 
2020/01/14 00:06:01 - 写日志.0 - ====================
2020/01/14 00:06:01 - 写日志.0 - 
2020/01/14 00:06:01 - 写日志.0 - ------------> 行号 2------------------------------
2020/01/14 00:06:01 - 写日志.0 - log日志为:
2020/01/14 00:06:01 - 写日志.0 - 
2020/01/14 00:06:01 - 写日志.0 - id = 1002
2020/01/14 00:06:01 - 写日志.0 - name = vx
2020/01/14 00:06:01 - 写日志.0 - create_date = 2020/01/11 08:15:20.000000000
2020/01/14 00:06:01 - 写日志.0 - 
2020/01/14 00:06:01 - 写日志.0 - ====================
2020/01/14 00:06:01 - 写日志.0 - 完成处理 (I=0, O=0, R=2, W=2, U=0, E=0)
2020/01/14 00:06:01 - job_table_import_process - 完成作业项[转换] (结果=[true])
2020/01/14 00:06:01 - job_table_import_process - 完成作业项[设置变量] (结果=[true])
2020/01/14 00:06:01 - job_table_import_process - 任务执行完毕
2020/01/14 00:06:01 - Spoon - 任务已经结束.

 

                                                                              图片10

 

 

上一篇博客:  Kettle,“表输出”控件的“定义错误处理”选项具体操作。       

 

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值