数据迁移工具kettle安装和优化

0    217    2

Tags:

👉 本文共约6442个字,系统预计阅读时间或需25分钟。

kettle简介

Kettle最早是一个开源的ETL工具,全称为KDE Extraction, Transportation, Transformation and Loading Environment。

在2006年,Pentaho公司收购了Kettle项目,原Kettle项目发起人Matt Casters加入了Pentaho团队,成为Pentaho套件数据集成架构师 ;从此,Kettle成为企业级数据集成及商业智能套件Pentaho的主要组成部分,Kettle亦重命名为Pentaho Data Integration ,简称“PDI”。Pentaho公司于2015年被Hitachi Data Systems收购。 自2017年9月20日起,Pentaho已经被合并于日立集团下的新公司: Hitachi Vantara。

Pentaho Data Integration以Java开发,支持跨平台运行,其特性包括:支持100%无编码、拖拽方式开发ETL数据管道;可对接包括传统数据库、文件、大数据平台、接口、流数据等数据源;支持ETL数据管道加入机器学习算法。
Pentaho Data Integration分为商业版与开源版,开源版的截止2021年1月的累计下载量达836万,其中19%来自中国 。在中国,一般人仍习惯把Pentaho Data Integration的开源版称为Kettle。

Kettle是一款国外开源的ETL工具,纯java编写,可以在Windows、Linux、Unix上运行,数据抽取高效稳定。Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。

Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。

kettle 的官网是 https://community.hitachivantara.com/docs/DOC-1009855

https://community.hitachivantara.com/home

github 地址是 https://github.com/pentaho/pentaho-kettle

下载地址:https://sourceforge.net/projects/pentaho/files/Data%20Integration/

数据迁移工具kettle安装和优化

参考:https://blog.51cto.com/51power/5216715

KETTLE常用功能

KETTLE常用在处理关系型数据库(RDBMS):mysql、oracle、gbase、国产达梦等各种数据库,也可以处理非关系型数据库:elasticsearch、hdfs等数据存储。主要是对数据进行处理操作,个人常用的功能如下:

(1)全量数据迁移:

就是将某个或多个表或库中的数据进行迁移,可以跨库,也可以同库迁移。速度比较快,性能稳定。

(2)增量数据迁移:

就是对某个表中的数据按照一定的设计思路,根据int的自增主键或datetime的时间戳实现增量数据迁移,并且可以统计增量数据量。速度比较快,性能稳定。

(3)解析xml文件(单个、批量):

可以通过读取本地或远程服务器中的单个、批量xml文件进行解析,高效率的实现xml数据解析入库。

(4)解析JSON数据:

可以零代码通过jsonPath快速完成JSON数据解析,高效率实现JSON解析数据入库。

(5)数据关联比对:

可以将多个数据库根据一定的业务字段进行关联,尤其是针对单表百万、千万级别上的数据比对,普通sql实现困难,可以通过KETTLE方便高效的完成数据关联比对功能。

(6)数据清洗转换:

可以通过KETTLE中设计一定的判断流程,在数据流中逐条对数据进行业务判断和过滤,实现数据清洗转换的功能。

架构

Kettle是一个组件化的集成系统,包括如下几个主要部分:
1.Spoon:图形化界面工具(GUI方式),Spoon允许你通过图形界面来设计Job和Transformation,可以保存为文件或者保存在数据库中。
也可以直接在Spoon图形化界面中运行Job和Transformation,
2.Pan:Transformation执行器(命令行方式),Pan用于在终端执行Transformation,没有图形界面。
3.Kitchen:Job执行器(命令行方式),Kitchen用于在终端执行Job,没有图形界面。
4.Carte:嵌入式Web服务,用于远程执行Job或Transformation,Kettle通过Carte建立集群。
5.Encr:Kettle用于字符串加密的命令行工具,如:对在Job或Transformation中定义的数据库连接参数进行加密。

数据迁移工具kettle安装和优化

基本概念

1.Transformation:定义对数据操作的容器,数据操作就是数据从输入到输出的一个过程,可以理解为比Job粒度更小一级的容器,我们将任务分解成Job,然后需要将Job分解成一个或多个Transformation,每个Transformation只完成一部分工作。
2.Step:是Transformation内部的最小单元,每一个Step完成一个特定的功能。
3.Job:负责将Transformation组织在一起进而完成某一工作,通常我们需要把一个大的任务分解成几个逻辑上隔离的Job,当这几个Job都完成了,也就说明这项任务完成了。
4.Job Entry:Job Entry是Job内部的执行单元,每一个Job Entry用于实现特定的功能,如:验证表是否存在,发送邮件等。可以通过Job来执行另一个Job或者Transformation,也就是说Transformation和Job都可以作为Job Entry。
5.Hop:用于在Transformation中连接Step,或者在Job中连接Job Entry,是一个数据流的图形化表示。
数据迁移工具kettle安装和优化

在Kettle中Job中的JobEntry是串行执行的,故Job中必须有一个Start的JobEntry;Transformation中的Step是并行执行的。

1、repository资源库
用来保存转换任务的,用户通过图形界面创建的的转换任务可以保存在资源库中。资源库可以使多用户共享转换任务,转换任务在资源库中是以文件夹形式分组管理的,用户可以自定义文件夹名称。

2、ktr转换
将一个或多个数据源组装成一条数据流水线,根据业务要求,利用Kettle内部的组件,进行数据处理,最后输出到某一个地方(文件或数据库)。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
数据迁移工具kettle安装和优化后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章!
验证码:
请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦。
  • 18509239930
  • 个人微信

  • DB宝
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部