kettle工具介绍和基本使用

kettle工具介绍和基本使用

Kettle简介
Kettle是一个开源的ETL工具,所有基本数据抽取、转换、加载,它都可以

Kettle是基于Java开发的,是开源免费的
有点:开源免费,直接网上下载使用;跨平台,Windows、Linux都可以使用;使用起来简单快捷

缺点:相比其他收费产品,劣势也就很显然了,比如稳定性,Bug修复处理,而且基于Java,性能上会差些。当然都是相对来
说,一般数据量使用或者逻辑不复杂的话,使用起来是很适合的

kettle相关知识
1、Kettle工程存储方式有两种:一种以XML像是存储,一种以资源库方式存储

2、kettle常用三大家族:spoon、pan、kitchen
spoon:通过图形化界面方式设计、运行、调试Jon与Transformation
pan:通过脚本命令方式来运行Transformation
Kitchen:通过脚本命令方式运行Job,一般就是通过调用Kitchen脚本来完成定时任务

3、目前kettle有两种版本,一种社区版(免费),一种是企业版(收费)

Kettle使用
下载完成目录会看到.bat文件和.sh文件
.bat是windows下使用的
.sh是Linux下使用的
Spoon.bat启动kettle(需要Java环境)
pan.bat 命令行方式执行转换
kitchen.bat 命令行方式执行作业
carte.bat 启动web服务,用于Kettle的远程运行或集群运行
Encr.bat 密码加密

kettle中,主要有两种脚本文件,transformation(转换)和job(作业)

job则完成整个工作流的控制
负责[转换]祖师在一起进而完成某一块工作,通常我们需要把一个大的任务分成几个逻辑上隔离的作业,当这几个作业完成
了,也就说明这项任务完成了

1,Job Entry:一个Job Entry 是一个任务的一部分,它指向某些内容
2,Hop:一个Hop代表两个步骤之间的一个或者多个数据流。一个Hop总是代表着两个Job Entry之间的连接,并且能够被原始
的 Job Entry 设置,无条件指向下一个 Job Entry,知道指向成功或者失败
4,Note:一个 Note 是一个任务附加的文本注释信息

transformation完成对数据的基础转换
转换对数据操作的容器,数据曹组就是数据输入到输出的一个过程,可以理解为比作业力度更小一级的容器,我们将任务分解
成作业,然后需要价格作业分解成一个或多个转换,每个转换只完成一部分工作

1、Value:Value是行的一部分,并且是包含以下类型的数据:Strings、floating point Numbers、unlimited、precision
BigNumbers、Integers、Dates或者Boolean
2、Row:一行包含0个或者多个Values
3、Output Stream:一个 Output Stream 是离开一个步骤时的行的堆栈
4、Input Stream:一个 Input Stream 是进入一个步骤的行的堆栈
5、Step:转换额一个不争,可以是一个 Stream 或者是其他元素
6、Hop:一个 Hop 代表两个步骤之间的一个或者多个数据流。一个Hop总是代表一个步骤的输出流和一个步骤的输入流
7、Note:一个Note是一个转换附加的文件注释信息

组件树
1、Main Tree 菜单列出的是以 transformation 中基本的属性,可以通过各个节点来查看
2、DB连接:显示当前transformation中的数据库连接,每一个transformation的数据连接都需要单独配置
3、Step:一个Transformation中应用到的环节列表
4、Hops:一个Transformation中应用到的节点连接列表
5、Core Objects 菜单列出的是 transformation 中可以调用的环节列表,可以通过鼠标拖动的方式对环节进行添加
6、Input:输入环节
7、Output:输出环节
8、Lookup:查询环节
9、Transform:转化环节
10、Joins:连接环节
11、Scripting:脚本环节

Transformation 转换介绍
每一个环节可以通过鼠标通道来讲环节添加主窗口中。
并通过Shift+鼠标拖动,实现环节之间的连接

转换常用环节介绍

类别 环节名称 功能说明
文本输入流 从本地文件文件输入数据
Input 表输入 从数据库中输入数据
获取系统信息 读取系统信息输入数据

                文本文件输出                    将处理结果输出到文本文件
                表输出                          将处理结果输出到数据库表

Output 根据处理结果对数据库表机型插入数据,如果数据库中不存在
插入/更新 相关记录则插入,否则为更新。会根据查询条件字段进行判断
更新 根据处理结果对数据进行更新,若需要更新的数据在数据库表
中无记录,则会报错停止
删除 根据处理结果对数据库记录进行删除,若需要删除的数据在数
据库表中无记录,则会报错听停止

                数据查询                        根据设定查询条件,对目标进行查询,返回需要的结果字段
                流查询                          将目录表读取到内存中,通过查询条件对内存中数据集进行

