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(执行局部变量)内容如图:

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