前话
本系列文章,重点剖析PDI的工作原理并关注系统的代码处理,学习软件的编码能力和代码的设计模式。该系统为我们快速搭建集群应用又提供了一种思路。在开始这系列文章之前,我认可你是懂java语法的人,对脚本有一定的认识,在软件面前有渴望知道原理的求知欲。本系列文章采用最新的开源版本
pdi-ce-5.0.1.A-stable,我希望通过我的努力能为ETL方面贡献我微薄的力量。
简介
Kettle是一个纯java编写的开源的ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程)项目。Kettle是水壶的意思。按项目负责人Matt的说法:把各种数据放到一个壶里,然后呢,以一种你希望的格式流出。2006年 Kettle 加入了开源的 BI 组织 Pentaho, 正式命名为 PDI ( Pentaho Data Integeration )。加入Pentaho 后Kettle 的发展越来越快了,并有越来越多的人开始关注它了。Kettle绿色无需安装,数据抽取高效稳定。
正文
到PDI 官网上去下载最新的版本包:
到如下源码站点,找到与之对应的源码:
https://github.com/pentaho/pentaho-kettle/releases
我们打开编译过的包,直接解压。如果设置了java环境变量,你就可以直接点击spoon脚本,打开PDI并看到他的操作界面了。首先,我们不着急打开,先看下你解压过后的文件,我们来大致了解下文件布局构造。
-
lib:项目依赖jar包。比较重要的是以kettle和pentaho打头的jar包。支持整个工具的运行。如下,也是我们比较关注源码的地方。
-
libswt: PDI采用了xul界面技术。所有界面的开发采用了swt组件。该目录,包含了所用到的jar包,并且根据操作系统平台做到了差异化加载jar包的控制。
-
Plugins:插件目录。系统开放插件接口,可以对平台插件做扩展。
-
Pwd:存放集群化的配置文件和访问授权文件kettle.pwd
-
Ui: 系统所有的界面xul文件和引用的图片资源文件。
-
脚本:各种启动脚本。重点有四个 spoot/ pen/ kitchen/ carte。这些脚本的作用,后面我们再详细阐述。
到这里,有人或许已经打开了PDI的工作页面,并根据教程,已经对脚本有了基本概念。但这些不是我们的目的,我们要把项目从eclipse上启动起来。
新建java项目,笔者以pentaho_kettle 为项目名。
源码项目是用ivy来管理的,为了减(我)少(也)麻(不)烦(会),我们把项目的源码改成eclispe上的java工程项目。打开源码包里有几个比较重要的目录。
跟之前的lib的依赖包是一致的。好了我们在工程里建立相应的源码目录,把源码包相应模块下的src目录内容拷贝进来。拷贝进来后,代码会报错,到上面提到的lib包下,我们把需要引用的jar包都考进工程里,并构建到工程中。
注意:已经引入源码的jar包就不要再引入了。另外swt包没有了脚本对操作系统的判断,自己根据自己的系统的类型,手动选择引入吧。其他的目录文件,如docs 、pwd、simple-jndi等虽然不会造成项目编译不了,但是作为资源,缺失会报错的,所以还是要拷贝进来的。
到这里,你的源码搭建就OK了,如果你对脚本有了解的话,不难看出spoon启动脚本,对应的是Spoon.java.该类的main方法便是整个工具的入口。这里看到脚本对启动参数有了部分的设置,我们在启动配置时加入该参数。
-XX:MaxPermSize=256m
-Djava.library.path=libswt\win32
-DKETTLE_HOME=
-DKETTLE_REPOSITORY=
-DKETTLE_USER=
-DKETTLE_PASSWORD=
-DKETTLE_PLUGIN_PACKAGES=
-DKETTLE_LOG_SIZE_LIMIT=
-DKETTLE_JNDI_ROOT=
启动,OK!
相关推荐
kettle-core-7.1.0.0-12.jar kettle-dbdialog-7.1.0.0-12.jar kettle-engine-7.1.0.0-12.jar pentaho-metadata-7.1.0.0-12.jar
《Kettle与达梦数据库的整合:深入理解kettle-core-8.1.0.0-365_kettle_kettle达梦8_》 Kettle,也被称为Pentaho Data Integration (PDI),是一款强大的数据集成工具,它提供了一种图形化的界面,让用户能够设计、...
8.3.0.0-371 pentaho-kettle kettle-core
kettle-core-7.1.0.0-12.jar kettle-dbdialog-7.1.0.0-12.jar kettle-engine-7.1.0.0-12.jar kettle-json-plugin-7.1.0.0-12.jar kettle-sap-plugin-7.1.0.0-12.jar kettle-ui-swt-7.1.0.0-12.jar metastore-7.1.0.0...
Kettle是一款强大的ETL(Extract, Transform, Load)工具,主要用Java语言开发,由Pentaho公司维护。它提供了一种图形化的界面,让用户无需编写代码就能进行数据的抽取、转换和加载操作。在本资源中,"kettle-...
pentaho kettle-engine-8.3.0.0-371.jar
kettle-engine.jar java版本 亲测好用
kettle-engine-7.1.0.0.jar
1、集成安装包直接集成了kettle、mysql、kettle-manager,这样能减低对部署人员的技术要求。 2、下载集成安装包,按安装包中的文档操作即可,很简单几步,还配有截图,应该算是没有难度了。 3、关键提示:执行init...
kettle-manager0.4.0集成安装包,使用的kettle5.4版本因为kettle文件过大不能上传,把kettle5.4主文件目录改为data-integration放到kettle-manager目录下,然后直接按要求用即可
kettle-ui-swt-7.1.0.0-12.jar 可修改包中资源 核心jar包
在源码层面,Pentaho Kettle 8.3 使用 Java 编写,遵循 Model-View-Controller (MVC) 设计模式。开发人员可以通过源代码深入了解其内部工作原理,进行定制化开发或扩展功能。源码包含了核心库、GUI 组件、插件框架等...
kettle使用maxcompute相关插件,aliyun-kettle-odps-plugin-1.0.0.tar.gz
标题 "kettle-scheduler-master_springmvc_kettlejava_kettleweb调度_kettle-" 指的是一个基于Kettle(Pentaho Data Integration)的Web自动化调度项目,它使用了Spring MVC框架来实现。这个项目的核心目标是将...
aliyun-kettle-odps-plugin-1.0.0包以及安装操作文件,适合在使用maxcompute时用kettle将数据导出,方便实用
### Kettle源码部署知识点详解 #### 一、Kettle简介与价值 Kettle是一款知名的开源ETL(Extract-Transform-Load)工具,以其强大的功能和直观易用的图形界面著称。它允许用户轻松地从多种数据源抽取数据,进行必要...
要对Kettle进行源码级的开发和调试,你需要先搭建源码环境并学会如何配置插件。以下是详细的步骤: 1. **下载Kettle源码与安装版** - 访问`https://sourceforge.net/projects/pentaho/files/Data%20Integration/`...
Pentaho Kettle,通常被称为Kettle或PDI(Pentaho Data Integration),是一个开源的数据集成工具,由Pentaho公司开发。它提供了图形化的界面,用于设计、执行和监控数据转换和ETL(Extract, Transform, Load)过程...
(Hive输出)ETLDesigner\common\system\karaf\system\pentaho\pentaho-big-data-kettle-plugins-hive\6.1.0.1-196\下的文件。 (Hive输出)pentaho-big-data-kettle-plugins-hive-6.1.0.1-196。
kettle开发不可缺少的工具,实现数据的抽取