美文网首页KettleETLkettle进阶
一次关于Kettle学习以及实践

一次关于Kettle学习以及实践

作者: Astro1hl | 来源:发表于2019-08-12 16:29 被阅读9次

    背景

    最近接了一个需求,大致内容是对Oracle数据库的两张表读取合并,然后导入到Mysql数据库指定表中(全量更新)。因为之前从来没有接触过,遂有了这次学习实践。

    Kettle介绍

    Pentaho Data Integration (PDI, also called Kettle) is the component of Pentaho responsible for the Extract, Transform and Load (ETL) processes.

    以上来自维基百科

    Kettle为一个ETL工具(又名PDI),其强大之处在于对各种数据源都能够处理。

    Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。

    Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。

    作为Pentaho的一个重要组成部分,现在在国内项目应用上逐渐增多。

    具体组件

    Kettle目前包括4个组件:Spoon、Pan、CHEF、Kitchen。

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

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

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

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

    Spoon

    下面开始介绍如何使用spoon处理oracle到mysql的数据同步

    ps: jdbc驱动需要自行下载放入./data-integration/lib/

    oracle-mysql数据同步

    1. 新建一个表输入对象(核心对象->输入->表输入),写好SQL。

    编辑表输入,配置SQL

    2. 开始配置oracle链接,点击数据库连接的新建按钮就会出现下图页面,根据图片配置好相关参数并保存(如果是持续运行情况下,建议使用连接池)。

    配置Oracle链接

    3. 开始配置Mysql输出,新建一个"插入/更新"对象(核心对象->输出->插入/更新),然后配置Mysql链接

    因为Mysql8以后驱动有变化,而Native配置方式是使用的默认驱动,所以使用Mysql8以上版本的同志请使用一下方式配置(JNDI)

    Mysql链接配置

    4. 上述的JNDI配置还需要修改Kettle的jdbc配置文件,文件路径为./data-integration/simple-jndi/jdbc.properties

    jdbc.properties

    5. 开始配置查询关键字和更新字段。(注:如果需要update,尽量做成先delete然后再insert,因为kettle对于update操作效率较低)

    更新配置

    6. 然后点击运行按钮,查看效果。

    后续

    后面会介绍如何linux环境部署,以及Pan组件的使用。

    学习链接:

    Kettle官网

    kettle中文学习网站

    Kettle初识

    Kettle — 使用手册


    以上为Kettle的学习以及Spoon组件的实践,首次接触学习的并不深入,如有错误请指出!

    相关文章

      网友评论

        本文标题:一次关于Kettle学习以及实践

        本文链接:https://www.haomeiwen.com/subject/othujctx.html