Kettle实现数据抽取转换和装载工具运行及源代码编译

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/boonya/article/details/89634173

Kettle标榜的就是绿色运行无安装,不过有些环境运行起来很麻烦,这里有一些相关的总结,希望可以帮助到使用Kettle十分崩溃的初学者,当然我也是其中之一。Kettle在Win7下有问题,建议直接重装win10或者使用虚拟机测试。

下载地址一:https://community.hitachivantara.com/docs/DOC-1009855

下载地址二:https://sourceforge.net/projects/pentaho/

下载地址三:https://github.com/pentaho/pentaho-kettle

目录

工具介绍

优势特点

Kettle家族系列产品

基于JAVA的ETL工具

应用场景

安装配置

Linux

Ubuntu 12.04 and later

CentOS 6 Desktop

Windows

Kettle源码编译

编译项目

参考文章


工具介绍

免费开源的、可视化的、国际上最流行的、功能强大的ETL必备工具。不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。

 

优势特点

  • 免费开源:基于java的免费开源的软件,对商业用户也没有限制
  • 易配置:可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定
  • 支持不同数据库:ETL工具集,它允许你管理来自不同数据库的数据
  • 两种脚本文件:transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。
  • 图形界面设计:通过图形界面设计实现做什么业务,无需写代码去实现
  • 定时功能:在Job下的start模块,有一个定时功能,可以每日,每周等方式进行定时

Kettle家族系列产品

  • SPOON:允许你通过图形界面来设计ETL转换过程(Transformation)
  • PAN:允许你批量运行由Spoon设计的ETL转换 (例如使用一个时间调度器)。Pan是一个后台执行的程序,没有图形界面
  • CHEF:允许你创建任务(Job)。 任务通过允许每个转换,任务,脚本等等,更有利于自动化更新数据仓库的复杂工作。任务通过允许每个转换,任务,脚本等等。任务将会被检查,看看是否正确地运行了
  • KITCHEN:允许你批量使用由Chef设计的任务 (例如使用一个时间调度器)。KITCHEN也是一个后台运行的程序

 

基于JAVA的ETL工具

  • ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可少,这里我介绍一个我在工作中使用了3年左右的ETL工具Kettle,本着好东西不独享的想法,跟大家分享碰撞交流一下!在使用中我感觉这个工具真的很强大,支持图形化的GUI设计界面,然后可以以工作流的形式流转,在做一些简单或复杂的数据抽取、质量检测、数据清洗、数据转换、数据过滤等方面有着比较稳定的表现,其中最主要的我们通过熟练的应用它,减少了非常多的研发工作量,提高了我们的工作效率。

 

应用场景

  • 表视图模式:这种情况我们经常遇到,就是在同一网络环境下,我们对各种数据源的表数据进行抽取、过滤、清洗等,例如历史数据同步、异构系统数据交互、数据对称发布或备份等都归属于这个模式;传统的实现方式一般都要进行研发(一小部分例如两个相同表结构的表之间的数据同步,如果sqlserver数据库可以通过发布/订阅实现),涉及到一些复杂的一些业务逻辑如果我们研发出来还容易出各种bug。
  • 前置机模式:这是一种典型的数据交换应用场景,数据交换的双方A和B网络不通,但是A和B都可以和前置机C连接,一般的情况是双方约定好前置机的数据结构,这个结构跟A和B的数据结构基本上是不一致的,这样我们就需要把应用上的数据按照数据标准推送到前置机上,这个研发工作量还是比较大的。
  • 文件模式: 数据交互的双方A和B是完全的物理隔离,这样就只能通过以文件的方式来进行数据交互了,例如XML格式,在应用A中我们开发一个接口用来生成标准格式的XML,然后用优盘或者别的介质在某一时间把XML数据拷贝之后,然后接入到应用B上,应用B上在按照标准接口解析相应的文件把数据接收过来。

 

安装配置

Linux

Ubuntu 12.04 and later

  • The libwebkitgtk package needs to be installed. This can be done by running
apt-get install libwebkitgtk-1.0.0
  • Unzip the downloaded file. Run spoon.sh file, it should be under /data-integrationOn some installations of Ubuntu 14.04, Unity doesn't display the menu bar. In order to fix that, spoon.sh has a setting to disable this integration, export
UBUNTU_MENUPROXY=0
  • You can try to remove that setting if you wish to see if it works propery on your machine

 

CentOS 6 Desktop

  • The libwebkitgtk package needs to be installed. This can be done by running
yum install libwebkitgtk
  • Unzip the downloaded file and run spoon.sh, it should be under /data-integration.

Windows

  • After unzipping the downloaded file, you can launch Spoon by navigating to the folder /data-integration and double clicking Spoon.bat
  • If you are using Infobright, make sure to copy the following files to your Windows system path (for example %WINDIR%/System32/):https://github.com/EidosMedia/infobright-core/tree/master/lib
libswt/win32/infobright_jni_64bit.dll (Windows 64-bit)

libswt/win32/infobright_jni.dll (Windows 32-bit)
  • Rename the file to: infobright_jni.dll, then run Spoon.bat to launch Spoon.

Win7运行异常:

java.lang.UnsatisfiedLinkError: Cannot load 32-bit SWT libraries on 64-bit JVM
	at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
	at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
	at org.eclipse.swt.internal.C.<clinit>(Unknown Source)
	at org.eclipse.swt.widgets.Display.<clinit>(Unknown Source)
	at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:664)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.pentaho.commons.launcher.Launcher.main(Launcher.java:92)



The system cannot find the path specified

注意:Kettle下载版本有BUG,经过在Win7系统一天的尝试通过换Kettle PDI版本(8.2,7.1都试过)到换JDK版本(换成32位的),最后转向源码编译,这是个令人崩溃的过程,与简单安装还不是完全匹配,其本身分支众多,听Kettle中文站群里的人说Kettle有BUG都是自己编译的,建议看到这篇文章的可以尝试编译源码,或者本身用的系统是Win10可以尝试安装(Win10家里的环境成功安装过PDI 7.1 版本上没有64bit的限制,但是jar有64bit请注意这点)。

WIN10效果:

Kettle源码编译

编译项目

使用Maven进行编译,进入项目目录:

mvn clean install -DSkipTests

打好的包:

IDEA 导入项目(会有一些插件报错):

参考文章

ETL工具kettle基本使用(操作)

centos7 PDI(Kettle)安装

Kettle安装解决 缺少libwebkitgtk-1.0-0库问题

Kettle相关学习文章合集

Win7下Kettle-7.0安装部署

CentOS 7下安装kettle7.1

CentOS7.2部署Kettle7.1并利用Xmanager实现远程图形化界面

IDEA 启动运行kettle8.0

kettle7.1.0.12-R 源码部署(IDEA 版本)

kettle 实时同步数据(插入/更新/删除数据)

使用Kettle实现数据实时增量同步

猜你喜欢

转载自blog.csdn.net/boonya/article/details/89634173
今日推荐