01-PDI(Kettle)简介与安装

01-PDI(Kettle)简介与安装

最好的学习资料就是官网,附上官网文档地址:
PDI官方文档地址
https://help.hitachivantara.com/Documentation/Pentaho/9.2/Products/Pentaho_Data_Integration

PDI(Kettle)简介

Kettle是一个Java编写的ETL工具,主作者是Matt Casters,2003年就开始了这个项目,目前最新稳定版为9.2。

2005年12月,Kettle从2.1版本开始进入了开源领域,一直到4.1版本遵守LGPL协议,从4.2版本开始遵守Apache Licence 2.0协议。

开源协议区别可参考如下博客:
https://blog.csdn.net/qwertyuiop_123abc/article/details/82110221
也可参考如下图片(阮一峰创作):
开源协议差别
在这里插入图片描述为什么标题为PDI(Kettle)简介与安装呢,这是因为 Kettle在2006年初加入了开源的BI公司Pentaho, 正式命名为:Pentaho Data Integeration,简称“PDI”。 自2017年9月20日起,Pentaho已经被合并于日立集团下的新公司: Hitachi Vantara。

Kettle可以简化数据仓库的创建,更新和维护,使用Kettle可以构建一套开源的ETL解决方案。

Kettle的组成

Spoon.bat/sh: 勺子 :图形化界面,可以用图形化的方式开发transform和job
Pan.bat/sh:煎锅 ,利用Pan调用transform
kitchen.bat/sh:厨房,利用ktichen命令来调用job
Carte.bat/sh: 菜单,用来构建web集群服务

Kettle安装

  1. 下载地址:
    https://sourceforge.net/projects/pentaho/
    进入后点击file,然后选择对应的版本即可。
    在这里插入图片描述选择对应的版本后,可以选择不同的Kettle版本(客户端或服务端),一般可使用client-tools版本(可本地安装后直接运行)即可。
    本博客下载的版本为8.2版本,具体下载地址为:
    https://sourceforge.net/projects/pentaho/files/Pentaho%208.2/client-tools/
    选择下载量最多的pdi-ce-8.2.0.0-342.zip,单击即可下载。

下载完成,将压缩包解压,解压完成,只要电脑有jdk1.8环境,即可直接使用,本博客的安装目录:
E:\pdi-ce-8.2.0.0-342\data-integration\

  1. 目录结构
    在这里插入图片描述3. 启动测试:
    在E:\pdi-ce-8.2.0.0-342\data-integration\目录下双击Spoon.bat即可打开Kettle的可视化编程界面
    Kettle主界面为了便于下次使用,可以将Spoon.bat创建快捷方式,同时右键该快捷方式–更改图标–浏览–选择安装目录–选择spoon.ico点击确定
    修改快捷方式图标

Kettle核心知识点

  1. kettle的两种设计模型

transformation转换:完成针对数据的基础转换。转换负责数据的输入、转换、校验和输出等工作,kettle中使用转换完成数据ETL的全部工作,转换由多个步骤Step组成。各个步骤由跳hop链接。跳定义了一个数据流通道,即数据由一个步骤流(跳)向下一个步骤。在Kettle中数据的最小单位是数据行(row),数据流中流动的是缓存的行集(rowset)。

Job作业:完成整个工作流的控制

区别:

  • 作业是步骤流(一般为串行),转换是数据流(并行)
  • 作业的每一个步骤,必须等到前面的步骤都跑完了,后面的步骤才会执行;而转换会一次性把所有的控件全部启动(一个控件对应启动一个线程),然后数据流会从第一个控件开始,一条记录,一条记录的流向最后的控件。
  1. 步骤step

一个步骤有如下几个关键特性:

  1. 步骤需要名字,名字在同一个转换范围内唯一
  2. 每个步骤都会读写数据行,唯一例外是“生成记录”步骤
  3. 步骤将数据写到与之相连的一个或多个输出跳hop,再传到到跳的另一端的步骤
  4. 大多数的步骤都可以由多个输出跳,一个步骤的数据发送可以被设置为分发和复制。分发是目标步骤轮流接受数据,复制为同时接受数据。一个步骤连接两个步骤时,会提示选择分发还是复制。

分发复制

  1. 跳hop
  1. 跳是步骤之间带箭头的连线,跳定义了步骤之间的数据通道。
  2. 跳实际上是两个步骤之间的被称为行集的数据行缓存。行集的大小可以在转换的设置里定义。当行集满了,向行集写数据的步骤将停止写入,直到行集里又有了空间,当行集空了,从行集读取数据的步骤停止读取,直到行集了又有了可选的数据行。在转换的空白处双击,会弹出转换属性
  1. 元数据

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

  1. 名称:数据行里的字段名是唯一的
  2. 数据类型:字段的数据类型。
  3. 格式:数据显示的方式,如Integer的#,0.00
  4. 长度:
  5. 精度
  6. 货币符号
  7. 小数点符号
  8. 分组符号
  1. 并行

跳的这种基于行缓存的规则,允许每个步骤都由一个独立的线程运行,这样并发程度最高。这一规则也允许数据以最小消耗内存的数据流的方式来处理。在数据仓库里,我们经常需要处理大量数据,这种高并发低消耗的方式也是ETL工具的核心需求。

对于kettle的转换,不能定义一个执行顺序,因为所有的步骤都是并发方式执行;当转换启动后,所有步骤都同时启动,从它们的输入跳中读取数据,并发处理过的数据写出到输出跳,直到输出跳里不再有数据,就中止步骤的运行,当所有的步骤都中止了,整个转换就中止了。

如果一个任务要沿着指定的顺序执行,就需要使用到作业了。

  1. 作业

作业,负责定义一个完成整个工作流的控制,比如将转换的结果发送邮件给相关人员,因为转换以并行方式执行,所以必须存在一个串行的调度工具来执行转换,这就是Kettle中的作业。

  1. 注释

在spoon界面,空白处右键 选择new note可以添加注释用于辅助理解整个ETL过程。
注释

  1. Kettle配置

修改语言 tools – options – look feel – preferred language
修改字体 tools – options – look feel – Font on Workspace

  1. Kettle文件存储方式:

文件后缀:
转换文件后缀为ktr
工作文件后缀为kjb

存储方式:
以XML形式存储(本地文件)
以资源库的方式存储(数据库和文件)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT从业者张某某

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值