Kettle(一)入门篇

这里写目录标题

学习视频:https://www.bilibili.com/video/BV1jE411B7J8

一、初识Kettle

1.1 Kettle简介

企业数据仓库模型
在这里插入图片描述

1.1.1 ETL简介

ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或者行业应用来说,我们经常会遇到各种数据的处理,转换、迁移,所以链接并掌握一种etl工具的使用,必不可少,这里我要学习的ETL工具是Kettle!

1.1.2 Kettle简介

Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。
Kettle中文名称叫 水壶 ,该项目的主程序员MATT希望把各种数据放到一个壶里,然后以一张指定的格式流出
Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做
Kettle 中有两种脚本文件,transfornationjob,transformation完成针对数据的基础转换,job则完成整个工作流的控制。

Kettle(现在已经更名为PDI,Pentabo Data Integration-Pentaho数据集成)

1.1.3 Kettle的结构

在这里插入图片描述

1.1.4 Kettle的组成部分

Spoon是构建ETL JobsTransformations的工具.Spoon以拖拽的方式图形化设计,能够通过spoon调用专用的数据继承引擎或者集群

Data Integration Server 是一个专用的ETL Server,它的主要功能有:

名称描述
Spoon通过图形接口,用于编辑作业和转换的桌面应用
Pan一个独立的命令行程序,用于执行有Spoon编辑的转换和作业
Kitchen一个独立的命令行程序,用于执行由Spoon编辑的作业
CarteCarte是一个轻量级的Web容器,用于建立专用、远程的ETL Server
1.1.5 Kettle模型概念

在这里插入图片描述

Kettle的执行分为两个层次: Job(作业)和Transformation(转换)

1.1.6 总结

1、ETL是数据抽取、转换、加载
2、Spoon是Kettle图形界面接口
3、Kettle包含job和transformation两种脚本

1.2 Kettle下载
1.2.1 Kettle 下载

下载网址:https://community.hitachivantara.com/s/login/?ec=302&inst=2S&startURL=%2Fdocs%2FDOC-1009855

在这里插入图片描述

1.2.2 Kettle 目录文件

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

1.2.3 Kettle 下载总结

1、手动下载kettle
2、了解Kettle包结构

1.3 Kettle 部署
1.3.1 安装JDK

由于Kettle 是Java语言开发的,该软件允许需要Java运行环境的依赖.
需要先安装JDK,准备好Java软件的运行环境
在这里插入图片描述

1.3.2 配置环境变量

JAVA_HOME : JDK 的安装目录
KETTLE_HOME : kettle的解压目录

在这里插入图片描述

在这里插入图片描述

1.3.3 运行

在这里插入图片描述

1.3.4 总结

1、安装JDK
2、配置环境变量
3、启动spoon

1.4 Kettle界面简介
1.4.1 工具栏

在这里插入图片描述

1.4.2 工具图标

在这里插入图片描述

1.4.3 树状列表

在这里插入图片描述

1.4.4 工作区

在这里插入图片描述

1.4.5 Kettle界面简介

1、熟悉kettle的UI界面

1.5 Kettle 快速体验
1.5.1 把数据从CSV文件复制到Excel文件

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

在这里插入图片描述

1.6 执行结果
1.6.1 日志

在这里插入图片描述

1.6.2 步骤度量

在这里插入图片描述

1.6.3 Metrics

在这里插入图片描述

1.6.4 Preview data

在这里插入图片描述

1.7 Kettle 核心概念
1.7.1 可视化编程

Kettle 可以被归类为可视化编程语言(Visula Programming Languages,VPL),因此Kettle 可以使用图形化的方式定义复杂的ETL程序和工作流

Kettle 里的图就是转换和作业。

可视化编程一直是Kettle 里的核心概念,它可以让你快速构建复杂的ETL作业减低维护工作量。它通过隐藏很多技术细节,是IT领域更贴近商务领域。

1.7.2 转换

在这里插入图片描述

1.7.3 步骤

在这里插入图片描述

1.7.4 跳

在这里插入图片描述

1.7.5 数据行

在这里插入图片描述

在这里插入图片描述

1.7.6 并行

跳的这种基于行集缓存的规则允许每个步骤都是由一个独立的线程运行,这样并发程度最高。这一规则也允许数据以最小消耗内存的数据流的方式来处理。在数据仓库里,我们经常要处理大量数据,所以这种并发低消耗内存的方式也是ETL工具的核心需求。

