一、Kettle 介绍

在介绍 Kettle 前先了解下什么是 ETLETLExtract-Transform-Load 的缩写,即数据 抽取、转换、装载 的过程,对于企业或行业应用来说,经常会遇到各种异构数据的处理、转换、迁移等操作,这些操作有可能会面对大量的数据和繁琐的步骤,因此就萌生了一些 ETL 处理工具,市面上常见的ETL工具有很多,比如Sqoop、DataX、Kettle、Talend等,本篇文章就主要来介绍下 Kettle 工具。

Kettle水壶)是一款国外开源的ETL工具,现在已经更名为PDIPentaho Data Integration-Pentaho 的缩写,由纯 java 编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。它可以处理各种异构数据库中的数据,并且提供了可视化图形界面的方式进行操作,让你思路主要关注在如果处理数据上,而不是如何实现处理的过程,特点如下图介绍:

Kettle的官网地址如下:

https://community.hitachivantara.com/home

如上图介绍 ,Kettle 分了两种脚本文件,transformation (转换)和 job(作业) ,transformation 主要完成对数据的处理和转换,job 则完成整个工作流的控制,一个 job 可以包含多个 transformation ,如下图所示:

另外在 Kettle 中又包含了 4 个核心组件,分别如下:

  • 勺子(Spoon.bat / Spoon.sh) : 图像化界面,可以通过图形化界面交互方式开发transformationjob
  • 煎锅(Pan.bat / pan.sh): 可以用命令行的形式执行由 Spoon 编辑的transformationjob
  • 厨房(Kitchen.bat / kitchen.sh) : 可以使用命令行调用由 Spoon 编辑好的 job
  • 菜单(Carte.bat / carte.sh) : 一个轻量级的 Web 容器,用户建立远程ETL Server

二、Kettle 安装

安装前,需要电脑上已经安装配置好 jdk 环境,版本建议1.8及以上。

下载kettle压缩包:

https://sourceforge.net/projects/pentaho/files/Pentaho%209.1/

Kettle 为绿色软件,下载后可以解压到任意本地路径,但注意尽量不要带有中文路径,不然会出现意想不到的效果。

其中 Kettle 的目录说明如下:


三、Kettle 使用基本介绍

双击解压目录下的 Spoon.bat 即可启动图形化界面工具,启动过程有点慢耐心等待下,如果启动失败,可以修改下 JVM 的最堆内存的大小, Spoon.bat 文件下:

等待片刻后会进到如下页面:

在 工具栏/文件/新建 下可以选择创建一个转换作业

3.1 转换

转换(transaformation) 主要负责数据的输入、转换、校验和输出等工作。转换由多个Step(步骤) 组成,如文本文件输入,过滤输出行,执行 SQL 等。各个步骤之间使用 Hop (跳) 来链接。

Step 是转换里的基本的组成部分,比如上面的 CSV文件输入Excel输出,一个Step 有如下几个关键特性:

  • Step需要有一个名字,这个名字在同一个转换范围内唯一。
  • Step将数据写到与之相连的一个或多个输出 Hop,再传送到指向的另一端的Step
  • 大多数的Step都可以有多个输出,当出现多个输出时可以选择复制或分发,复制是所有的记录被同时发送到所有的目标步骤,分发是目标步骤轮流接收记录:

HopStep 之间带箭头的连线,定义了数据的通路。Hop 实际上是两个Step 之间被称之为行集的数据行缓存,行集的大小可以在转换的设置里定义。当行集满时,向行集写数据的 Step 将停止写入,直到行集里又有了空间。当行集空了,从行集读取数据的 Step 停止读取,直到行集里又有可读的数据行。

其中转换属性可以双击空白处:

3.2 数据元数据

