kettle学习笔记08—设置变量

一.变量的类型

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 > ?
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清平乐的技术博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值