如何给一个 Kettle 转换设置变量和命令行参数

如何给一个 Kettle 转换设置变量和命令行参数,第1张

1. 变量的类型

Kettle 的早期版本中的变量只有系统环境变量

目前版本中(3.1) 变量包括系统环境变量, "Kettle变量" 和内部变量三种系统环境变量的影响范围很广,凡是在一个 JVM下运行的线程都受其影响.Kettle 变量限制了变量的作用范围, 变量范围包括三种分别是 grand-parent job, parent job, root job 内部变量: 是 kettle 内置的一些变量, 主要是kettle 运行时依赖的环境, 如转换文件名称, 转换路径,ip地址, kettle 版本号等等.2. 变量的设置

"系统环境变量" 有三种设置方式

1) 通过命令行 -D 参数

2) 属性文件 kettle.property 中设置, 该属性文件位于 ${user.home}.kettle 下

3) 通过设置环境变量步骤 (Set Variable) 设置."Kettle 变量" 只能通过设置环境变量 (Set Variable) 步骤设置,同时设置变量的作用范围.

"内部变量" 是预置的无须设置.3. 变量的使用

无论哪种类型的变量在使用上都是一样的, 有两种方式

1) 通过 %%var%% 或 ${var} 来引用, 这个引用可以用在 SQL 语句中, 也可以用在允许变量输入的输入框里.

2) 通过获取变量 (Get Variable) 步骤来使用命令行参数:

1. 设置: 命令行参数通过获取系统信息(Get System Info) 步骤设置, 在使用时可以像列名一样来使用,不必像变量一样要通过 ${var} 这样的格式引用. 用户最多可以设置10个命令行参数

2. 传递: 命令行下使用 pan /file:xxx.ktr arg1 arg2 来传递参数.图形界面下,每次运行时有要求输入参数的提示窗口.

最近用到了kettle中的变量,说一下我碰到的一些问题

1、变量(variable)

这个是整个流程图

获取之前的查询结果,输出到文本文档,文档内容如下:

现在要查询CODE='02',点击启动,填写值为02,如果不填值,会用默认值做查询

kettle下使用SQL语句时经常会限定时间进行取数,每次改动就比较麻烦,可通过引用变量参数的方式自动引用,方便使用.

一.新建转换,获取各种想要的变量参数:

1.<获取系统信息>:通过控件获取到所需要的时间参数

2.<增加常量>:通过控件可以设置想要获得天数的差值

二.测试

1.新建转换,然后在表输入阶段使用参数,切记需要勾上'替换SQL语句里的变量',且变量名需要设置为上面步骤4中显示的变量名


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9409616.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存