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

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

一.变量的类型

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

上一篇:懂懂日记:一点委屈
下一篇:uni-app开发微信小程序获取bindgetphonenumber无效?
python3使用schedule做定时器异步调用

python3使用schedule做定时器异步调用

现有需求是每隔10秒执行一次程序,不考虑执行程序的时间周期,固定时间间隔就执行一次 首先需要安装python
纯css实现角标效果-css属性clip-path

纯css实现角标效果-css属性clip-path

最近在做一个项目想要实现以下的角标效果,可以使用css属性clip-path来实现。
uniapp实现父组件调用子组件函数的方法

uniapp实现父组件调用子组件函数的方法

先定义子组件的getCLipContent函数,然后在父组件引用子组件,通过ref的方法调用
 mysql实现主从复制代码

mysql实现主从复制代码

mysql实现主从复制相关代码记录
宝塔面板登录ssl关闭不了怎么办?

宝塔面板登录ssl关闭不了怎么办?

云服务器安装宝塔面板时,不小心开启了SSL,应该如何关闭?
Chat2DB的WEB端在安装部署在服务器上

Chat2DB的WEB端在安装部署在服务器上

Chat2DB 是一款有开源免费的多数据库客户端工具,支持windows、mac本地安装,也支持服务器端部署,web网页访问。和传统的数据库客户端软件Navicat、DBeaver 相比Chat2DB集成了AIGC的能力,能够将自然语言转换为SQL,也可以将SQL转换为自然语言,可以给出研发人员SQL的优化建议,极大的提升人员的效率,是AI时代数据库研发人员的利器,未来即使不懂SQL的运营业务也可以使用快速查询业务数据、生成报表能力