对于kettle 的转换,不可能定义一个执行顺序,因为所有步骤都以并发方式执行:当转换启动后,所有步骤都同时启动,从它们的输入跳中读取数据,并把处理过的数据写的输入跳,直到输入跳里不再有数据,就中止步骤的运行。当所有的步骤都中止了,整个转换就中止了。(要与数据流向区分开)

如果你想要一个任务沿着指定的顺序执行,那么就要使用后面所讲的"作业"!

二、 kettle 输入控件

2.0 输入控件介绍

在这里插入图片描述

在这里插入图片描述

2.1 CSV 文件输入

CSV文件是一种带有固定格式文本文件
在这里插入图片描述
功能介绍
在这里插入图片描述
在这里插入图片描述
任务:1、把CSV文件的数据复制到excel文件

2.2 文本文件输入

提取日志信息的数据是开发常见的操作,日志信息基本都是文本类型

在这里插入图片描述
tomcat访问日志

在这里插入图片描述

在这里插入图片描述

任务: 把文本文件的数据复制到excel文件

2.3 Excel 输入

微软的Excel目前有两种后缀名的文件分别为:xls和xlsx。
xls:2007年之前
xlsx:2007年之后

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

任务:把Excel文件的数据复制到Excel文件

2.4 多文件合并

数据往往也是以多个文件的形式出现,有的数据还会分散在多个子文件夹
所以合并数据也是开发中非常常见的操作。

在这里插入图片描述

任务:读取input目录下以04多文件合并开头的所有Excel数据合并到一个Excel

2.5 Get data from XML
  1. 准备一个XML:XML 指可扩展标记语言(EXtensible Markup Language), XML 被设计用来传输和存储数据
    在这里插入图片描述
  2. 使用XPath 进行解析
    XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。

XPath基于XML的树状结构,提供在数据结构树找寻节点的能力。

在这里插入图片描述

在这里插入图片描述
3. 说明
在这里插入图片描述

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

任务:

在这里插入图片描述

2.6 JSON input

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

在这里插入图片描述

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

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

任务:从json文件提取id、field和value数据到excel
在这里插入图片描述

在这里插入图片描述

2.7 生成记录

静态数据

数据仓库中绝大多数的数据都是业务系统生成的动态数据,但是其中一部分维度数据不是动态的,比如:日期维度

静态维度数据就可以提前生成

在这里插入图片描述

任务:往excel文件中插入1000条记录:id为1,name为itheima,age为18

在这里插入图片描述

2.8 表输入
  1. 下载对应数据库的jar包,放置在lib目录下
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  2. 表输入
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

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

任务:从MySql数据库的mysql库的user表获取所有数据插入到Excel文件

在这里插入图片描述

三、kettle 输出控件

3.0 输出控件的介绍

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

3.1 Excel输出

在这里插入图片描述

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

任务:从mysql数据库的mysql库的user表读取数据插入到excel的.xls和.xlsx的文件中
在这里插入图片描述

3.2 文本文件输出

在这里插入图片描述

任务:从mysql数据库的mysql库的user表读取数据插入到.txt和.csv的文件中
在这里插入图片描述

3.3 SQL文件输出

SQL文件输出可以导出数据库结构数据

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

任务:获取mysql库的user表的结构和数据的SQL文件
在这里插入图片描述

3.4 表输出

表输出就是把数据写入到指定的表

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

任务:从excel中读取id,name,age字段的数据,并写入到mysql数据库的04table-output表中

在这里插入图片描述

3.5 更新

更新就是把数据库已经存在的记录与数据流里面的记录进行比对,如果不同就进行更新

注意:如果记录不存在,则会出现错误

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

任务:从Excel读取数据,并把数据更新到test数据库的04table-output中

在这里插入图片描述

3.6 插入更新

插入更新就是把数据库已经存在的记录与数据流里面的记录进行比对,如果不同就进行更新

如果记录不存在,则会插入数据

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

任务:从excel中读取id,name,age字段的数据,并插入更新到mysql数据库的04table-output表中

在这里插入图片描述

3.7 删除

自定义常量数据就是生成key-value形式的常量数据。

在这里插入图片描述

在这里插入图片描述

删除就是删除数据库表中指定条件的数据。
在这里插入图片描述
在这里插入图片描述

