目录
1. Spoon
2. Kitchen和Pan
1)命令行参数
)2)例
3 .卡特
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中可以清楚地看到Spoon的主窗口。 菜单栏位于主窗口的上方,下方是一个左右分开的APP应用程序窗口。 右侧面板包含多个选项卡面板,每个选项卡面板都是当前打开的转换或作业。 左侧面板是树步骤或工作项目视图。
右边的工作区还可以分为上下两部分。 上面的部分是画布,您可以在这里通过拖动图标来设计工作和变换。 显示为图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支持。 现在在Sp上
oon的图形界面下进行设计开发调试,然后用命令行执行保存的转换或作业(.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集群”