当前位置: 首页 / 作者专栏 / 正文

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

发布时间:2021-07-16 14:04:43 作者:小超越君 197 次浏览

一.变量的类型

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”选项选中。如果我们写下面的查询:

1
SELECT name,population FROM ${ANIMALS_TABLE}

在执行一定被成功的替换成:

1
SELECT name,population FROM birds

如果设置变量的值为“mammals”或“insects”,则将动态查询不同的表。当占位符不能胜任是,使用变量技术可以帮助我们解决。示例的名称为variables.ktr,运行时不要忘了给parameter(命名参数)赋值进行测试。

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

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

1
SELECT name, population FROM ${ANIMALS_TABLE}WHERE population > ?

扩展学习

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

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

一、 永久性配置

永久性是在我们的C盘的,用户,用户名称下面的.kettle文件夹里面的

1
kettle.properties

在这里插入图片描述
配置基本上就是kv形式的 ,所以就没那么麻烦。

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

截图示意一下、

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

二、临时性配置

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

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

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

%% %%

这两种基本都ok。

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

转载请保留本文链接:https://www.zhe94.com/909.html

小超越
热爱折腾,曾想着改变世界,如今只能向生活低头,寻找可口的牛奶和面包
添加站长微信作者头像
专注高品质湛江网站建设及湛江SEO优化服务 立即咨询