任务:从mysql数据库04table-output表中删除指定id为1的数据

四、转换

4.0 转换的介绍

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

4.1 Concat fields

Concat fields就是多个字段连接起来形成一个新的字段

在这里插入图片描述

·任务:·从Excel中获取FirstName和LastName并把FirstName和LastName连接起来,输出到Excel

在这里插入图片描述

4.2 值映射

值映射就是把字段的一个值映射成其他的值。

数据质量规范上使用非常多,比如很多系统对应性别gender字段的定义不同。
系统1:1 男、2女
系统2:f 男、m 女
数据仓库统一为:female 男、male女
在这里插入图片描述
任务:从Excel中读取数据,并把gender里面的f和m转换为female和male,写入到Excel文件

在这里插入图片描述

4.3 增加常量

增加常量就是在本身的数据流里面添加一列数据,该列的数据都是相同的值

在这里插入图片描述

任务:从Excel读取数据,增加一个新列language值为en,把数据保存在Excel中

在这里插入图片描述

4.4 增加序列

增加序列是给数据流添加一个序列字段。

在这里插入图片描述

在这里插入图片描述

任务:从Excel读取数据,并添加序列,把数据保存到Excel
在这里插入图片描述

4.5 字段选择

字段选择是从数据流中选择字段改变名称修改数据类型
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

任务:从Excel读取数据,移除language和country,并把phone列名该为telphone,id列名改为key,把gender列名该为sex

在这里插入图片描述

4.6 计算器

计算器是一个函数集合创建新的字段,还可以设置字段是否移除(临时字段)。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
任务:从Excel中读取数据,生成name,quarter,week_of_day,account列,把数据存在到Excel中间中

在这里插入图片描述

4.7 字符串-剪切-操作-替换
4.7.1 剪切字符串

剪切字符串是指定输入流字段裁剪的位置剪切出新的字段
在这里插入图片描述

4.7.2 字符串替换

字符串替换是指定搜索内容替换内容,如果输入流的字段匹配上搜索内容就进行替换生成新字段

在这里插入图片描述

4.7.3 字符串操作

字符串操作是去除字符串两端的空格大小写切换,并生成新的字段。
在这里插入图片描述

任务:从Excel中读取数据,获取title的首位字符,生成title_begin字段,把description中的1111替换为itheima生成desc字段,去除author两边的空格,字符变大写,生成author_update,保存到Excel

在这里插入图片描述

4.8 去除重复记录 + 排序记录
4.8.1 去除重复记录

去除重复记录是去除数据流里面相同的数据行。

注意:必须先对数据流进行排序!
在这里插入图片描述

4.8.2 排序记录

排序记录是按照指定的字段的升序降序对数据流排序。
在这里插入图片描述
在这里插入图片描述

任务:从Excel中读取数据,去除重复的数据,并保存到Excel

在这里插入图片描述

4.9 唯一行(哈希值)

唯一行(哈希值)就是删除数据流重复的行
注意:唯一行(哈希值)和(排序记录+去除重复记录)效果一样的,但是实现的原理不同!
唯一行(哈希值)执行的效率会高一些!
在这里插入图片描述

从Excel中读取数据,去除重复的数据,并保存到Excel

在这里插入图片描述

4.10 拆分字段

拆分字段是把字段按照分隔符拆分成两个或多个字段。

注意:拆分字段后,原字段就不存在于数据流中

在这里插入图片描述

任务:从Excel读取数据,把name拆分为FirstName和LastName,并保存数据到Excel
在这里插入图片描述

4.11 列拆分为多行

列拆分为多行就是把指定分隔符的字段进行拆分为多行

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

任务:从csv读取数据,把hobby列拆分为多行,并保存在Excel

在这里插入图片描述

4.12 列转行

列转行就是如果数据一列有相同的值,按照指定的字段,把多行数据转换为一行数据
去除一些原来的列名,把一列数据变为字段
注意:列转行之前数据流必须进行排序!

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

任务:从Excel中读取数据,按照姓名进行分组,把星期、工作小时从列转为行,并保存在Excel中
在这里插入图片描述

4.13 行转列

行转列就是把数据字段的字段名转换为一列,把数据行变为数据列

在这里插入图片描述

在这里插入图片描述

任务:从Excel读取数据,把星期工作小时行转为星期列和工作小时列,把数据保存到Excel