Lookup 查询
调用DB存储过程 调用数据库存储过程

                字段选择                        选择需要的榴弹,过滤掉不要的字段,也可以做数据库字段对应

Transform 过滤记录 根据条件对记录进行分类
排序记录 将数据根据某个条件,进行排序
空操作 无操作

Scripting Modified Java Sript Value 扩展功能,编写 JavaScrip 脚本,对数据进行相应处理

Mapping 映射(子转换) 数据映射

                Set Variables                   设置环境变量

Job Get Variables 获取环境变量

Job任务介绍
Main Tree 菜单列出是一个Job中基本的属性,可以通过各个节点来查看
DB连接:显示当前Job中的数据库连接,每一个Job的数据库连接都需要单独配置
Job Entries:一个Job中引用的环节列表

常用环节介绍
类别 环节名称 功能说明
start 开始
dummy 结束
transformation 引用Transformation流程
job 引用Job流程
Shell 调用Shell脚本
Sql 执行Sql语句
Ftp 通过Ftp下载
Table exists 检查目标表是否存储,返回布尔值
Job entries File exists 检查文件是否存储,返回布尔值
JavaScript 执行JavaScript脚本
Create file 创建文件
Delete file 删除文件
wait for file 等待文件,文件出现或继续下一个环节
File Compare 文件比较,返回布尔值
Wait for 等待时间,设定一段时间,kettle流程处于等待状态
Zip file 压缩文件为 Zip 包

输入步骤简介
输入类步骤用来从外部获取数据,可以获取数据的数据源包括,文件文件(txt、csv、xml、json)数据库、Excel文件等
桌面文件,自定义的数据等。对特殊数据源和应用需求可以自定义输入插件。例子:生成随机数步骤

转换步骤简介
流程步骤是用来控制数据流的步骤。一般不对数据进行操作,只是控制数据库,列入:过滤步骤

连接步骤简介
连接步骤用来将不同数据集连接到一起。例如:笛卡尔乘积

输出步骤简介
输出步骤是输出数据的步骤,常见输出包括文件文件输出、表输出等,可以根据应用的需求开发插件以其他形式输出
例如:表输出

Kettle里元数据的存储方式
1、资源库 资源库包括文件资源库、数据库资源库 Kettle4.0以后资源库类型可以插件扩展
2、XML 文件 .ktr转换文件的XML的根节点必须是 transformation .kjb 作业 XML 的根节点是 job

数据库资源库:
1、把 Kettle 的元数据串行化到数据库中、如 R_TRANSFORMATION 表中保存 Kettle 转换的名称,描述等属性
2、在 Spoon 里创建和升级数据库的资源库

文件资源库
在文件的基础上的封装,实现了 org.pentaho.di.repository.Repository 接口。是kettle4.0以后版本里增加的资源
库类型
不使用资源库:直接保存为 ktr或kjb文件

Kettle 资源库-如何选择资源库
数据库资源库的缺点:
1、不能存储转换或作业的讴歌版本。
2、验证依赖数据库的所机制来放置工作丢失
3、没有考虑到团队开发,开发人员不能锁住某个作业自己开发

文件资源库的缺点
1、对象(如转换、作业、数据库连接对象)之间的管理关系乃衣处理,所以删除、重命名等操作会比较麻烦
2、没有版本历史
3、难以进行团队开发
不使用资源库:使用svn进行文件版本控制

命令行执行 Kettle 文件
参数格式说明 有两种格式 /参数名:值 或 ~参数名=值 建议使用第一种参数格式
1、执行test.ktr文件,日志保存在log。txt中,默认日志基本实 Basic
Pan /file:D:AppProjects
xkh est.ktr /logfile:D:log.txt

2、执行 test.ktr 文件日志保存在 D:log.txt中,日志级别是 Rowlevel
Pan /file:D:AppProjects
xkh est.ktr /logfile:d:log/txt/level:Rowlevel

3、导出一个 job 文件,以该 job 恩建依赖的转换及其他资源
kitchen /file:c:job1.kjb /exprot:c:/a.zip

4、直接执行一个导出文件 zip 文件
kitchen.bat /file:“zip:file:///c:/a/zip!job1.kjb”

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值