Kettle 工具
目录
Kettle 工具简介
Kettle 里有不同的工具,用于ETL的不同阶段。主要工具如下:
Spoon:图形化工具,用于快速设计和维护复杂的ETL工作流。
Kitchen:运行作业的命令行工具。
Pan:运行转换的命令行工具。
Carte:轻量级的(大概1MB)Web服务器,用来远程执行转换或作业,一个运行有Carte进程的机器可以作为从服务器,从服务器是Kettle集群的一部分。
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版本需要JDK1.8的支持。这样就能在Spoon的图形界面下进行设计开发调试,然后用命令行执行保存的转换或作业(.ktr或.kjb文件),秉承Java程序一次编译到处运行的理念。
参数列表
- Kitchen 和 Pan 共有参数
参数 | 说明 |
---|---|
rep | 企业或数据库存储库名称 |
user | 用户名 |
pass | 密码 |
dir | 存储库目录 |
file | 如果调用的是本地 KTR 文件,则为文件名,如果不在本地目录中,则包括路径 |
level | 日志级别(基本、详细、调试、行级别、错误、无)(Basic, Detailed, Debug, Rowlevel, Error, Nothing) |
logfile | 将日志输出写入的本地文件名 |
listdir | 列出指定存储库中的目录 |
listrep | 列出可用的存储库 |
exprep | 将所有存储库对象导出到一个 XML 文件 |
norep | 防止 Pan(Kitchen)登录到存储库。如果您已经设置了 KETTLE_REPOSITORY、KETTLE_USER 和 KETTLE_PASSWORD 环境变量,那么这个选项将使您能够阻止 Pan( Kitchen)登录到指定的存储库,假设您要执行本地 KTR 文件 |
version | 显示版本、修订和构建日期 |
param | 以name=value 格式设置命名参数 。例如: -param:FOO=bar |
listparam | 列出有关指定转换中定义的命名参数的信息 |
maxloglines | PDI 内部保留的最大日志行数。设置为 0 以保留所有行(默认) |
maxlogtimeout | 由 PDI 内部保留的日志行的最长期限(以分钟为单位)。设置为 0 以无限期地保留所有行(默认) |
- Kitchen 特有参数
参数 | 说明 |
---|---|
jobs | 指定资源库里的一个作业名 |
listdir | 列出资源库里的所有作业 |
- Pan 特有参数
参数 | 说明 |
---|---|
trans | 要启动的转换的名称 |
listtrans | 列出指定存储库目录中的转换 |
safemode | 在安全模式下运行,可以进行额外检查 |
语法定义
windows 系统使用带有正斜杠 (/
) 和冒号 (:
) 的语法,linux 系统使用中杠-
的语法。如果选项值中存在空格,请使用单引号 ''
和双引号 ""
将空格放在一起,例如:“-param:MASTER_HOST=192.168.1.3" "-param:MASTER_PORT=8181”
pan 基本语法
linux语法:
pan.sh -option=value arg1 arg2
windows语法
pan.bat /option:value arg1 arg2
kitchen 基本语法
linux语法:
kitchen.sh -option=value arg1 arg2
windows语法
kitchen.bat /option: 值 arg1 arg2
命令示例
pan 示例
- windows :
Pan.bat /file:D:\project\pan-mysql-mysql.ktr
- linux:
./pan.sh -file=./pan-mysql-mysql.ktr ./pan.sh /file:./pan-mysql-mysql.ktr
- windows :
kitchen 示例
- windows :
Kitchen.bat /file:D:\project\pan_mysql_mysql.kjb
- linux:
./kitchen.sh -file=./pan_mysql_mysql.kjb ./kitchen.sh /file:./pan_mysql_mysql.kjb
- windows :