在这里插入图片描述

4.14 行扁平化

行扁平化就是把同一组的多行数据合并成为一行

注意:
只有数据流的同类数据数据行记录一致的情况才可使用!
数据流必须进行排序,否则结果会不正确!
在这里插入图片描述
在这里插入图片描述

任务:从Excel读取数据,把数据进行行扁平化处理,存储在Excel

在这里插入图片描述

五、应用控件

5.0 应用控件介绍

在这里插入图片描述

在这里插入图片描述

5.1 替换NULL值

替换NULL值就是把null 转换为其他的值
NULL 值 不好进行数据分析
在这里插入图片描述
在这里插入图片描述

任务: 从Excel中读取数据,age列的空值值使用28来替换,并保存在Excel

在这里插入图片描述

5.2 写日志

写日志主要是在调试的时候使用,把日志信息打印到日志窗口。

在这里插入图片描述

在这里插入图片描述

任务:从Excel读取数据,向日志输出窗口打印出所有的数据信息

在这里插入图片描述

5.3 发送邮件

发送邮件就是执行成功、失败、其它某种情景给相关人员发送邮件。

注意:
只有企业邮箱才可以!个人邮箱不行!
并且需要在邮件设置中开通客户端授权码

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

任务:发送一封邮件
在这里插入图片描述

六、流程控件

6.0 流程

在这里插入图片描述

在这里插入图片描述

6.1 Switch-case

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

任务:从Excel输入读取数据,按sex进行数据分类,把女性、男性、保密分别保存不同的Excel文件里面。 1表示男性 0表示女性 2表示保密

在这里插入图片描述

6.2 过滤记录

过滤记录让数据流从一路到两路。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

任务:从Excel读取数据,分离出code列为空的数据,分别保存到不同的Excel文件

在这里插入图片描述

6.3 空操作

空操作一般作为数据流的终点。

(在kettle的sample中经常使用,但是实际开发中很少使用)

在这里插入图片描述

任务: 从Excel读取数据,分离code为空的数据,空数据不执行任何操作,不为空的数据保存到Excel
在这里插入图片描述

6.4 中止

中止是数据流的终点,如果有数据到这里,将会报错。

用来校验数据的时候使用。

在这里插入图片描述

任务:从Excel中读取数据,过滤去code列不为空的数据,不为空的数据保存在Excel,如果出现为空的数据就停止转换
在这里插入图片描述

七、查询控件

7.0 查询控件

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

7.1 HTTP client

HTTP client是使用GET的方式提交请求,获取返回的页面内容。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
任务:从网络上获取xml,解析出ProductID、ProductName、SupplierID、CategoryID,保存到Excel中 地址:http://services.odata.org/V3/Northwind/Northwind.svc/Products/

在这里插入图片描述

7.2 数据库查询

数据库查询就是数据库里面的左连接

左连接就是两张表执行左关联查询,把左边的表数据全部查询出来。
在这里插入图片描述
任务:从employees表中读取数据,根据dep_id从departments表获取dep_name,保存到Excel中
在这里插入图片描述

7.3 数据库连接

数据库连接可以执行两个数据库的查询,和单参数的表输入

在这里插入图片描述

任务:从departments表中读取数据,连接到另外一个数据库的employees,把数据保存到Excel
在这里插入图片描述

7.4 流查询

流查询在查询前把数据都加载到内存中,并且只能进行等值查询

在这里插入图片描述
任务:从Excel读取employess和departments的数据,根据dep_id来查询dep_name,把数据保存到Excel

在这里插入图片描述

八、连接控件

8.0

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

8.1 合并记录

合并记录是用于将两个不同来源的数据合并,这两个来源的数据分别为旧数据和新数据,该步骤将旧数据和新数据按照指定的关键字匹配比较合并

需要设置的参数:
旧数据来源:旧数据来源的步骤
新数据来源:新数据来源的步骤

标志字段:设置标志字段的名称,标志字段用于保存比较的结果,比较结果有下列几种。

  1. “identical” – 旧数据和新数据一样
  2. “changed” – 数据发生了变化;
  3. “new” – 新数据中有而旧数据中没有的记录
  4. “deleted” –旧数据中有而新数据中没有的记录
    关键字段:用于定位两个数据源中的同一条记录。
    比较字段:对于两个数据源中的同一条记录中,指定需要比较的字段。
    合并后的数据将包括旧数据来源和新数据来源里的所有数据,对于变化的数据,使用新数据代替旧数据,同时在结果里用一个标示字段,来指定新旧数据的比较结果。
    注意:
    旧数据和新数据需要事先按照关键字段排序
    旧数据和新数据要有相同的字段名称

