kettle介绍-参数变量

18 篇文章 0 订阅

ETL中为什么使用参数变量

  • 实现ETL的复用
  • D,Q,P环境不同,使用变量方便发布
  • 有的条件需要外部传入
  • 增量ETL
  • 灵活性强

kettle中参数变量种类

  • Environment Variables
  • Kettle Variables
  • Internal Variables
  • Transformation中的变量
  • Job中的变量

Environment Variables

通过Set Environment Variables设置
在这里插入图片描述
固定值无法动态使用

Kettle Variables

  • 主要设置在kettle.properties文件中设置,路径为:${KETTLE_HOME}\kettle.properties
  • 主要存放PDI的通用参数,我们在新建数据库时,不希望一直在相关组件输入用户名、密码等信息,也会运用于数据库连接,有时候也会运用与同一个系列JOB的过滤条件
  • 配置方式:直接在kettle.properties中添加通过客户端修改
    在这里插入图片描述
    在这里插入图片描述

Internal Variables

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
${Internal.Entry.Current.Directory}
这个参数表示当前的实体保存的位置,比如在Job中使用,则表示Job保存的位置,Transformation中表示Transformation的位置。

一般用在Transformation Executor 及Job Executor组件中指定需要执行的Job或者Transformation的位置,推荐使用这种方式。上线时不会因为是绝对路径造成ETL执行出错。
在这里插入图片描述

Transformation中的参数变量

KTR:SET_DELTA_POINT.ktr
在transformation属性配置中可以设置变量
在这里插入图片描述

Table input中的绑定变量以及execute for each row

需要注意从上一个step过来的数据,当没有勾选execute for each row时只能为一条,勾选后每一条这个step以及之后的都会运行一遍

  • 使用变量的顺序与从上一个step流入的字段顺序一样数据类型一样
  • SQL 中用问号代表参数
    -在这里插入图片描述

Table input中SQL使用变量

在这里插入图片描述
在这里插入图片描述
通过${VARIABLE} %%VARIABLE%%两种方式使用变量在SQL处,需要勾选Replace Variables in script

凡是带有方块图标的文本框中都可以通过${VARIABLE} %%VARIABLE%% 使用变量。

Transformation中的set variable

这个通常是单独设置一个transformation然后给与JOB中的其他transformation使用
变量的生效范围有4种,具体可以自己试试,基本上选root

  • vaild in the root job在根JOB中生效
  • Valid in the parent job在父节点生效
  • Valid in the Java Virtual Machine在整个JAVA虚拟机中生效(只有几个transform时基本上测试结果一样。没深入研究)
  • Valid in the grand-parent job在父节点的父节点生效
    在这里插入图片描述

Transformation中的get variable

  • 可以获取Set variable设置的变量但两个Step不能在同一个Transformation使用
  • Get variable 可以获取Job和Transformation在属性中设置的变量

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

KJB的参数变量

KJB:sj_sheet_job.kjb
在JOB属性配置中设置变量
在这里插入图片描述

JOB中的set variable

同transformation中的set variable差不多
增加一个功能能从其他文本中直接获取变量,不需要从上一个step中取到,在一些场景中比较方便
在这里插入图片描述

Transformation之间的值传递

Transformation Step中的数据可以传递给Transformation Executor,在Transformation Executor 调用的组件中可以直接当变量使用:通过${VARIABLE}或者%%VARIABLE%% 使用;通过Get variable组件使用等
在这里插入图片描述
kettle中变量生效优先级
在变量名字一样的情况下 set variable>kjb变量>全局变量
如内容有错欢迎大家指正!!!
读后有疑问请加QQ群,来聊一聊开源kettle+pentaho report designer那些事!作者个人qq:420773639
在这里插入图片描述

  • 25
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值