暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

ETL 工具 Kettle Spoon 介绍

生有可恋 2022-02-11
10340

和数据库打交道避免不了数据的导入导出,ETL 工具就是专门干这个的,ETL工具可以方便地在不同数据库之间搬运数据。


今天介绍的是一款开源ETL工具:pentaho-kettle


Github 仓库地址:

https://github.com/pentaho/pentaho-kettle.git


从项目首页我们也可以看到,这个工具的全称叫Pentaho Data Integration ( ETL ) a.k.a Kettle


缩写 a.k.a abbr 亦称;又名(also known as)


所以我们称它为 PDI 或 Kettle 都行,我们先把名字搞清楚

  • Kettel 水壶

  • Spoon 勺子

  • Kitchen 厨房


整个项目或工具的名字叫 PDI 或 Kettel (水壶),其中它的命令行工具叫 Kitchen (厨房),图形化设计工具叫 Spoon (勺子)。


看几个例子:


1. 命令行工具 kitchen


sh /opt/pdi8.1.0.0-365/data-integration/kitchen.sh \
-file /root/pdi6/jobs/coreindicators.kjb \
-param n=0

2. 图形化工具 spoon


启动脚本分为 Spoon.bat 和 Spoon.sh,支持在不同平台下运行



程序运行后,打开设计界面如下



Spoon 脚本又分两种

  • job 文件后缀为 *.kjb   ,在Spoon中被翻译为 “ 作业 ”

  • transformation 文件后缀为 *.ktr  ,在Spoon中被翻译为 “ 转换 ”


Job 用来组织任务,设定不同任务间执行的条件,是线性的还是并发的,类似于 Jenkins 的 pipeline。在 Job 的编辑界面,可使用的节点主要与流程处理相关:



相对的,transformation 的编辑界面,可用的节点主要与数据处理相关:



如果只是数据库之间导数据,基本上就只需要用 "插入/更新" 节点就够用了,这个节点可以需要主键做数据对照,如果主键不存在就做插入,如果主键存在就对比数据,当数据变化就做更新操作。这个动作如果是自己写 SQL 就很难实现,相反用 ETL 就很容易。



Spoon 支持传参,结合命令可以很好地控制数据抽取的天数或其它条件。


在命令行中,使用 -param n=0 为参数赋值



在 transformation 中调用参数



Pentaho Data Integration 除了是个开源项目,它本身是 Hitachi 公司的产品,它的代码在 Github 中, 但帮助文档主要还是 Hitachi 公司在维护。关到 PDI 是有企业版的,企业版与社区版的区别如下:



Pentaho 的历史版本在 Sourceforge 上可以下载到


https://sourceforge.net/projects/pentaho/files/Data%20Integration/



PDI 的文档在如下位置


https://pentaho-community.atlassian.net/wiki/spaces/EAI/pages/372704041/Getting+Started



文章转载自生有可恋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论