在这里插入图片描述

任务:从Excel读取新数据和旧数据,合并数据,标记处new、delete、changed、identical,把数据保存到Excel
在这里插入图片描述

8.2 记录关联(笛卡尔积)

在这里插入图片描述

在这里插入图片描述

任务:从Excel读取两位和三位数,完成两位数和三位数的组合(笛卡尔积),把结果保存在Excel
在这里插入图片描述

8.3 记录集连接

记录集连接就像数据库的左连接、右连接、内连接、外连接。
注意:在进行记录集连接之前,应该要对记录集进行排序

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

任务:从Excel中读取employees和departments数据,进行内关键,左关联,右关联,全关联,把数据保存到Excel

在这里插入图片描述

九、统计控件

9.0 统计控件

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

9.1 分组

分组是按照某一个某几个进行分组,同时可以将其余字段按照某种规则进行合并

注意
分组之前数据应该进行排序

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

任务:从Excel读取数据,按照group进行分组统计,把结果保存到Excel
在这里插入图片描述

十、映射

10.0

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

10.1 映射(子转换)
  1. 映射(子转换)

映射(子转换)是用来配置子转换,对子转换进行调用的一个步骤。

在这里插入图片描述

  1. 映射输入规范
    映射输入规范是输入字段,由调用的转换输入
    在这里插入图片描述

  2. 映射输出规范

映射输出规范是向调用的转换输出所有列,不做任何处理。
在这里插入图片描述

任务:从t_orders表中获取数据,根据u_id查询t_users表,获取用户信息,并把数据保存到Excel

在这里插入图片描述

十一、脚本控件

11.0 脚本控件

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

11.1 JavaScript 脚本

javascript脚本就是使用javascript语言通过代码编程来完成对数据流的操作。
JS中有很多内置函数,可以在编写JS代码时查看。

存在两种不同的模式:不兼容模式和兼容模式
不兼容模式:是默认的,也是推荐的
兼容模式:兼容老版本的kettle

  1. javascript脚本-获取字段
不兼容模式:
myVar = FieldName;

兼容模式:根据字段类型的不同,使用不同的方法:
myVar = FieldName.getString();
myVar = FieldName.getNumber();
  1. javascript脚本-给字段赋值
不兼容模式:直接使用字段名,如
FieldName = myVar;

兼容模式:使用 
FieldName.setValue(myVar);

  1. javascript脚本-给字段赋值
不兼容模式:
var myVar = new java.lang.String(“pentahochina.com”);

兼容模式:
var myVar = new Packages.java.lang.String (“pentahochina.com”);

在这里插入图片描述

任务:生成日期维度数据有日期,年,月,日,从2000年01月01日开始有1000条记录,保存到Excel
在这里插入图片描述

11.2 java脚本

java脚本就是使用java语言通过代码编程来完成对数据流的操作。

内置了很多函数可以直接使用。

Main函数对应一个processRow()函数,processRow()函数是用来处理数据流的场所

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

任务:从Excel中读取数据,生成newcode字段,如果code列为NULL就使用name列来替换,否则就在code列的后面加上123,结果保存在Excel

在这里插入图片描述

11.3 执行SQL脚本

执行SQL脚本可以执行一个update语句,用来更新某个表中的数据

在这里插入图片描述

任务:从t_users表中获取所有的数据,把age的值都更改为33
在这里插入图片描述

十二、作业和参数

12.1 作业
12.1.1 简介

大多数ETL项目都需要完成各种各样的维护工作。

例如,如何传送文件;验证数据库表是否存在,等等。而这些操作都是按照一定顺序完成。因为转换以并行方式执行,就需要一个可以串行执行的作业来处理这些操作。

一个作业包含一个或者多个作业项,这些作业项以某种顺序来执行。作业执行顺序由作业项之间的跳(job hop)和每个作业项的执行结果来决定。

在这里插入图片描述

12.1.2. 作业项

作业项是作业的基本构成部分。如同转换的步骤,作业项也可以使用图标的方式图形化展示。

