Kettle资源库、运行方式与日志

来自小能手俱乐部
跳到导航 跳到搜索

kettle资源库

资源库是用来保存转换任务的,用户通过图形界面创建的的转换任务可以保存在资源库中。

资源库可以使多用户共享转换任务,转换任务在资源库中是以文件夹形式分组管理的,用户可以自定义文件夹名称。

kettle资源库元数据

  • 资源库

资源库包括文件资源库、数据库资源库

Kettle 4.0 以后资源库类型可以插件扩展

  • XML文件

ktr 转换文件的XML的根节点必须是 <transformation>

kjb 作业XML的根节点是<job>

kettle资源库类型

数据库资源库:

  • 把 Kettle 的元数据串行化到数据库中,如 R_TRANSFORMATION 表保存了Kettle 转换的名称、描述等属性。
  • 在Spoon 里创建和升级数据库资源库

文件资源库:

在文件的基础上的封装,实现了 org.pentaho.di.repository.Repository 接口。是Kettle 4.0 以后版本里增加的资源库类型。 

不使用资源库:

  直接保存为ktr或kjb文件。

资源库操作

新建资源库:

  kettle7.0后新建方式略有不同,新建资源库在右上角->connect,

生成缩略图出错:无法找到文件

选择资源库的几点参考对比:

生成缩略图出错:无法找到文件

统一参数管理

像资源库的一些连接信息应该是不能硬编码写死的,所以kettle也提供了kettle.properties文件来进行全局变量的控制。 

kettle.properties,文件位于 java 的 user.home 目录下。

找到user.home下的.kettle/kettle.properties

写入变量后,使用${var.name}进行变量读取即可(类似shell的变量形式)

// 使用参数表等情况,暂不赘述

Kettle运行方式

   运行方式主要分为:图形化、命令行、API。

图形界面:Spoon

命令行:Pan、Kitchen

API:Kettle Java API 嵌入到其他应用

Spoon

本地运行:前面的都是采用本地运行,直接点击运行按钮进行运行的,不再赘述。 远程:Carte

  • Carte 是内嵌 Jetty 的 http server。
  • Carte执行命令 carte localhost 8080

需要现在服务器上运行命令,格式为carte ip 端口 (端口可以随意,只要不冲突即可) carte localhost 8080

  // 主要命令的位置(未配置PATH需要切到指定目录)

然后在转换的主对象下找到子服务器

生成缩略图出错:无法找到文件
生成缩略图出错:无法找到文件

  // 默认用户名和密码为cluster/cluster   

集群方式,暂不介绍

命令行

主要有Pan和Kitchen,但是由于项目都是以作业为主,所以还是Kitchen使用的更多

两种方式的参数列表如下:(直接敲命令kitchen等不带任何参数,则列出帮助)

生成缩略图出错:无法找到文件

Pan 参数名列表:

  • /rep : 资源库名称
  • /user : 资源库用户名
  • /pass : 资源库密码
  • /trans : 要启动的转换名称
  • /dir : 目录(不要忘了前缀 /)
  • /file : 要启动的文件名(转换文件)
  • /level : 日志级别 (Error, Nothing, Minimal, Basic , Detailed, Debug, Rowlevel)
  • /logfile : 要写入的日志文件
  • /listdir : 列出资源库里的目录
  • /listtrans : 列出指定目录下的转换
  • /listrep : 列出可用资源库
  • /exprep : 将资源库里的所有对象导出到 XML 文件中
  • /norep : 不要将日志写到资源库中
  • /safemode : 安全模式下运行: 有额外的检查
  • /version : 显示转换的版本,校订和创建日期
  • /param : 设置参数,参数格式<NAME>=<VALUE>,例如-param:FOO=bar
  • /listparam : 列出转换里已经设置好的参数。
  • /maxloglines : 内存中保存日志的最大日志行数
  • /maxlogtimeout : 内存中保存日志的最长时间

Kitchen 参数名列表:

  • /rep : 资源库名称
  • /user : 资源库用户名
  • /pass : 资源库密码
  • /job : 要启动的作业名称
  • /dir : 目录(不要忘了前缀 /)
  • /file : 要启动的文件名(转换文件)
  • /level : 日志级别 (Error, Nothing, Minimal, Basic , Detailed, Debug, Rowlevel)
  • /logfile : 要写入的日志文件
  • /listdir : 列出资源库里的目录
  • /listjobs : 列出指定目录下的作业
  • /listrep : 列出可用资源库
  • /exprep : 将资源库里的所有对象导出到 XML 文件中
  • /norep : 不要将日志写到资源库中
  • /safemode : 安全模式下运行: 有额外的检查
  • /version : 显示转换的版本,校订和创建日期
  • /param : 设置参数,参数格式<NAME>=<VALUE>,例如-param:FOO=bar
  • /listparam : 列出转换里已经设置好的参数
  • /export : 把作业依赖的所有资源导出到一个zip 文件里
  • /maxloglines : 内存中保存日志的最大日志行数
  • /maxlogtimeout : 内存中保存日志的最长时间

日志级别:

  • Error: 只记录错误信息
  • Nothing: 不记录任何信息,执行效率最高
  • Minimal: 记录最少的信息
  • Basic: 记录基本信息
  • Detailed: 记录详细信息
  • Debug: 记录调试信息
  • Rowlevel: 转换过程中的每一行都记录下来,日志最详细,执行效率最低


命令格式:/参数名:值 或-参数名=值

新建一个测试作业:

生成缩略图出错:无法找到文件

  执行作业示例:

./kitchen /rep:r1 /user:admin /pass:admin /job:j1 /dir:/ /logfile:F:/log3.txt // 更多示例,待补充

日志

文件日志位置

通过/logfile在命令行中运行Job时设置 linux中通过管道符进行输出重定向

默认的日志文件保存在 java.io.tmpdir 目录下,文件名类似spoon_xxx.log

图形化界面也有日志输出窗口

日志参数设置

Spoon中通过工具->选项进行部分日志输出窗口设置 kettle.properties中相关参数设置:

     KETTLE_MAX_LOG_SIZE_IN_LINE 变量
     KETTLE_MAX_LOG_TIMEOUT_IN_MINUTES变量

数据库日志

转换有4个日志表:

  • 转换日志表
  • 步骤日志表
  • 性能日志表
  • 日志通道日志表
  • 作业日志表
  • 作业日志表
  • 作业项日志表
  • 日志通道日志表

转换的日志设置在:编辑->设置;选择日志(作业同理)

生成缩略图出错:无法找到文件

  选择数据库连接->如果数据库中没有这个表,则可以点击下面的SQL,再通过执行进行新建,转换表配置如下:

生成缩略图出错:无法找到文件

  其他日志表类似,监控表需要开启监控:

生成缩略图出错:无法找到文件

日志简要介绍如下:

生成缩略图出错:无法找到文件