kettle是一个ETL(Extract,Transform and Load抽取、转换、载入)工具,ETL工具在数据仓库项目使用非常频繁,kettle也可以应用在以下一些场景:
在不同应用或数据库之间整合数据
把数据库中的数据导出到文本文件
大批量数据装载入数据库
数据清洗
集成应用相关项目是个使用
kettle使用非常简单,通过图形界面设计实现做什么业务,无需写代码去实现,因此,kettle是以面向元数据来设计;
kettle支持很多种输入和输出格式,包括文本文件,数据表,以及商业和免费的数据库引擎。另外,kettle强大的转换功能让您非常方便操纵数据。
Kettle的四大块:
Carte——Carte是一个轻量级的Web容器,用于建立专用、远程的ETL Server。
Kitchen——工作(job)执行器 (命令行方式),一个独立的命令行程序,用于执行由Spoon编辑的作业。
Spoon——转换(transform)设计工具 (GUI方式),通过图形接口,用于编辑作业和转换的桌面应用。
Span——转换(trasform)执行器 (命令行方式),一个独立的命令行程序,用于执行由Spoon编辑的转换和作业。
kettle中有两种脚本文件,transformation和job。
transformation完成针对数据的基础转换,job则完成整个工作流的控制。
转换
转换的两个相关的主要组成部分是step(步骤)和hops(节点连接)。
转换文件的扩展名是.ktr。
转换(transaformation)是ETL解决方案中最主要的部分,它处理抽取、转换、加载各种对数据行的操作。
转换包含一个或多个步骤(step),如读取文件、过滤数据行、数据清洗或将数据加载到数据库。
转换里的步骤通过跳(hop)来连接,跳定义一个单向通道,允许数据从一个步骤向另一个步骤流动。
在Kettle里,数据的单位是行,数据流就是数据行从一个步骤到另一个步骤的移动。
数据流有的时候也被称之为记录流。
Jobs(工作)
Jobs(工作)是基于工作流模型的,协调数据源、执行过程和相关依赖性的ETL活动。
Jobs(工作)将功能性和实体过程聚合在了一起。
一个工作中展示的任务有从FTP获取文件、核查一个必须存在的数据库表是否存在、执行一个转换、发送邮件通知一个转换中的错误等。最终工作的结果可能是数据仓库的更新等。
工作由工作节点连接、工作实体和工作设置组成。
工作文件的扩展名是.kjb。
PDI
kettle现在更名为PDI
安装
下载并安装Kettle
1. 下载Kettle安装包
https://community.hitachivantara.com/s/article/data-integration-kettle
打开Kettle官网下载最新稳定版kettle压缩包,这里我们下载8.2版本。但是由于国内网络原因,可能下载不成功。建议选择下面的安装方式。
Kettle镜像FTP:
这个镜像是北京理工大学提供,只有Kettle6.1、7.0、7.1下载:http://mirror.bit.edu.cn/pentaho/Data%20Integration/
这里选择7.1版本。
绿色软件,解压可用。
下载完成后,解压缩到任意本地路径即可。这里解压到E:\Software\kettle
2.打开kettle
在window下启动kettle,需要jdk环境。提前安装jdk环境并配置环境变量。
双击spoon.bat文件,启动。
默认打开的为:file:///E:/Software/kettle/data-integration/docs/English/welcome/index.html
3、建立转换。
在文件->新建装换。
左上角点击”文件-新建-转换“保存为demo.ktr
新建转换后在左边的主对象树中建立DB连接用以连接数据库。
建立数据库连接的过程与其他数据库管理软件连接数据库类似。
测试连接时报错:
拷贝jar包:mysql-connector-java-5.1.44-bin.jar 到E:\Software\kettle\data-integration\lib目录下。
关闭spoon,重新启动,以让其重新加载配置。
测试连接,可以正常连接。
Kettle操作
简单的数据表插入\更新
1.新建表插入
在左边的面板中选择“核心对象”,在核心对象里面选择“输入->表输入”,用鼠标拖动到右边面板。
选择 核心对象-> 输入-> 表输入,拖动到右侧工作区。
双击拖过来的表,可以编辑表输入。
选择数据库中的一张表,可以预览数据。
2. 选择输出-> 插入/更新
编辑插入更新:
首先:表输入连接插入更新。
选中表输入,按住shift键,拖向插入更新。
然后:双击插入更新,编辑它。
到这里基本上,这个转换就要做完了,可以点击运行查看效果,看是否有误,这个要先保存了才能运行。
点击运行。
3、使用作业控制上面转换执行。
使用作业可以定时或周期性的执行转换,新建一个作业。并从左边面板拖入start 和转换。