ETL-kettle-全局变量/局部变量
Etl 介绍
ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),举列:对于
金融IT 来说,经常会遇到大数据量的处理,转换,迁移,所以了解并掌握一种
etl工具的使用,必不可少。
Kettle是一款国外开源的etl工具,纯java编写,绿色无需安装,数据抽取高
效稳定。Kettle中有两种脚本文件,transformation和job,transformation完成针
对数据的基础转换,job则完成整个工作流的控制。
1、transformation和job的区别
(1)、转换用来完成数据的转换。
(2)、Job完成整个工作流的控制。
注意: 在transformation中里的内容是并行运行的。
2、kettle运行中的全局变量/局部变量
参数优先级:先局部后全量。
变量的引用(局部变量和全局变量的引用方式是一样的):
我一般用的是${变量名}方法
如图:
注意:使用${变量名}的时候,如果值是字符串则加上'',即'${变量名}',如果是数值性则不用。
2.1、全局变量
kettle中的全局变量可以在kettle.properties文件中配置
kettle.properties文件是kettle启动后生成的文件
Windows一般在C:\Users\Administrator\.kettle文件夹下生成
Linux一般在/root/.kettle文件夹下生成
在window下举个列子:
kettle.properties夹下输入,如图:
启动kettle
Windows下启动:
双击data-integration夹下的spoon.bat
选择[编辑]->[编辑 kettle.properties文件]
可以查看到,如图
[也可以直接在这里进行编译]
2.2、局部变量
这个步骤允许你在一个任务中或者虚拟机中设置变量。他仅仅可以用一行数据来设置变量值。
下面是可以用的范围设定:
Valid in the virtual machine:整个虚拟机将知道这个变量,转换仅仅可以在单机模式下运行。
Valid in the parent job:变量仅仅在父任务中可用。
Valid in the grand-parent job:变量仅仅在祖父任务中合法。
Valid in the root job:变量仅仅在根任务中合法。
局部变量的用法:
局部变量的使用方式:
kettle中job的含义是完成整个工作流的控制,这里给它定义成主作业,transformation定义成子作业,可以理解成主作业控制子作业的执行顺序来完成一个数据抽取、转换、装载的过程。
局部变量通过一个子作业(transformation)来包装,这里要说明一下,局部变量声明后不能在当前transformation转换里引用,因此这里需要主作业(job)控制子作业的顺序,把需要引用局部变量的需求放在其他子作业(transformation)中来实现需求。
如图:
转换1(执行局部变量)内容如图:
更多推荐
所有评论(0)