初识Kettle及常用控件使用

一、简介

Kettle 是一款功能强大的开源 ETL(Extract-Transform-Load,数据抽取、转换、装载)工具,其全称为 KDE Extraction, Transportation, Transformation and Loading Environment。该工具最初源自 K Desktop Environment(KDE)项目,经过多年发展已成为数据处理领域的重要工具。2006 年,Pentaho 公司正式收购了 Kettle 项目,其创始人 Matt Casters 也随之加入 Pentaho 团队,担任数据集成工程师的要职。此次收购后,Kettle 被整合进 Pentaho 企业级数据集成及商业智能套件,并正式更名为 Pentaho Data Integration(PDI),成为该套件的核心组件之一。2015 年,Hitachi(日立)Data Systems 完成了对 Pentaho 公司的收购,进一步推动了 Kettle 的发展。
作为一款跨平台的数据处理工具,Kettle 采用 Java 语言开发,支持在 Windows 和 Linux 系统上稳定运行。其绿色免安装的特性使得部署过程极为便捷,同时具备高效稳定的数据抽取能力。Kettle 提供商业版和开源版两个版本,满足不同用户群体的需求。在当今数字化转型的大背景下,数据处理已成为企业发展的核心环节,而数据处理的关键流程包括数据抽取、统计分析、转换和装载等步骤。随着企业对数据处理需求的不断增长,对具备 ETL 技能的工程师的需求也日益迫切,他们需要运用 Kettle 等工具来完成复杂的数据处理任务,为企业决策提供可靠的数据支持。Kettle 的持续发展和广泛应用,不仅推动了 ETL 技术的进步,也为企业数字化转型提供了强有力的技术支撑。
官网下载: https://pentaho.com/download/,解压后,windows运行Spoon.bat,linux运行spoon.sh

二、KETTLE核心功能

作业(Job)是Kettle中的核心概念之一,通常被称为步骤流或控制流。它作为任务执行的顶层容器,能够组织和协调多个子任务的执行流程。在作业中,用户不仅可以挂载转换任务(Transformation),还可以嵌套其他作业任务,形成复杂的任务执行链。作业的执行遵循严格的顺序逻辑,各个组件按照预定义的顺序依次执行,同时支持对执行结果进行条件判断,从而实现灵活的分支处理。作业的功能十分强大,它能够执行多种操作,包括但不限于检测数据表或文件是否存在、执行Shell脚本、运行SQL脚本、获取外部数据、发送邮件通知等。通过作业的编排,用户可以构建完整的数据处理流程,实现从数据采集、处理到结果输出的全生命周期管理。
转换(Transformation)是Kettle中另一个重要概念,在大多数应用场景下,它可以直接被称为"数据流"。转换专注于完成数据的输入、处理和输出过程,是数据加工的核心环节。与作业的顺序执行不同,转换任务一旦启动,其中的所有组件会同时启动,形成一个并行处理的数据管道。转换中的每个组件都经过精心配置,能够逐条处理数据记录,实现数据的清洗、转换、过滤、聚合等操作。转换任务的设计遵循数据流的思想,通过连接不同的处理组件,构建出清晰的数据处理路径。转换与作业的配合使用,使得Kettle能够处理从简单到复杂的各种数据处理需求,为企业的数据集成和分析提供了强大的技术支持。通过灵活运用作业和转换,用户可以构建出高效、可靠的数据处理流程,满足不同业务场景下的数据处理需求。

三、数据库连接MYSQL

1.下载mysql对应版本的java驱动:https://mvnrepository.com/artifact/mysql/mysql-connector-java,windows选择Platform Independent下载
在这里插入图片描述
2.把解压后的jar包放到data-integration\lib目录
在这里插入图片描述
3.重启kettle,测试是否可以连接
在这里插入图片描述

四、ETL连接线

1.黄色的锁:无论上一步是否执行成功,将会继续向下执行
在这里插入图片描述
2.绿色的对勾:上一步的任务执行成功,没有任何错误的时候才会执行下一步
在这里插入图片描述
3.红色停止:上一步的任务执行结果为假或者没有成功执行时,执行下一个作业项
在这里插入图片描述
4.圆圈i字母:表示获取上一步骤的参数并执行表输入,使用?引用变量,?使用与参数位置对应,比如:第一个问号,代表查询结果中的第一个值
在这里插入图片描述

