• 数据同步工具ETL-kettle使用


    ETL之kettle

    1.什么是ETL?

    ETL分别是“Extract”、“ Transform” 、“Load”三个单词的首字母缩写也即数据抽取、转换、装载的过程,但我们日常往往简称其为数据抽取。

    2.什么是Kettle?

    1.Kettle 是 PDI 以前的名称,PDI 的全称是Pentaho Data Integeration
    2.Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、linux、Unix上运行,绿色无需安装,数据抽取高效稳定。
    3.Kettle中有两种工作方式,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。

    kettle安装

    kettle是基于java的,所以要有jdk环境。kettle7及7以上,需要jdk8及8以上的环境,要预先安装jdk

    kettle下载地址:https://sourceforge.net/projects/pentaho/files/
    在这里插入图片描述
    点击要下载的版本,进入后在client-tools文件夹下下载。
    在这里插入图片描述

    kettle目录结构

    在这里插入图片描述

    在这里插入图片描述

    转换和作业

    转换(Transformation):定义对数据操作的容器,数据操作就是数据从输入到输出的一个过程,可以理解为比作业粒度更小一级的数据操作,我们将任务分解成【作业】,然后需要将作业分解成一个或多个转换,每个转换只完成一部分工作。一般的数据清洗工作都是在转换中完成的。

    作业(job):【转换】中的各个数据操作步骤是并行执行的,所以我们用【作业】来把【转换】按照一定的逻辑组织在一起进而完成某一块工作,通常我们需要把一个大的任务分解成几个逻辑上隔离的作业,当这几个作业都完成了,也就说明这项任务完成了。
    在这里插入图片描述

    kettle操作

    数据库连接

    注:若事先启动了spoon.bat,需要先关闭,引入驱动包后再启动方可生效。

    1.连接mysql/oracle/sqlserver

    首先要在kettle安装目录下的lib文件夹中,放入数据库连接驱动,如下,版本号可根据需要自行选择。
    在这里插入图片描述

    然后新建一个转换或者作业,在转换或者作业中建立数据库连接。
    在这里插入图片描述
    在这里插入图片描述
    如果想要所有的转换或者作业使用该数据库,在对应的数据库上:右击,选择【共享】即可。

    2.连接redis

    同样要在kettle安装目录下的lib文件夹中,放入redis连接驱动。
    在这里插入图片描述

    然后在在java脚本中建立连接,操作redis。java中Main就是代码运行的主类。
    在这里插入图片描述
    在这里插入图片描述

    注意事项

    1.建立数据库连接时,取名不要有中文,否则在后续【转换】或者【作业】执行数据库操作时,会报错。报错内容和下图类似。
    在这里插入图片描述
    这是因为在调用数据库操作的时候,会加载:用户目录下的 .kettle文件夹中的share.xml文件,如果该文件中存在中文,就会导致加载报错。

    2.作业的调度时间间隔,是在上一次作业执行完成的基础上,再加上调度的时间间隔。比如16:08:35执行了一次作业花费了1分钟,那么下一次调度的时间就是在16:08:35基础上加3分钟(1+2)。
    在这里插入图片描述
    3.在linux上运行转换/作业

    首先在data-integration/ 目录下运行 pan.sh 、kitchen.sh 就可以看到命令运行所需要的参数,截图是pan.sh(即运行转换的脚本)运行时所需要的参数。
    在这里插入图片描述
    那么运行一个转换的命令就是
    sh /opt/kettle/pdi-ce-7.1.0.0-12/data-integration/pan.sh -norep -file=connectRedis.ktr

    下面截图是运行时没有指定参数的报错。
    在这里插入图片描述

    感谢

    博主不是搬别人的文章,坚持用自己的话把遇到问题总结出来,避免大家踩坑和我自己下次查看,从原理上透彻分析过程,最终掌握精髓,希望能帮助大家,一起成长。!!!

    如果您认为这篇文章还不错或者有所收获,您可以点击右下角的【点赞】支持,或请我喝杯咖啡【赞赏】,这将是我继续写作,分享的最大动力!
    作者:勤快的小蚂蚁
    声明:原创博客请在转载时保留原文链接或者在文章开头加上本人博客地址,如发现错误,欢迎批评指正。凡是转载于本人的文章,不能设置打赏功能,如有特殊需求请与本人联系!
    ————————————————
    版权声明:本文为CSDN博主「勤快的小蚂蚁」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/fxzzq/article/details/126434203

  • 相关阅读:
    数据结构与算法复习:第三十一弹
    理解回归_多元线性回归_最大似然函数_最大密度函数_标准差_方差_数据离散程度---人工智能工作笔记0020
    Java 中的关键字
    论文阅读(6)最有效率的后生动物游泳者创造了一堵“虚拟墙”来提高成绩
    探索原味BFF模式
    聊聊 MQTT 和 WebSocket
    一文让你搞懂MYSQL底层原理。-内部结构、索引、锁、集群
    Sora----打破虚实之间的最后一根枷锁----这扇门的背后是人类文明的晟阳还是最后的余晖
    10 年经验 hr 亲授:刷完阿里 P8 架构师的 RocketMQ 核心手册,进大厂稳了
    VCS编译时如何加载shared library(.so)库
  • 原文地址:https://blog.csdn.net/fxzzq/article/details/126434203