Mars‘s docMars‘s doc
🏠主页
  • 🍻Activiti

    • 01-核心API
    • 02-监听
    • 03-数据库表介绍
    • 04-常见问题
  • 📊JasperReport

    • 01-JaspersoftStudio工具使用
    • 02-JasperReport集成
    • 03-JasperReport常见问题
  • 🎬JavaScript

    • 01-Node
    • 02-VuePress
    • 03-Vue组件高度宽度
    • 04-显示器和屏幕高度
    • 05-页面地址
    • 06-归纳总结
  • 🍵Java

    • 01-Java8特性
    • 02-多线程
    • 03-Jar包
    • 04-Util
    • 05-validation注解
    • 06-反编译
    • 07-try-with-resource
    • 08-ThreadLocal内存泄漏
    • 09-Jvm
    • 10-Excel
    • 11-Lombook
    • 12-条件注解
    • 13-WebMvcConfigurationSupport
    • 14-WebMvcConfigurer
    • 15-分布式锁
    • 16-Caffeine
    • 17-DynamicDatasource
    • 18-MybatisPlus
    • 19-Swagger
    • 20-BeanPostProcessor
    • 21-Bean初始化
    • 22-ConfigurableApplicationContext
    • 23-常用注解
    • 24-ApplicationListener
    • 25-JavaDoc
    • 26-Spring-Cache
    • 27-StopWatch耗时统计
    • 28-Word
    • 29-Druid
    • 30-OpenFeign
    • 31-反射相关
    • 32-Fastjson
    • 33-Yaml
  • 💻Linux

    • 01-Linux常用命令
    • 02-Linux脚本汇总
    • 03-Yum源
    • 04-Debian
    • 05-Ubuntu
  • 🐋Docker

    • 01-Docker常用命令
    • 02-Dockerfile
    • 03-Swarm
    • 04-Stack
    • 05-Docker常见问题
    • 06-DockerCompose
    • 07-Docker应用用汇总
    • 08-Kasm
    • 09-Rustdesk
  • 🌐Nginx

    • 01-Nginx
  • 📈数据库

    • 01-Mysql
    • 02-Clickhouse
    • 03-Doris
    • 04-DRDS
  • 📉Kettle

    • 01-入门
    • 02-js脚本
    • 03-优化
    • 04-连接组件
    • 05-参数
    • 06-工具
    • 07-日志
    • 08-流程组件
    • 09-输入组件
    • 10-输出组件
    • 11-转换组件
    • 12-驱动
  • 🎨Git

    • 01-Git使用
  • 📝Maven

    • 01-Maven使用
    • 02-Maven配置
  • 🎯Jenkins

    • 01-Jenkins部署
    • 02-Jenkisn常见问题
  • 01-设计模式之禅
  • 02-领域驱动设计
  • 03-JavaScript高级程序设计
  • 🍓树莓派

    • 01-RaspBerry
  • 📘Markdown

    • 01-Markdown语法
    • 02-Markdown表情
    • 03-Markdown代码块语言对照
  • 📇其他

    • 01-HTML XML 转义
    • 02-GitHub
    • 03-Idea
    • 04-Nmon
    • 05-Windows
    • 06-WinSw
GitHub
🏠主页
  • 🍻Activiti

    • 01-核心API
    • 02-监听
    • 03-数据库表介绍
    • 04-常见问题
  • 📊JasperReport

    • 01-JaspersoftStudio工具使用
    • 02-JasperReport集成
    • 03-JasperReport常见问题
  • 🎬JavaScript

    • 01-Node
    • 02-VuePress
    • 03-Vue组件高度宽度
    • 04-显示器和屏幕高度
    • 05-页面地址
    • 06-归纳总结
  • 🍵Java

    • 01-Java8特性
    • 02-多线程
    • 03-Jar包
    • 04-Util
    • 05-validation注解
    • 06-反编译
    • 07-try-with-resource
    • 08-ThreadLocal内存泄漏
    • 09-Jvm
    • 10-Excel
    • 11-Lombook
    • 12-条件注解
    • 13-WebMvcConfigurationSupport
    • 14-WebMvcConfigurer
    • 15-分布式锁
    • 16-Caffeine
    • 17-DynamicDatasource
    • 18-MybatisPlus
    • 19-Swagger
    • 20-BeanPostProcessor
    • 21-Bean初始化
    • 22-ConfigurableApplicationContext
    • 23-常用注解
    • 24-ApplicationListener
    • 25-JavaDoc
    • 26-Spring-Cache
    • 27-StopWatch耗时统计
    • 28-Word
    • 29-Druid
    • 30-OpenFeign
    • 31-反射相关
    • 32-Fastjson
    • 33-Yaml
  • 💻Linux

    • 01-Linux常用命令
    • 02-Linux脚本汇总
    • 03-Yum源
    • 04-Debian
    • 05-Ubuntu
  • 🐋Docker

    • 01-Docker常用命令
    • 02-Dockerfile
    • 03-Swarm
    • 04-Stack
    • 05-Docker常见问题
    • 06-DockerCompose
    • 07-Docker应用用汇总
    • 08-Kasm
    • 09-Rustdesk
  • 🌐Nginx

    • 01-Nginx
  • 📈数据库

    • 01-Mysql
    • 02-Clickhouse
    • 03-Doris
    • 04-DRDS
  • 📉Kettle

    • 01-入门
    • 02-js脚本
    • 03-优化
    • 04-连接组件
    • 05-参数
    • 06-工具
    • 07-日志
    • 08-流程组件
    • 09-输入组件
    • 10-输出组件
    • 11-转换组件
    • 12-驱动
  • 🎨Git

    • 01-Git使用
  • 📝Maven

    • 01-Maven使用
    • 02-Maven配置
  • 🎯Jenkins

    • 01-Jenkins部署
    • 02-Jenkisn常见问题
  • 01-设计模式之禅
  • 02-领域驱动设计
  • 03-JavaScript高级程序设计
  • 🍓树莓派

    • 01-RaspBerry
  • 📘Markdown

    • 01-Markdown语法
    • 02-Markdown表情
    • 03-Markdown代码块语言对照
  • 📇其他

    • 01-HTML XML 转义
    • 02-GitHub
    • 03-Idea
    • 04-Nmon
    • 05-Windows
    • 06-WinSw
