kettle7.1的基本使用总结

简介

Kettle是一款国外开源的ETL工具,纯java编写,可以在Windows、Linux、Unix上运行,数据抽取高效稳定。

Kettle家族目前包括4个产品:Spoon、Pan、CHEF、Kitchen。

SPOON 允许你通过图形界面来设计ETL转换过程(Transformation)。

PAN 允许你批量运行由Spoon设计的ETL转换 (例如使用一个时间调度器)。Pan是一个后台执行的程序,没有图形界面。

CHEF 允许你创建任务(Job)。 任务通过允许每个转换,任务,脚本等等,更有利于自动化更新数据仓库的复杂工作。任务通过允许每个转换,任务,脚本等等。任务将会被检查,看看是否正确地运行了。

KITCHEN 允许你批量使用由Chef设计的任务 (例如使用一个时间调度器)。KITCHEN也是一个后台运行的程序。

我们主要讲解spoon。

一、配置仓库管理

    点击右上角配置数据存储位置


kettle7.1的基本使用总结


点击Repository Manager…


kettle7.1的基本使用总结


数据库存储则是将所创建的文件保存到数据库,这样可以保证数据的安全性。(长时间的传输可能出现数据库连接超时)。

文件存储则是将文件保存到本地磁盘,两种可视情况而定。

二、转换的使用

配置BD连接,必须先把数据库连接的jar包放在kettle安装目录下的lib包。如:mysql-connector-java-5.1.38.jar

如下:配置了一个oracle和一个mysql的数据库


kettle7.1的基本使用总结



kettle7.1的基本使用总结


新建一个转换: 文件 —> 新建 —> 转换


kettle7.1的基本使用总结


简单的数据转换最常用的就是CSV文件输入和表输入两种了,其他的可以在作业中用到。


kettle7.1的基本使用总结


输出有以上几种,下面我们示范一个从数据库读取数据,输出一个csv文件。


kettle7.1的基本使用总结


写完后点击预览查看是否正确


kettle7.1的基本使用总结


下面看文本文件输出


kettle7.1的基本使用总结



kettle7.1的基本使用总结



kettle7.1的基本使用总结


点击执行,生成csv文本


kettle7.1的基本使用总结


三、作业

比如说我们要同时同步五张表的数据则可以新建一个作业,多线程去同步五张表的数据


kettle7.1的基本使用总结


四、定时执行任务

我们将作业保存在数据库中,windows下一般用任务调度来执行,linux可以用crotable实现

新建一个bat文件


kettle7.1的基本使用总结


然后将这个bat文件添加到windows定时任务中就可以了

五、java代码

kettle也支持java代码及js脚本等


kettle7.1的基本使用总结



kettle7.1的基本使用总结


假设有表person,有字段id,name,code,若code为空,则取name,若不为空加上999,然后更新原表数据。


kettle7.1的基本使用总结


表输入如下:


kettle7.1的基本使用总结


Java代码如下:


kettle7.1的基本使用总结


更新如下:


kettle7.1的基本使用总结


执行成功后查看数据库数据:


kettle7.1的基本使用总结


六、性能优化

Oracle:

    defaultRowPrefetch = 20000 (可以根据内存情况定)

        预取条数默认值,oracle默认为10,可以增加该值来减少数据库请求以提高查询效率


kettle7.1的基本使用总结


Mysql:


kettle7.1的基本使用总结


defaultFetchSize:设置一次读取多少条数据,不设置读大表可能会出现OOM问题

rewriteBatchedStatements:批量插入,可以提高插入数据的性能

useServerPrepStmts:如果服务器支持,是否使用服务器端预处理语句? 默认值为“真”(如果数据类型不一       致,可能会出现丢失精度问题)

useCursorFetch:使用FetchSize必须启用

useCompression:与服务器进行通信时采用zlib压缩(真/假)? 默认值为“假”。


kettle7.1的基本使用总结


提交数量可以根据内存情况尽量给大,最大5W条。

根据电脑内存修改spoon.bat

         PENTAHO_DI_JAVA_OPTIONS=”-Xms8192m””-Xmx8192m” “-XX:MaxPermSize=4096m”


原文始发于微信公众号(好好学技术):kettle7.1的基本使用总结

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/219495.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!