【数据分析】ETL工具:Kettle简介

Kettle简介

ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可少。

Kettle是一款国外开源的ETL工具(新名称是PDI ,PDI的全称是Pentaho Data Integeration),纯java编写,可以在Window、Linux、Unix上运行。Kettle支持图形化的GUI设计界面,然后可以以工作流的形式流转,在做一些简单或复杂的数据抽取、质量检测、数据清洗、数据转换、数据过滤等方面有着比较稳定的表现,其中最主要的我们通过熟练的应用它,减少了非常多的研发工作量,提高了我们的工作效率。

Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。Kettle允许:管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。Kettle中有两种脚本文件,transformation和job:transformation完成针对数据的基础转换,job则完成整个工作流的控制。

1、Kettle的下载与安装:

下载地址: https://sourceforge.net/projects/pentaho/files/latest/download , 下载的文件名、形如:pdi-ce-xxxx(版本号).zip

 

kettle无需安装,直接解压zip文件到指定的文件夹即可。 在Lunix操作系统上,需要执行以下脚本:  cd Kettle  ,chmod +x *.sh 

kettle的运行需要jre1.5及以上版本(可通过oracle官网免费下载)。

 

kettle中的一个图形用户界面叫spoon,spoon可以设计和运行转换和作业。在windows中执行spoon.bat,在Lunix系统中执行spoon.sh;Spoon是一个图形设计工具,用来设计和测试数据交换处理流程,也可以通过命令行(终端)执行处理流程。在spoon中设计作业和转换,kettle提供两种方式存储:资源库和文件。如果你选择资源库,spoon第一次启动时需要创建资源库;选择文件方法,作业保存文件是的扩展名是KJB,转换文件的扩展名为KTR

 

2、Kettle实战:

Kettle提供了资源库方式的方式来整合所有的工作,但是因为资源库移植不方便,所以我们选择没有资源库;

1)创建一个新的transformation,点击 保存到本地路径,例如保存到D:/etltest下,保存文件名为EtltestTrans,kettle默认transformation文件保存后后缀名为ktr;

2)创建一个新的job,点击 保存到本地路径,例如保存到D:/etltest下,保存文件名为EtltestJob,kettle默认job文件保存后后缀名为kjb;

 

 操作:点击菜单文件->新建转换。

  新建转换后在左边的主对象树中建立DB连接用以连接数据库。如图所示:

 

 

 

 

 

 

3、建立数据库连接该过程与其他数据库管理软件连接数据库类似。

  注意:在数据库链接的过程中,可能会报某个数据库连接找不到的异常。那是因为你没有对应的数据库链接驱动,请下载对应驱动后,放入kettle的lib文件夹。

 

 

 

 

 

 

4、简单的数据表插入\更新

  (1)新建:表输入:

  在左边的面板中选择“核心对象”,在核心对象里面选择“输入->表输入”,用鼠标拖动到右边面板。如图所示:

 

 

 

 

  双击拖过来的表,可以编辑表输入。

  选择数据库连接和编辑sql语句,在这一步可以点击预览,查看自己是否连接正确。

 

 

 

 

  (2)通过“插入\更新”输出到表。

  在左边面板中选择核心对象、选择“输出->插入\更新”如图所示:

 

 

 

 

 

  编辑插入更新:

    首先:表输入连接插入更新。

      选中表输入,按住shift键,拖向插入更新。

 

 

 

 

然后:双击插入更新,编辑它。

 

 

到这里基本上,这个转换就要做完了.

 

 

 

 

可以点击运行查看效果,看是否有误,这个要先保存了才能运行,可以随意保存到任何一个地方。

 

5、使用作业控制上面装换执行。

  使用作业可以定时或周期性的执行转换,新建一个作业。并从左边面板拖入start 和转换。

 

 

 

双击start可以编辑,可以设置执行时间等等

点开装换,可以设置需要执行的转换任务,比如可以执行上面我们做的转换,比如:h1.ktr

 

 

 

最后点击运行即可。

 

 

 

 

  到这里,一个简单的通过作业调度的kettle就算做完了。

 ----------------------------------------------------------------------------------------------------

[常见问题]

【问题1】连接MySQL出错“Driver class 'org.gjt.mm.mysql.Driver' could not be found, make sure the 'MySQL' driver (jar file) is installed.”

【解决对策】:这个软件需要Java的编辑环境,缺少一个Java包--mysql-connector-java-5.1.40-bin,加在软件目录的\data-integration\lib下就可以了。

 

【问题2】Unable to close prepared statement after determining SQL layout.You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_SELECT_LIMIT=DEFAULT' at line 1

【解决对策】去mysql官网下载最新的jar驱动包 然后更新就行: https://dev.mysql.com/downloads/connector/j/5.1.html

选择平台,下载(mysql-connector-java-5.1.33.tar.gz)

最后更新到dbvis jar包到相应的目录下就行,删除原来的,重启

 

posted @ 2021-01-06 20:37  老吴的技术知识园  阅读(3784)  评论(0编辑  收藏  举报