但是,如果你再仔细观察,还是会发现作业项有一些地方不同于步骤:
在作业项之间可以传递一个结果对象(result object)。这个结果对象里面包含了数据行,它们不是以数据流的方式来传递的。而是等待一个作业项执行完了,再传递个下一个作业项

因为作业顺序执行作业项,所以必须定义一个起点。有一个叫“开始”的作业项就定义了这个点。一个作业只能定一个开始作业项。

12.1.3. 作业跳

作业的跳是作业项之间的连接线,他定义了作业的执行路径。作业里每个作业项的不同运行结果决定了做作业的不同执行路径。

①无条件执行:不论上一个作业项执行成功还是失败,下一个作业项都会执行。这是一种蓝色的连接线,上面有一个锁的图标。

②当运行结果为真时执行:当上一个作业项的执行结果为真时,执行下一个作业项。通常在需要无错误执行的情况下使用。这是一种绿色的连接线,上面有一个对钩号的图标。

③当运行结果为假时执行:当上一个作业项的执行结果为假或者没有成功执行是,执行下一个作业项。这是一种红色的连接线,上面有一个红色的停止图标。

在图标上单击就可以对跳进行设置 

在这里插入图片描述

任务:先从Excel读取数据,保存到Excel,再从文本文件中读取数据保存到Excel,如果产生错误就发送邮件,并且停止作业,如果成功发送成功邮件
在这里插入图片描述

12.2 参数
12.2.1 简介

对于ETL参数传递是一个很重要的环节,因为参数的传递会涉及到业务数据是如何抽取。
参数分为两种:全局参数和局部参数。

12.2.2 全局参数

全局参数定义是通过当前用户下.kettle文件夹中的kettle.properties文件来定义。

定义方式是采用键=值对方式来定,如:start_date=20130101

注:在配置全局变量时需要重启Kettle才会生效。

12.2.3 局部参数

局部参数变量是通过“Set Variables”与“Get Variables”方式来设置。

·注·:在“Set Variables”时在当前转换当中是不能马上使用,需要在作业中的下一步骤中使用。

12.2.4 参数的使用

Kettle中参数使用方法有两种:一种是%%变量名%%,一种是${变量名}

注:在SQL中使用变量时需要把“是否替换变量”勾选上,否则无法使变量生效。

任务: 从kettle.properties文件中读取STARTROW和PAGESIZE参数,从t_orders表中获取数据数据,使用参数传递
在这里插入图片描述

在这里插入图片描述

12.3 表输入参数传递-常量传递

常量传递就是先自定义常量数据,在表输入的SQL语句里面使用?来替换。

?号的替换顺序就是常量定义的顺序。

任务:自定义常量数据id1=10和id2=3,从t_users表中获取数据,满足条件id<id1和id>id2,后续不要只想任何操作

在这里插入图片描述

12.4 表输入参数传递-变量传递-转换命名参数

转换命名参数就是在转换内部定义的变量,作用范围是在转换内部

在转换的空白处右键,选择转换设置就可以看见。

在这里插入图片描述

任务:设置转换命名参数id1=10和id2=3,从t_users表中获取数据,满足条件id<id1和id>id2,后续不要只想任何操作

在这里插入图片描述

12.5 表输入参数传递-变量传递-转换内设置变量和获取变量

在转换里面有一个作业分类,里面有设置变量获取变量的步骤。

注意:“获取变量”时在当前转换当中是不能马上使用,需要在作业中的下一步骤中使用!

在这里插入图片描述

12.5.1 设置变量

在这里插入图片描述

在这里插入图片描述

12.5.2 获取变量

在这里插入图片描述

任务:在一个转换里面设置变量id1和id2,在另外一个转换里面获取变量id1和id2, 从t_users表中获取数据,满足条件id<id1和id>id2,把数据输出到Excel。

在这里插入图片描述

12.6 表输入参数传递-变量传递-作业里设置变量

变量可以在转换里面设置,也可以在作业里面设置。

在这里插入图片描述

在这里插入图片描述

在作业里面设置变量id1和id2,在转换以两种不同的方式进行变量替换: ①先获取变量,再进行步骤替换 ②直接变量替换 都是从t_users表中获取数据,满足条件id<id1和id>id2,把数据输出到Excel

在这里插入图片描述

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值