kettle怎么设置变量?kettle运用变量的方法

作者:admin 发布时间:2021-07-16 14:04:43 浏览:1227次

一.变量的类型

Kettle 的早期版本中的变量只有系统环境变量,新版本变量一般包括系统环境变量, “Kettle变量” 和内部变量三种系统环境变量的影响范围很广,凡是在一个 JVM下运行的线程都受其影响.

1.环境变量

通过 set variables组件设置变量,范围可以是:JVM变量、作业变量、父作业变量、根作业变量。使用时通过${var}或%%var%%变量方式引用变量

2.属性文件变量

在.kettle目录下的kettle.property文件中设置,可kettle中可以引用

3.命令行参数(相当于位置参数)

命令行参数是指用pan执行转换时传入的参数,在sql中用可以用?占位,也叫位置参数 注意: 不管哪种参数都可以在sql中用${var}或者%%var%%表示

二、变量的设置

1.设置环境变量

job: 编辑【设置变量】组件: 注意: 要注意一点:如果用转换封装变量,选择valid in the root job,则在job中无法使用这些变量。如果改成在JVM中生效则可以使用。 转换: 表输入: 案例可以参考博文《kettle环境变量的配置》

2.设置属性文件变量

该属性文件位于 ${user.home}.kettle 下 例如:C:\Users\Administrator.kettle\kettle.properties 以window为例 编辑C:\Users\用户名.kettle目录下的kettle.properties文件,写入: customerNumber=124 然后重启spoon(kettle) 转换: 表输入:

3.设置命令行参数变量

转换: 获取系统信息: 表输入:

三.SQL查询中使用kettle变量

案例: 表输入步骤支持替换查询中的变量或参数,假设有一系列结构完全相关的表,分别是: mammals, birds, insects(动物、鸟、昆虫),可以使用kettle变量作为表的名称。 假设我们有一个变量,名称为:ANIMALS_TABLE,赋值为birds,我们设置“Replace Vaiables”选项选中。如果我们写下面的查询: SELECT name,population FROM ${ANIMALS_TABLE} 在执行一定被成功的替换成: SELECT name,population FROM birds 如果设置变量的值为“mammals”或“insects”,则将动态查询不同的表。当占位符不能胜任是,使用变量技术可以帮助我们解决。示例的名称为variables.ktr,运行时不要忘了给parameter(命名参数)赋值进行测试。

四.变量和占位符一起使用

如果有必要,我们可以混合这两种技术;本示例中使用变量作为表名词,同时使用占位符作为前面步骤的输入值。示例文件variables_and_placeholders.ktr。 SELECT name, population FROM ${ANIMALS_TABLE}WHERE population > ?

扩展学习

(kettle环境变量的配置:永久+临时)

首先我们有两种方式去改变这个环境变量,一种是永久性,一种是临时性,

一、 永久性配置

永久性是在我们的C盘的,用户,用户名称下面的.kettle文件夹里面的kettle.properties
在这里插入图片描述
配置基本上就是kv形式的 ,所以就没那么麻烦。

前面就是我们的 k也就是需要代替的 IP地址

截图示意一下、

在这里插入图片描述
ok这个配置就完成,保存退出.
重启spoon!务必重启!
我们重启之后,再去建立与数据库的链接 ,那么这个问题 ,解决了,
在这里插入图片描述
在这里插入图片描述

二、临时性配置

下面是关于 一次性的配置,比较轻松简单,但是调用都是一样的
在这里插入图片描述
点开后有一个 配置,配置名称和值
在这里插入图片描述

配置后记得重启,基本上都是属于配置 k-v的,所以这个问题就很容易来说

具体调用环境变量,可以在上面我写的
${ }

%% %%

这两种基本都ok。

更多的kettle和etl学习笔记:https://blog.csdn.net/zzqhello2018/category_9231127.html

如需转载请保留本文出处: https://zhe94.com/909.html

上一篇:Mysql怎么判断sql语句有没有走索引,mysql优化性能要点分享
下一篇:uni-app开发微信小程序获取bindgetphonenumber无效?
vs code 的常用快捷键

vs code 的常用快捷键

Visual Studio Code是个一款非常优秀的代码编辑工具,支持多种编程语言的编写。工具很常用,要想用得溜还得记记快捷键,把技巧记下来,编写代码大大提高工作效率,事半功倍。
Mysql关联表查询怎么样才能只取最新一条记录

Mysql关联表查询怎么样才能只取最新一条记录

有时我们使用mysql的时候想要多个表查询数据,但是关联查询的时候有多条记录,我们只想要最新的一条记录怎么办呢?很多人第一时间想到的是使用group by 处理,这是没问题的,但是需要提取做些处理,要是直接查询出来的数据可能并不准确。