Kettle工具——Spoon、Kitchen、Pan、Carte

article/2025/10/30 14:48:39

目录

1. Spoon

2. Kitchen和Pan

(1)命令行参数

(2)例子

3. Carte


        Kettle里有不同的工具,用于ETL的不同阶段。主要工具如下:

  • Spoon:图形化工具,用于快速设计和维护复杂的ETL工作流。
  • Kitchen:运行作业的命令行工具。
  • Pan:运行转换的命令行工具。
  • Carte:轻量级的(大概1MB)Web服务器,用来远程执行转换或作业,一个运行有Carte进程的机器可以作为从服务器,从服务器是Kettle集群的一部分。

1. Spoon

        Spoon是Kettle的集成开发环境(IDE)。它基于SWT提供了图形化的用户接口,主要用于ETL的设计。
在Kettle安装目录下,有启动Spoon的脚本。如Windows下的Spoon.bat,类UNIX下的spoon.sh。Windows用户还可以通过执行Kettle.exe启动Spoon。Spoon的屏幕截图如图1所示。

图1

        图1里可以清楚地看到Spoon的主窗口:主窗口上方有一个菜单条,下方是一个左右分隔的应用窗口。右方面板里有多个标签面板,每个标签面板都是一个当前打开的转换或作业。左方面板是一个树状结构步骤或作业项视图。

        右方的工作区又可以分为上下两个部分:上面的部分是画布,可以通过拖拽图标在这里设计作业或转换。图1的当前选中的画布标签里显示了一个设计好的转换。

        设计作业或转换的过程实际就是往画布里添加作业项或转换步骤的图标这么简单,向画布添加图标的方式为,从左侧的树中拖拽。这些作业项和转换步骤通过跳来连接。跳就是从一个作业项/步骤的中心连接到另一个作业项/步骤的一条线。在作业里跳定义的是控制流,在转换里跳定义的是数据流。

        工作区左侧的树有“主对象树”和“核心对象”两个标签,主对象树将当前打开的作业或转换里的所有作业项或步骤以树状结构展现。设计者可以在这里快速地找到某个画布上的步骤、跳或数据库连接等资源。核心对象中包含Kettle中所有可用的作业项或步骤,可以在搜索框中输入文本查找名称匹配的作业项或步骤。

        一些调试作业/转换的工具也集成到了Spoon的图形界面里,设计者可以在IDE里直接调试作业/转换。这些调试功能按钮在画布上方的工具栏里。

        工作区下方的面板是运行结果面板,运行结果面板里除了显示运行结果还显示运行时日志和运行监控。

2. Kitchen和Pan

        作业和转换可以在图形界面里执行,但这只是在开发、测试和调试阶段。在开发完成后,需要部署到实际运行环境中,在部署阶段Spoon就很少用到了。

        部署阶段一般需要通过命令行执行,需要把命令行放到Shell脚本中,并定时调度这个脚本。Kitchen和Pan命令行工具就是用于这个阶段,用于实际的生产环境。

        Kettle的Kitchen和Pan工具是Kettle的命令行执行程序。实际上,Pan和Kitchen只是在Kettle执行引擎上的封装。它们只是解释命令行参数,调用并把这些参数传递给Kettle引擎。

        Kitchen和Pan在概念和用法上都非常相近,这两个命令的参数也基本是一样的。唯一不同的是Kitchen用于执行作业,Pan用于执行转换。在使用命令行执行作业或转换时,需要重点考虑网络传输的性能。Kettle数据流将数据作为本地行集缓存。如果数据源和目标之间需要通过网络传输大量数据,将Kettle部署于源或目标服务器上会极大提升性能。

        Kitchen和Pan都通过脚本的方式启动,在Windows系统下,脚本名称是Kitchen.bat和Pan.bat,在类UNIX系统下,脚本名称是Kitchen.sh和Pan.sh。在执行这些脚本以及Kettle带的其它脚本时,要把Kettle目录切换为控制台的当前目录。类UNIX系统的脚本默认情况下是不能执行的,必须使用chmod目录使脚本可执行。

        Kettle是用Java语言开发的,因此在使用Kettle命令行时需要注意匹配Java版本。例如Kettle8.2.0版本需要JDK 1.8的支持。这样就能在Spoon的图形界面下进行设计开发调试,然后用命令行执行保存的转换或作业(.ktr或.kjb文件),秉承Java程序一次编译到处运行的理念。

(1)命令行参数

        Kitchen和Pan的命令行包含了很多参数,在不使用任何参数的情况下,直接运行Kitchen和Pan会列出所有参数的帮助信息。参数的语法规范如下:

