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能抽kafka吗 kettle有什么用_数据库

安装

下载并安装Kettle

1. 下载Kettle安装包

https://community.hitachivantara.com/s/article/data-integration-kettle

打开Kettle官网下载最新稳定版kettle压缩包,这里我们下载8.2版本。但是由于国内网络原因,可能下载不成功。建议选择下面的安装方式。

kettle能抽kafka吗 kettle有什么用_kettle_02


Kettle镜像FTP:

这个镜像是北京理工大学提供,只有Kettle6.1、7.0、7.1下载:http://mirror.bit.edu.cn/pentaho/Data%20Integration/

kettle能抽kafka吗 kettle有什么用_数据库_03


这里选择7.1版本。

kettle能抽kafka吗 kettle有什么用_数据库_04


绿色软件,解压可用。

下载完成后,解压缩到任意本地路径即可。这里解压到E:\Software\kettle

2.打开kettle

在window下启动kettle,需要jdk环境。提前安装jdk环境并配置环境变量。

双击spoon.bat文件,启动。

kettle能抽kafka吗 kettle有什么用_kettle能抽kafka吗_05


默认打开的为:file:///E:/Software/kettle/data-integration/docs/English/welcome/index.html

kettle能抽kafka吗 kettle有什么用_kettle能抽kafka吗_06

3、建立转换。

在文件->新建装换。

左上角点击”文件-新建-转换“保存为demo.ktr

新建转换后在左边的主对象树中建立DB连接用以连接数据库。

kettle能抽kafka吗 kettle有什么用_命令行_07


建立数据库连接的过程与其他数据库管理软件连接数据库类似。

测试连接时报错:

kettle能抽kafka吗 kettle有什么用_命令行_08


拷贝jar包:mysql-connector-java-5.1.44-bin.jar 到E:\Software\kettle\data-integration\lib目录下。

关闭spoon,重新启动,以让其重新加载配置。

测试连接,可以正常连接。

kettle能抽kafka吗 kettle有什么用_命令行_09

Kettle操作

简单的数据表插入\更新

1.新建表插入

在左边的面板中选择“核心对象”,在核心对象里面选择“输入->表输入”,用鼠标拖动到右边面板。

选择 核心对象-> 输入-> 表输入,拖动到右侧工作区。

kettle能抽kafka吗 kettle有什么用_kettle_10


双击拖过来的表,可以编辑表输入。

kettle能抽kafka吗 kettle有什么用_数据库_11


选择数据库中的一张表,可以预览数据。

2. 选择输出-> 插入/更新

kettle能抽kafka吗 kettle有什么用_kettle_12


编辑插入更新:

  首先:表输入连接插入更新。

    选中表输入,按住shift键,拖向插入更新。

kettle能抽kafka吗 kettle有什么用_数据_13


然后:双击插入更新,编辑它。

kettle能抽kafka吗 kettle有什么用_命令行_14


到这里基本上,这个转换就要做完了,可以点击运行查看效果,看是否有误,这个要先保存了才能运行。

点击运行。

kettle能抽kafka吗 kettle有什么用_命令行_15

3、使用作业控制上面转换执行。

使用作业可以定时或周期性的执行转换,新建一个作业。并从左边面板拖入start 和转换。

kettle能抽kafka吗 kettle有什么用_kettle_16