GitHub
  • 🏫技术相关

    • 🍻Activiti

      • 01-核心API
      • 02-监听
      • 03-数据库表介绍
      • 04-常见问题
    • 📊JasperReport

      • 01-JaspersoftStudio工具使用
      • 02-JasperReport集成
      • 03-JasperReport常见问题
    • 🎬JavaScript

      • 01-Node
      • 02-VuePress
      • 03-Vue组件高度宽度
      • 04-显示器和屏幕高度
      • 05-页面地址
      • 06-归纳总结
    • 🍵Java

      • 01-Java8特性
      • 02-多线程
      • 03-Jar包
      • 04-Util
      • 05-validation注解
      • 06-反编译
      • 07-try-with-resource
      • 08-ThreadLocal内存泄漏
      • 09-Jvm
      • 10-Excel
      • 11-Lombook
      • 12-条件注解
      • 13-WebMvcConfigurationSupport
      • 14-WebMvcConfigurer
      • 15-分布式锁
      • 16-Caffeine
      • 17-DynamicDatasource
      • 18-MybatisPlus
      • 19-Swagger
      • 20-BeanPostProcessor
      • 21-Bean初始化
      • 22-ConfigurableApplicationContext
      • 23-常用注解
      • 24-ApplicationListener
      • 25-JavaDoc
      • 26-Spring-Cache
      • 27-StopWatch耗时统计
      • 28-Word
      • 29-Druid
      • 30-OpenFeign
      • 31-反射相关
      • 32-Fastjson
      • 33-Yaml
  • 🏢服务器

    • 💻Linux

      • 01-Linux常用命令
      • 02-Linux脚本汇总
      • 03-Yum源
      • 04-Debian
      • 05-Ubuntu
    • 🐋Docker

      • 01-Docker常用命令
      • 02-Dockerfile
      • 03-Swarm
      • 04-Stack
      • 05-Docker常见问题
      • 06-DockerCompose
      • 07-Docker应用用汇总
      • 08-Kasm
      • 09-Rustdesk
    • 🌐Nginx

      • 01-Nginx
  • 🏩数据相关

    • 📈数据库

      • 01-Mysql
      • 02-Clickhouse
      • 03-Doris
      • 04-DRDS
    • 📉Kettle

      • 01-入门
      • 02-js脚本
      • 03-优化
      • 04-连接组件
      • 05-参数
      • 06-工具
      • 07-日志
      • 08-流程组件
      • 09-输入组件
      • 10-输出组件
      • 11-转换组件
      • 12-驱动
  • 🏬管理工具

    • 🎨Git

      • 01-Git使用
    • 📝Maven

      • 01-Maven使用
      • 02-Maven配置
    • 🎯Jenkins

      • 01-Jenkins部署
      • 02-Jenkisn常见问题
  • 🏯书籍笔记

    • 01-设计模式之禅
    • 02-领域驱动设计
    • 03-JavaScript高级程序设计
  • 🏦其他

    • 🍓树莓派

      • 01-RaspBerry
    • 📘Markdown

      • 01-Markdown语法
      • 02-Markdown表情
      • 03-Markdown代码块语言对照
    • 📇其他

      • 01-HTML XML 转义
      • 02-GitHub
      • 03-Idea
      • 04-Nmon
      • 05-Windows
      • 06-WinSw

Kettle 工具

目录

  • Kettle 工具简介
  • Kitchen 和 Pan
    • 参数列表
    • 语法定义
    • 命令示例

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列出有关指定转换中定义的命名参数的信息
maxloglinesPDI 内部保留的最大日志行数。设置为 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
      
  • 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
      
Edit this page
Last Updated:
Contributors: wangxiaoquan
Prev
05-参数
Next
07-日志