Kettle系列教程-第五章:变量/参数
本系列教程基于Kettle 8.1(pdi-ce-8.1.0.0-365)。大部分内容同样适用于Kettle 7.x版本。
章节目录:
- 一、运行环境配置
- JDK
- JVM参数
- KETTLE_HOME
- 依赖包导入
- 二、转换与作业
- 转换流程
- 作业流程
- 三、数据库连接配置
- 创建数据库连接
- 共享数据库连接
- 数据库连接参数
- 四、资源库(数据库存储方式)
- 创建资源库
- 保存流程到资源库
- 从资源库打开流程
- 五、变量/参数
- 参数的配置与使用
- 变量的配置与使用
- 六、转换流程-输入组件
- Excel输入
- 表输入
- 七、转换流程-输出组件
- Excel输出
- 文本文件输出
- 表输出
- 八、转换流程-转换组件
- 九、脚本组件
- 转换-Java代码组件
- 作业-SQL组件
- 作业Shell组件
- 十、对接大数据平台
- 基础文件配置
- 上传文件到HDFS
- 连接Hive
- 十一、使用Windows计划任务定时执行Kettle作业
- 命令说明
- 编写批处理脚本执行Kettle作业
- 创建计划任务定时执行Kettle作业
- 十二、使用Java执行Kettle作业
- 搭建Kettle运行环境
- 代码示例(作业、转换、资源库)
本章说明
Kettle的参数、变量功能是一个很强大也很好用的一个功能,没有使用这个功能的流程都是死的,是没有灵魂的,因为没有通用性。比如我们可以把数据库连接信息配置成参数,在调用作业的时候动态传入,即可做到在只有一个作业流程的情况下对多个同类数据库执行同样的数据处理流程。
启动作业或者转换时初始化的叫做参数,是在调用作业或者转换的时候传入的;作业或者转换执行过程中数值会变动的某些数据,就叫做变量,是在流程内部配置的。
参数的配置与使用
作业、转换的参数用法相同,以转换为例,参数的配置是在转换设置 -> 命名参数
标签页配置的。转换设计器空白处双击鼠标左键
或者右键菜单 -> 转换设置
或者快捷键Ctrl + T
即可打开转换设置窗口。这里我们把数据库连接信息配置成参数,并填上默认值:
然后拖出一个表输入
组件,双击表输入
组件图标即可配置表输入信息:
这里选择新建
数据库连接,连接信息配置如下(详细看图):
配置完成以后,点击测试
按钮,连接成功,说明参数配置使用成功:
测试SQL执行:
可以看到,SQL语句中也是可以使用参数的,但是必须要勾选
下面的替换SQL语句中的变量
选项,这里我们在转换参数中添加一个参数[table_name
]:
回到表输入
组件,写上SQL,预览:
执行转换时传参:
变量的配置与使用
首先把上面的【转换参数示例】修改一下,就改一下表输入中的SQL语句,查询出mysql中已创建的用户名,【记录数量限制】填为1表示只取第一条数据:
然后从【作业】分类下面拖出【设置变量】组件,连接到表输入后面,双击打开:
点击右下角的【获取字段】按钮,会自动读取到【表输入】步骤传过来的字段,变量活动类型
默认为在跟作业中有效
:
点击【确定】的时候会弹出一个提示,意思是设置的变量在当前转换中是不能使用的,只能在后面的步骤中使用:
变量设置完成,保存该转换,新建一个作业【作业变量示例】,组成下图中的流程:
双击【转换】组件,配置转换步骤:
双击【写入文件】组件,配置该步骤,其中文件名使用了变量USER
,变量的使用方式与参数相同,也是${变量名}
,英文半角字符:
保存作业,运行查看效果,可以看到桌面上多出了一个root.txt
文件,文件内容与我们配置的相同:
查看下面的运行日志,还可以看到设置变量时的日志记录:
本章完!
下一章:转换流程-输入组件