[/-]name [[:=]value]

        参数以斜线(/)或横线(-)开头,后面跟参数名。大部分参数名后面都要有参数值。参数名和参数值之间可以是冒号(:)或等号(=),参数值里如果包含空格,参数值必须用单引号(')或双引号(")引起来。

        作业和转换的命令行参数非常相似,这两个命令的参数可以分为下面几类:

  • 指定作业或转换 
  • 控制日志
  • 指定资源库
  • 列出可用资源库和资源库内容。

        表1列出了Pan和Kitchen共有的命令行参数。

参数名

参数值

作用

norep

 

 

rep

资源库名称

要连接的资源库的名称

user

资源库用户名

要连接的资源库的用户名

pass

资源库用户密码

要连接的资源库的用户密码

listrep

 

显示所有的可用资源库

dir

资源库里的路径

制定资源库路径

listdir

 

列出资源库的所有路径

file

文件名

指定作业或转换所在的文件名

level

Error|Nothing|Basic|Detailed|Debug|Rowlevel

指定日志级别

logfile

日志文件名

指定要写入的日志文件名

version

 

显示Kettle的版本号、build日期

表1

        尽管Kitchen和Pan命令的参数名基本相同,但这两个命令里的dir参数和listdir参数的含义有一些区别。对Kitchen而言,dir和listdir参数列出的是作业的路径,Pan命令里的这两个参数列出的是转换路径。

        除了共有的命令行参数外,Kitchen和Pan自己特定的命令行参数分别见表2、表3。

参数名

参数值

作用

jobs

作业名

指定资源库里的一个作业名

listdir

 

列出资源库里的所有作业

表2

参数名

参数值

作用

trans

转换名

指定资源库里的一个转换名

listtrans

 

表列出资源库里的所有转换

表3

(2)例子

# 列出所有有效参数
Kettle-home> ./kitchen.sh# 运行一个存储在文件中的作业
Kettle-home> ./kitchen.sh /file:/home/foo/daily_load.kjb# 运行一个资源库里的作业
Kettle-home> ./kitchen.sh /rep:pdirepo /user:admin /pass:admin /dir:/ /job:daily_load.kjb# 运行一个存储在文件中的转换
./pan.sh -file:/home/mysql/MongoDB_to_MySQL.ktr

3. Carte

        Carte服务用于执行一个作业,就想Kitchen一样。但和Kitchen不同的是,Carte是一个服务,一直在后台运行,而Kitchen只是运行一个作业就退出。

        当Carte在运行时,一直在某个端口监听HTTP请求。远程机器客户端给Carte发出一个请求,在请求里包含了作业的定义。当Carte接到了这样的请求后,它验证请求并执行请求里的作业。Carte也支持其它几种类型的请求。这些请求用于获取Carte的执行进度、监控信息等。

        Carte是Kettle集群中一个重要的构建快。集群可将单个工作或转换分成几部分,在Carte服务器的多个计算机上并行执行,因此可以分散工作负载。

        关于Carte以及Kettle集群的配置和使用,参见“Pentaho Work with Big Data(八)—— kettle集群”


http://chatgpt.dhexx.cn/article/dAVt1fmn.shtml

相关文章

kettle Spoon.bat启动问题

问题 启动Spoon.bat报错 解决方法 一、首先查看本机安装的jdk版本 在cmd命令窗口输入:java -version 能得到版本即为安装成功(需要配置环境) 一般为1.8,如果版本过高也会导致运行kettle出错 二、尝试修改Spoon.bat中的内存设…

kettle打开spoon.bat后无反应

主要两点 1.配置环境变量 、 2.修改spoon.bat 3.删掉 kettle根目录下E:\pdi-ce-7.1.0.0-12\data-integration\.kettle\db.cache-7.1.0-stable , 删掉db.cache-7.1.0-stable 文件 ; 以及 C:\Users\Administrator\.kettle\db.cache-7.1.0-stable , …

spoon.bat打不开或者打开闪退 | 解决办法

1.查看jdk版本,这里jdk必须为1.8及以上,强烈推荐使用jdk1.8,因为jdk1.9和jdk10对于spoon来说都不太稳定,因此最好使用jdk1.8; 查看jdk版本方法:winR再输入cmd然后按回车进入终端界面。 然后在终端输入&…

kettle的图形工具(Spoon)简单介绍

kettle(ETL)的简单使用 最近刚接手一个新项目,接触了一个叫kettle的工具,这玩意可以用在数据同步,数据清洗,跨数据源等问题,而且不需要写代码,简单易懂。 以下来源百度百科&#xf…

Spoon系列-概要

Spoon系列-概要 概要相关资源主要功能可构建 AST(Abstract Syntax Tree)静态代码分析(Static Code Analysis) 代码重写转换(Transform) 概要 可对Java 源代码进行分析,重写,转换的开源工具。支持Java13。 相关资源 Source&…

Spoon图形操作

Spoon图形操作 一、 Kettle的导入导出1.1 csv、txt(02、03)1.2 xlsx(Excel)(04)1.3 XML(05)1.4 json(06)1.5 SQL1.5.1 MySQL基础语法1.5.2 Spoon中的数据库操作(08) 1.6 CDC操作(Change Data Capture)(09、10)1.6.1 基于时间戳的CDC1.6.2 基于自增序列的CDC数据导入1.6.3 基于触…

kettle Spoon 的简单使用

Spoon分享 Kettle Spoon简介 ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,了解并掌握一种e…

基于kettle部署图形化界面(spoon)

最近使用kettle部署windows,mac、linux服务遇到的坑做一个总结。 1、mac、linux部署: 1⃣️拉取docker镜像 docker pull hiromuhota/webspoon 2⃣️创建并运行docker容器 docker run -d -p 8080:8080 hiromuhota/webspoon --name webspoon --restar…

数据导入与预处理——1.初步熟悉kettle-Spoon

文章目录 数据文件1.导入2.导出3.分发与复制 提示:以下是本篇文章正文内容,为初步使用spoon软件进行数据的导入导出步骤。 数据文件 1.导入 数据文件的导入 首先建立csv文件格式如下: 打开kettle新建转换: 从输入中找到对应的…

kettle运行spoon.sh启动图形化界面报错处理

一、问题描述: 安装kettle成功后运行spoon.sh显示如下报错: 二、原因分析: 没有安装Xmanager 三、解决方案: 1.下载Xmanager软件,安装教程参考 Xmanager 6标准版详细安装教程_小祥V5的博客-CSDN博客_xmanager安装教程…

问题:Spoon.bat启动不起来

问题:使用kettle进行数据迁移时,Spoon.bat死活启动不起来,尝试各种办法。 运行环境:windows7 64位,jdk1.8及以上,且环境变量配置ok。 检验:cmd->java -version,可以查看。环境变…

Macox kettle安装启动报错:一个未预期的错误发生在Spoon: probable cause:在停止Spoon前,请先关闭其它spoon窗口!

Macox kettle安装启动报错:一个未预期的错误发生在Spoon: probable cause:在停止Spoon前,请先关闭其它spoon窗口! 最近需要从oracle导一批数据到mysql,需要用到kettle,于是下载了mac版的kettle工具,基本步骤如下&…

Kettle spoon 工具实战分享

今天给大家带来一款ETL工具kettle spoon的实践分享 Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。 Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提…

Springboot+Kettle(Spoon)

Springboot集成kettle实战 介绍项目截图javakettle实战代码1 pom.xml2 kettleUtil3 业务层方法a 资源库业务b 转换的相关业务c 完整代码 介绍 kettle就不介绍了,Web界面极其简单、丑陋,生产环境无法投入使用.所以这篇实战内容是springboot结合kettle的web端执行已经…

spoon新手入门教程

Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。Kettle这个ETL工…

集线器、交换机与路由器有什么区别?

转发自:https://mp.weixin.qq.com/s/YXWBw3aFTSEFvkg_oN9eQA 我相信我们都玩过一款特别火的游戏:帝国时代。小时候想要玩帝国时代,需要到软件城购买盗版光盘安装(大概3块钱一张左右的样子,当时已经觉得很便宜了&#…

集线器和中继器

首先要明白,集线器和中继器两者都属于物理层的设备。物理层设备和其他层次的设备(如:交换机、网桥、路由器)最大的区别在于:集线器和中继器工作在同一个网段下的,而交换机、路由器等设备是工作在不同网段下的。 网段:…

# 网络中的一些基本概念 网卡、集线器、网桥(自学用)

# 网络中的一些基本概念 网卡、集线器、网桥 1. 网卡 1. 有几个网卡就有几个MAC地址 2. 计算机上的网卡来接收数据,网卡将数据传递给上一层 3. 发送数据:需要知道IP地址,但最终是根据MAC地址(网卡地址),输送…

【计算机网络-数据链路层】集线器、网桥、交换机

本文许多文字和图片使用了湖科大教书匠(高军老师)的 PPT,在此表示感谢。正是他让非科班的我能以奇妙的方式走进网络的世界。 文章目录 1 【物理层】集线器(Hub)——共享式以太网1.1 为什么使用集线器?1.2 …

【计网】(一) 集线器、网桥、交换机、路由器等概念

这篇文章将介绍计算机网络中的一些基础概念,以及生活中我们所常见的一些设备(交换机、路由器等)的作用。 目录 ✅ 互联网的概念✅ 什么是网络协议✅ 网络互联模型✅ 计算机之间是如何通信的🐾 网线直连🐾 同轴电缆(Co…