初识Kettle及常用控件使用

初识Kettle及常用控件使用

初识Kettle及常用控件使用

一、简介二、KETTLE核心功能三、数据库连接MYSQL四、ETL连接线五、作业和转换的使用六、变量传递示例七、如何将某表的数据导入到另一张表八、定时任务配置

一、简介

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

相关推荐

[攻略]【攻略团】【兽骨铃乱】玲珑兽神周任务——
谁有365比分链接

[攻略]【攻略团】【兽骨铃乱】玲珑兽神周任务——

📅 10-12 👁️ 2167
堡垒之夜新政策:作弊玩家或迎解封机会
beat365官网备用

堡垒之夜新政策:作弊玩家或迎解封机会

📅 09-26 👁️ 3834
猫咪摇头怎么回事,一直甩头挠耳朵疑患四种疾病
365bet备用官网

猫咪摇头怎么回事,一直甩头挠耳朵疑患四种疾病

📅 09-21 👁️ 6809
寻仙手游怎么开红
365bet备用官网

寻仙手游怎么开红

📅 09-22 👁️ 3959
各种被骂还赚这么多!携程怎么做到的?
谁有365比分链接

各种被骂还赚这么多!携程怎么做到的?

📅 09-21 👁️ 9565