使用场景:从数据库中获取上次执行时间,在之后的转换中使用这个时间。
Kettle Version : 7.1
1. 设置变量
新建一个转换,添加一个 输入 => 表输入 和 作业 => 设置变量 。
修改 表输入 使其查询出想要的时间值
按住 Shift 将 表输入 拖动到 设置变量
修改 设置变量
字段名称:表输入 中查询出的字段名
变量名:假设为 LastActionTime
变量活动类型:相当于变量的作用域,有四个选项
Valid in the Java Virtual Machine
Valid in the parent job
Valid in the grand-parent job
Valid in the root job
Default Value
如果 表输入 没有查询到结果时的默认值(这里设置为 2010/01/01 00:00:00)
点击编辑区左上角的 Run 按钮运行转换
如果变量的活动类型设置为 parent job 或 grand-parent job 会由于找不到这个 job 而报错。
2. 使用变量
貌似不用添加 获取变量 也可以直接使用前面的转换步骤中设置的变量。
在转换中新增一个 作业 => 获取变量。
修改 获取变量
名称:LastActionTime
变量:${LastActionTime} (可以使用快捷键 Ctrl + Alt + Space 选择变量)
类型:Date
格式:yyyy/MM/dd HH:mm:ss (下拉框可以选择格式)
在转换中的 SQL 文可以通过如下的方式使用变量(SqlServer)。
WHERE ModifyDate >= Cast(SUBSTRING(‘${LastActionTime}’,1,19) AS DATETIME)
一定要勾选 替换 SQL 语句中的变量 。
转载请保留本文链接:https://www.zhe94.com/879.html