开源ETL工具Kettle(PDI)开发(一)认识Kettle及源码部署

目录

 

一、ETL是什么?

1.ETL简介       

2. ETL 与ELT

二、认识Kettle

1. 发展历程

2.架构设计

三、Kettle源码下载及部署

1.源码地址

2、环境准备

3.源码说明

4.源码打包

5.运行Kettle

三、关于Kettle二次开发的设想


一、ETL是什么?

1.ETL简介       

ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。 ETL是BI(商业智慧或商务智能,指用现代数据仓库技术、线上分析处理技术、数据挖掘和数据展现技术进行数据分析以实现商业价值)项目重要的一个环节。 通常情况下,ETL设计的好坏直接关接到BI项目的成败,在BI项目中ETL会花掉整个项目至少1/3的时间。     

E:Extract 数据的抽取;

T:Transform 数据的清洗转换

L:Load 速度的加载

2. ETL 与ELT

ETL所描述的过程,一般常见的作法包含ETL或是ELT(Extract-Load-Transform),并且混合使用。通常越大量的数据、复杂的转换逻辑、目的端为较强运算能力的数据库,越偏向使用ELT,以便运用目的端数据库的平行处理能力。

更详细参考《ETL的基础知识,看完你就全明白了!》

二、认识Kettle

1. 发展历程

Kettle是一个Java编写的ETL工具,主作者是Matt Casters,2003年就开始了这个项目,。
2005年12月,Kettle从2.1版本开始进入了开源领域,一直到4.1版本遵守LGPL协议,从4.2版本开始遵守Apache Licence 2.0协议。
Kettle在2006年初加入了开源的BI公司Pentaho, 正式命名为:Pentaho Data Integeration,简称“PDI”。
自2017年9月20日起,Pentaho已经被合并于日立集团下的新公司: Hitachi Vantara。

2.架构设计

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.源码地址

github上面kettle的源码下载地址:https://github.com/pentaho/pentaho-kettle

2、环境准备

  • Java JDK 1.8
  • Maven, version 3+
  • IDEA

3.源码说明

下载源码解压后用IDEA打开,如图

代码项目结构

  • assemblies: 项目分发归档文件在此模块下生成
  • core:  核心实现
  • dbdialog: 数据库”对话框
  • ui:  用户界面
  • engine:  PDI引擎
  • engine-ext:  PDI引擎扩展
  • plugins:  PDI核心插件
  • integration:测试 

4.源码打包

执行mvn clean install -DskipTests

打包好之后,assemblies\client\target会有一个zip包,我们将它拷贝到我们想要的地方解压,如图

 

5.运行Kettle

mysql链接库准备,下载mysql-connector-java-8.0.25,并拷贝到lib目录中

在window环境 运行spoon.bat

数据库连接配置

菜单:工具\向导\创建数据库连接向导

如果没有把mysql连接库拷贝lib里,创建连接会报错,下载拷贝后,重新运行spoon.bat

 

三、关于Kettle二次开发的设想

kettle工具已经很优秀了,但是我们如果真正应用到我们项目中,个人觉得还有有些达不到要求,在开源基础能否进行二次开发,

1.spoon有没有web版?

2.kettle引擎提供API方式吗?

3.作业调度这里官方建议用操作系统的作业调度

在开源基础上想实现web版,有兴趣的可以一块参与哦,我也会记录我二次开发的全部过程。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值