KETTLE设置变量

一、kettle变量类型

kettle变量分为:

1.环境变量

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

2.属性文件变量

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

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

命令行参数是指用pan执行转换时传入的参数,在sql中用可以用?占位,也叫位置参数

注意:

不管哪种参数都可以在sql中用${var}或者%%var%%表示

二、设置变量

1.设置环境变量

job:

编辑设置变量组件:

转换:

表输入:

2.设置属性文件变量

编辑C:\Users\用户名\.kettle目录下的kettle.properties文件,写入:

customerNumber=124

然后重启spoon(kettle)

转换:

表输入:

3.设置命令行参数变量

转换:

获取系统信息:

表输入:

三、变量作用范围

要注意一点:如果用转换封装变量,选择valid in the root job,则在job中无法使用这些变量。如果改成在JVM中生效则可以使用。

来自为知笔记(Wiz)

时间: 2024-07-30 03:04:01

KETTLE设置变量的相关文章

kettle 设置变量

以下只是本人在使用过程中一些经验,可能有误解不对的地方,希望大家指正. 这个控件可以在job中调用,也可以在transformation中使用.下面将分别说明在两个不同任务中调用时的使用方法和需要注意事项. 一.在job任务中使用 在job中设置变量一般都是设置全局变量,在不同转换间使用.首先需要Get System Info用来检索变量,因为我们一般会用来设置时间.路径等一些变量 系统进行检索 第一列选择变量名称,然后选择type找到你需要的类型.如果想把你的输入信息设置为变量,type应该选

Kettle_设置变量的两种方法

一个复杂的kettle作业一般包括很多子作业和转换,在主作业Start后通常会添加一个[设置变量]的流程,该流程的功能是为所有流程的公共变量设置通用值.       主作业添加的[设置变量]针对的是所有流程,如果需要运行某个在作业,就需要将其引用的变量值改为常量才能运行,想当年麻烦,本文介绍两种方法规避该问题 方法一:在子作业中添加设置变量流程 下图中table changlog exists?流程使用变量${cl},但是设置${cl}变量的值在主作业执行,所以执行本作业时会报错  解决方法:在

《软件调试的艺术》笔记--检查和设置变量

1.使用print命令查看变量值 使用print命令(简写为p)可以查看变量值. 使用如下的程序1进行测试. #include <stdio.h> struct node{ int index; struct node* next; }; int main(void) { struct node head; head.index = 1; head.next = NULL; int i; for(i=0; i<3; i++){ head.index++; } return 0; } (g

Set集合设置变量自增长

* 在jsp页面中,有时候需要设置变量进行自增长,像java中的i++, 1)设置变量,<s:set name="abc" value="0"></s:set> 2)在其他的迭代器中(如<s:iterator )就可以计数了,<s:set name="abc" value="#abc+1"></s:set> 3)如果想用迭代后的这个变量abc,例如:<s:if tes

检查和设置变量

转自 http://blog.csdn.net/todd911/article/details/32316985 1.使用print命令查看变量值 使用print命令(简写为p)可以查看变量值. 使用如下的程序1进行测试. [cpp] view plaincopy #include <stdio.h> struct node{ int index; struct node* next; }; int main(void) { struct node head; head.index = 1;

c#设置对象属性——反射实体设置变量

前台如果只传递了一两个数据,在后台请求获取数据设置属性值还能够接受,但是如果传递了大量的数据,就得多次HttpRequest reques[“XXX”]请求获取数据设置属性值,输入的代码量就很大,而且相当耗费时间,这种费时费力的方法是难以接受的.下面为大家提供一个取巧的方法,获取请求数据就变的很简单了,而且可以节省时间.话不多说,直接上代码: C#代码如下: /// <summary> /// 设置对象属性——反射实体设置变量 /// </summary> /// <para

bat文件中批处理设置变量延迟的问题

在bat文件中想实现对变量的赋值和输出,发现设置的变量在后续使用中为空,代码如下: @echo off for %%i in (*) do ( set var=%%i echo %var% ) 理论上,输出结果应为当前命令所在目录里的所有文件名,可实际的输出结果 却为问题分析:这涉及到批处理命令中的变量延迟扩展问题,详细请参考:https://blog.csdn.net/subkiller/article/details/7344509解决方法: @echo off for %%i in (*)

kettle作业(job)调用转换,设置变量,写日志到数据库中【转】

首先建立转换:从数据库表到日志 表输入的设置: 日志设置: 新建job: 转换选择刚才建好的输出日志转换.变量设置如下: 此ID就是转换中的${ID},执行job,可以看到控制台输出日志结果: 黑色字体部分中只写出了id=1的一条记录. 最后补充,将转换的日志写到数据库中:打开转换>ctrl+t>日志选项卡>转换>点击下面的SQL,执行SQL建表.执行完job会在数据库中写入日志记录.

kettle入门(六) 之kettle抽取变量表名表

背景: ods平台的一个很简单的数据抽取需求: 上游系统有一个月表,每个月出上个月数据并放在新建的月表里.例如:20150401出3月份表和数据 TB_B_FT_BROADBAND_201503, 20150501出4月份表和数据 TB_B_FT_BROADBAND_201504.而ods需要每月初等他们数据出来后再抽取过来. 需求很简单,用kettle最常见的表输入和输出抽取即可,但是表输入的select 语句里面的表名需要使用变量. 解决: 使用job kjb如下 完成此需求,如下图,步骤如