每个步骤在输出数据行时都有对字段的描述,也就是数据行的元数据。元数据通常包含下面一些信息。

  • 名称:数据行里的字段名是唯一的
  • 数据类型:字段的数据类型
  • 格式:数据显示的方式,如Integer#、0.00
  • 长度:字符串的长度或者BigNumber类型的长度
  • 精度BigNumber数据类型的十进制精度
  • 货币符号
  • 小数点符号:十进制数据的小数点格式。不同文化背景下小数点符号是不同的,一般是点(.)或逗号(,
  • 分组符号:数值类型数据的分组符号,不同文化背景下数字里的分组符号也是不同的,一般是点(.)或逗号(,)或单引号(

3.3 数据的类型

Kettle 中的数据区分了数据的类型,类型包含如下几种:

  • String:字符类型数据
  • Number:双精度浮点数。
  • Integer:带符号长整型(64位)。
  • BigNumber:任意精度数据。
  • Date:带毫秒精度的日期时间值。
  • Boolean:取值为truefalse的布尔值。
  • Binary:二进制字段可以包含图像、声音、视频及其他类型的二进制数据。

3.2 作业

作业 (Job),负责定义一个完成整个工作流的控制,比如将转换的结果发送邮件给相关人员。因为转换(transformation)以并行方式执行,如果需要一个串行的调度工具来执行转换,就可以使用作业:

四、Kettle 数据处理案例

例如有如下 CSV 数据,其中字段分别表示:用户ID、用户名、性别、成绩1、成绩2、成绩3

id,name,sex,grade1,grade2,grade3
1,小明,男,90,80,70
2,小红,女,91,81,71
3,小兰,女,92,82,72
4,小爱,女,93,83,73
5,张三,男,94,84,74
6,李四,男,95,85,75
7,王五,男,96,86,76
8,赵六,男,97,87,77
9,小六,男,98,88,78
10,小七,男,99,89,79

现有需求:要求计算出每个人的总成绩和平均分,将结果输出到 Excel 中。

新建一个转换:

拖入一个 CSV文件输入:

双击 CSV文件输入,选择 CSV 文件、编码等:

可以点击预览查看数据:

下面拖入一个 计算器 ,计算成绩总和:

按住 Shift 连接上 CSV文件输入和 计算器:

双击计算器,修改名称,并指定计算方式:

此时可以运行下看下计算结果:


可以看到已经计算出了总成绩,下面计算平均分数的话还需要一个常量 3

双击进入修改名称和指定常量值:

下面再拖一个计算器,计算平均分数,参数如下:

到这可以运行下看下结果:

可以看到已经计算出平均成绩了,下面就可以输出到 Excel 中了,拖入一个 Excel输出:

双击进入修改属性:

再进入到字段下指定输出的字段,其中 num 字段仅仅是为了计算用的,这里删除掉:

最后运行转换,到输出目录下查看 Excel 中的内容:


已经写入处理后的数据。

ETL工具 - Kettle 介绍及基本使用相关推荐

  1. 开源ETL工具kettle系列

    开源ETL工具kettle系列之常见问题 摘要:本文主要介绍使用kettle设计一些ETL任务时一些常见问题,这些问题大部分都不在官方FAQ上,你可以在kettle的论坛上找到一些问题的答案 1. J ...

  2. 开源ETL工具kettle系列之常见问题

    摘要:本文主要介绍使用kettle设计一些ETL任务时一些常见问题,这些问题大部分都不在官方FAQ上,你可以在kettle的论坛上找到一些问题的答案 1. Join 我得到A 数据流(不管是基于文件或 ...

  3. 四十二、ETL工具Kettle的转换步骤

    1. ETL工具Kettle的转换步骤 1.1 Kettle转换步骤的具体内容: 字符串处理 字符串的拆分 字符串的替换 行列变换 其他转换步骤 闭合距离 XSL转换 数值范围 2 字符串的处理 2. ...

  4. 四十一、ETL工具kettle输出步骤

    1. ETL工具Kettle的输出步骤 Kettle输入步骤主要分为以下几类: 数据库输出 表输出 更新.删除.插入和更新 文件输出 文本文件输出 XML输出 Excel文件输出 其他 报表和应用 2 ...

  5. ETL工具KETTLE常用设计之——作业设计思路模板

    目录 01:检查数据库连接: 02:设置环境变量: 03:设计各自数据流程转换: 04:邮件通知: ETL工具KETTLE用来设计数据流程,无论什么逻辑的数据流程,一般都有一个通用的设计模板流程,在这 ...

  6. 三十九、ETL工具Kettle基础使用

    1. Kettle工具介绍 Kettle是一款国外开源的ETL工具,纯Java编写,开业在Windows.Linux.Unix上运行,可以高效稳定的完成数据抽取. Kettle中文名叫水壶,该项目的主 ...

  7. ETL工具Kettle简介和安装配置基本使用

    什么是Kettle Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行,绿色无需安装,数据抽取高效稳定. Kettle 中文名称叫水壶,该项目的主程 ...

  8. ETL工具Kettle的下载和使用

    Kettle 是什么 Kettle最早是一个开源.免费的ETL工具.在2006年,Pentaho公司收购了Kettle项目,从此,Kettle成为企业级数据集成及商业智能套件Pentaho的主要组成部 ...

  9. ETL工具Kettle使用

    1.下载kettle:https://sourceforge.net/projects/pentaho/files/Data%20Integration/7.0/pdi-ce-7.0.0.0-25.z ...

最新文章

  1. 【Kaggle Learn】Python 5-8
  2. 数据结构与算法课程的代码链接
  3. 沈向阳:微软每一个技术研发都会进行AI伦理道德评审
  4. ORACLE TEXT FILTER PREFERENCE(二)
  5. 通过服务器给多台计算机装系统,怎么快速给机房多台电脑安装系统?
  6. Python元组练习
  7. 智慧交通day03-车道线检测实现07:车道曲率和中心点偏离距离计算+代码实现
  8. idea mac 替换_史上最全的IntelliJ IDEA For Mac快捷键!快来收藏吧!
  9. 2-1 如何抓不同的接口(手机抓包,web网页抓包)
  10. wubi安裝ubuntukylin 14.04过程以及基本配置
  11. 190106每日一句
  12. 人行地区代码一览表_全国行政区划与银行地区代码对应关系一览表模板
  13. 从PCC到MIC(2)
  14. 什么是“理解”?如何在人工智能中定义“理解”?(what is understanding ?)
  15. Macbooster8免费mac清理垃圾软件功能介绍
  16. 视觉欺骗:你绝不会相信A和B颜色相同!
  17. 【Photoshop技巧】两步将黑色图片改变颜色
  18. Redis客户端访问
  19. c++--stack,queue,priority_queue
  20. 简练网软考知识点整理-项目整体绩效测量基准

热门文章

  1. ios 腐蚀rust手游_使用 Rust 开发 iOS 应用(粗糙版)
  2. 4月9日绝地求生服务器维护,绝地求生2021年6月9日更新公告 绝地求生6月9日维护内容汇总...
  3. 元宵节给网站挂个灯笼
  4. CentOS 救援模式
  5. 你和数据大神的距离,只差一把屠龙宝刀
  6. 耳机的危害有多严重?什么耳机能减轻耳机的危害?
  7. 【ZYNQ】efuse寄存器造成CPU无法启动
  8. CentOS 30分钟部署 .net core 在线客服系统
  9. MyBatis的缓存机制详解
  10. Javascript获取URL地址的参数