ETL工具 - Kettle 介绍及基本使用

一、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 中的内容:

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

已经写入处理后的数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/16699.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

华为网工实验(VRRP多网关负载分担,OSPF基础操作)

采用VRRP多网关负载分担实现流量的负载均衡 配置思路:首先配置各个接口ip,让设备间能够实现通信,采用OSPF协议实现通信,然后AR2 AR3创建两个备份组,主备不同的两个备份组 组网图 #先设备命名并配置IP,三台设备类似&a…

山东专升本计算机第九章-信息安全

信息安全 计算机病毒 考点 4病毒的定义与特点 定义 • 一组人为设计的程序满足一定条件即被激活 特点 • 可执行性 • 破坏性 • 占用系统资源 • 破坏或删除程序或数据文件 • 传染性 • 潜伏性 • 隐蔽性 • 针对性 • 宏病毒只感染docx • 衍生性 • 抗反病毒软…

【Java笔试强训 10】

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 一、选择题 二、编程题 🔥井字棋 …

Linux信号:SIGCHLD信号和僵尸进程

1. SIGCHLD信号产生条件: (1)子进程终止; (2)子进程收到SIGSTOP信号被暂停; (3)子进程处于暂停状态,收到SIGCONT信号被唤醒。 2. 捕捉SIGCHLD,避免…

网络计算模式复习(二)

网格 由于B/S架构管理软件只安装在服务器端上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器&…

17自由度人形机器人实现行走功能

1. 功能说明 本文示例将实现R307样机17自由度人形机器人行走的功能。该项目利用探索者平台制作,其驱动系统采用伺服电机。 2. 仿人形机器人结构设计 人型机器人是一种旨在模仿人类外观和行为的机器人(robot),尤其特指具有和人类相…

MySQL备份和恢复

文章目录 一、库的备份和恢复1.库的备份2.库的恢复 二、表的备份和恢复1.表的备份2.表的恢复 备份数据,其实就是生成一个 sql 文件,把创建数据库、创建表、插入数据等各种 SQL 语句都装载到这个文件中。恢复数据,其实就是按顺序执行 sql 文件…

抖音营销策略:新手如何利用抖音提高品牌曝光度

随着短规频平台的兴起,抖音作为其中的校佼者,已经成为了众多用户和企业的营销利器。但是,对于抖音新手而言,如何在这个平台上快速提升影响力呢?下面不若与众就为大家分享几个实用的方法。 一、关注抖音热门话题和潮流 抖音平台上…

算法记录lday4 LinkedList链表交换 删除倒数N个点 环形链表

今日任务 ● 24. 两两交换链表中的节点 ● 19.删除链表的倒数第N个节点 ● 面试题 02.07. 链表相交 ● 142.环形链表II 两两交换链表中的节点 题目描述 Given a linked list, swap every two adjacent nodes and return its head. You must solve the problem without modi…

错题汇总03

1.以下对二维数组a进行正确初始化的语句是 A int a[2][]{{0,1,2},{3,4,5}} B int a[][3]{{0,1,2},{3,4,5}} C int a[2][4]{{0,1,2},{3,4},{5}}; D int a[][3]{{0,,2},{},{3,4,5}} A数组列不能省略 C数组越界 D数组初始化每一行必须连续初始化 2.能把函数处理结果的二个数据…

存储资源调优技术——SmartDedupe智能数据重删、SmartCompression智能数据压缩技术

目录 SmartDedupe智能数据重删技术 SmartCompression智能数据压缩技术 SmartDedupe智能数据重删技术 基本概念 智能数据重删技术 是一种数据缩减技术,通过删除存储系统中的冗余数据块 减少数据占用的物理存储容量,节省存储空间(会降低性能&a…

【Java笔试强训 13】

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 一、选择题 二、编程题 🔥参数解析…

【YOLO系列】YOLOv7论文超详细解读(翻译 +学习笔记)

前言 终于读到传说中的YOLOv7了~≖‿≖✧ 这篇是在美团的v6出来不到一个月就高调登场,作者还是我们熟悉的AB大神(对,就是v4那个),读起来又是“熟悉”的感觉(贯穿了我的整个五一假期(╯&#x…

Qt第一天:创建Qt项目

方式一:使用向导创建 打开Qt Creator 界面选择 New Project或者选择菜单栏 【文件】-【新建文件或项目】菜单项 弹出New Project对话框,选择Qt Widgets Application 选择【Choose】按钮,弹出如下对话框 设置项目名称和路径,按照…

软件测试:测试一个网站

一、软件测试的原则 1、软件测试应尽早执行,并贯穿于整个软件生命周期 2、软件测试应追溯需求 3、测试应由第三方来构造 4、穷举测试是不可能的,要遵循 Good-enough 原则 5、必须确定预期输出(或结果) 6、必须彻底检查每个测试结果 7、…

CH32V307V-EVT-R1 简单上手入门

文章目录 〇、前言一、开发板展示以及介绍二、开发环境配置与搭建2.1 IDE 介绍2.2 IDE 环境搭建2.3 IDE 配置2.3.1 语言切换(汉化?不存在的) 三、初次烧录与体验四、简单总结与心得🔗 链接直达 〇、前言 运气不错,前几…

Baklib推荐:关于建设企业知识管理的有效方法

随着信息化和互联网技术的不断发展,企业面临着海量的信息和知识,如何有效地管理和利用这些信息和知识已经成为了企业发展的关键问题之一。企业知识管理是指企业利用信息技术手段,对企业内部的知识进行系统化、集成化、共享化管理,…

4D毫米波雷达聚类检测和追踪

代码:https://github.com/Xiao-Hu-Z/RaderDetectionAndTracking 代码正在写,实时更新! 流程 4D雷达毫米波聚类跟踪流程如下图: 预处理主要包括标定、坐标转换和动静分离。 标定使用水平仪、角反,采集数据分析&…

fastai2 实现SSD

https://github.com/search?qfastaissd 有几个值得参考的代码,好好学习。 GitHub - Samjoel3101/SSD-Object-Detection: I am working on a SSD Object Detector using fastai and pytorch fastai2实现的SSD,终于找到了code。https://github.com/sidrav…

【NLP实战】基于Bert和双向LSTM的情感分类【上篇】

文章目录 前言简介数据获取与提取数据清洗读取数据,查看数据清洗训练集观察数据分布去除空数据去除重复数据关于去除停用词关于特殊符号储存清洗后的数据集 清洗测试集观察数据分布去除空数据去除重复数据(并储存) 清洗验证集观察数据分布去除空行去除重复数据(并储…