五、作业和转换的使用

1.在作业中引用作业:通用>作业控件
在这里插入图片描述
2.在作业中引用转换:通用>转换控件
在这里插入图片描述
3.在转换中引用作业:流程>执行作业控件
在这里插入图片描述
4.在转换中引用转换:流程>Transformation exexutor控件
在这里插入图片描述

六、变量传递示例

1.在作业中传递变量
在这里插入图片描述
2.作业向转换中传递变量
在这里插入图片描述在这里插入图片描述
3.在sql脚本查询结果转变量,注意这里的sql只能获取一条记录
在这里插入图片描述
4.在sql脚本中使用变量
在这里插入图片描述
5.作业循环变量
在这里插入图片描述在这里插入图片描述在这里插入图片描述

七、如何将某表的数据导入到另一张表

1.转换:输入>表输入、输出>表输出
在这里插入图片描述
2.转换,表输入>插入/更新控件:根据条件有就更新,没有就插入数据
在这里插入图片描述
3.转换,表输入>更新控件:根据条件有就更新数据
在这里插入图片描述
4.转换,转换>字段选择:转换流字段与目标表字段名不一样的字段
在这里插入图片描述

八、定时任务配置

1.通过作业配置定时任务,终止作业定时任务也会中止
在这里插入图片描述
2.windows通过bat或文件配置定时任务

"""创建runJob.cmd文件,运行kettle作业或转换""""

##防止bat脚本内容中的中文乱码
chcp 65001

##Kitchen.bat(pan.bat)所在路径盘符
D:

##CD到Kettle的data-integration所在路径
cd D:\Program Files\pdi-ce-9.4.0.0-343\data-integration

##找到放脚本的位置并且执行,后面接转换(作业)所在路径,参数看参数表对应着写
##输出日志
kitchen /file "D:\selfWork\kettle\作业 1.kjb"   /Level:Basic > "D:\selfWork\kettle\1.log"

3.windiows通过任务计划程序管理任务

  • 管理员身份运行任务计划程序
    在这里插入图片描述
  • 创建Kettle任务
    在这里插入图片描述
  • 点击创建任务
    在这里插入图片描述
  • 创建任务界面切换操作tab,选择定时任务的启动程序文件
    在这里插入图片描述
  • 创建任务界面切换触发器tab,根据需要配置定时任务
    在这里插入图片描述
  • 选择任务,邮寄或者右侧面板选择运行即可
    在这里插入图片描述

5.Unix 系统(如 Linux、macOS 等)中使用crontab命令运行管理定时任务

  • crontab -e:编辑当前用户的定时任务列表,如果文件不存在会自动创建,如需删除定时任务,只需删除想要移除的任务行,然后保存并退出编辑器。
  • crontab -l:查询当前用户的所有定时任务
  • crontab -r:全部删除
 * crontab -e 
 * time command script-arg
 * 
 * time:时间调度,具有以下四种格式:
         - 0 8 * * *:每天早上 8 点执行任务。
         - 0 0 * * 1:每周一的午夜 0 点执行任务。
         - 0 12 1 * *:每月 1 号的中午 12 点执行任务。
         - */15 * * * *:每 15 分钟执行一次任务。
 * 
 * command:脚本命令路径,如:data-integration/spoon.sh 
 * 
 * script-arg:脚本参数
    -file:指定要运行的 Kettle 作业文件(.kjb)或者转换文件(.ktr)的路径
    -level:设置日志等级,如:-level=basic>logFilePath
            Error:仅记录错误信息。
            Debug:记录详细的调试信息。
            Rowlevel:记录每一行数据处理的详细信息,日志量最大。
            Minimal:只记录最少的必要信息。
            Detailed:记录较为详细的信息,比 basic 详细但不如 debug。
    -user:用户名 -pass:密码:用于连接 Kettle 资源库时的身份验证
    -dir:/目录路径:当使用资源库时,指定作业或者转换所在的目录
    2>&1:将标准错误输出重定向到标准输出,也就是一起写入到 logFilePath 文件中。
 */
 
crontab -e 
*/30 * * * * kettle/data-integration/spoon.sh  -file=kettle/project/job.kjb  -level=basic>kettle/project/job.log  2>&1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

局外人LZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值