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

来自小能手俱乐部
Yinyilong讨论 | 贡献2021年10月15日 (五) 02:26的版本
跳到导航 跳到搜索

一、kettle资源库

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

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

  1.ketle资源库元数据   • 资源库     资源库包括文件资源库、数据库资源库     Kettle 4.0 以后资源库类型可以插件扩展   • XML 文件      ktr 转换文件的XML的根节点必须是 <transformation>

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

  2.kettle资源库类型   数据库资源库:     • 把 Kettle 的元数据串行化到数据库中,如 R_TRANSFORMATION 表保   存了Kettle 转换的名称、描述等属性。     • 在Spoon 里创建和升级数据库资源库   文件资源库:   在文件的基础上的封装,实现了 org.pentaho.di.repository.Repository 接口。   是Kettle 4.0 以后版本里增加的资源库类型   

   不使用资源库:

  直接保存为ktr 或 kjb 文件。   3.资源库操作   新建资源库:   kettle7.0后新建方式略有不同,新建资源库在右上角->connect,   详细新建图文步骤,参考资源库的管理   如果缺少驱动,则将mysql-connector这个Jar放到kettle的lib目录下即可(mvn库中有)   使用默认的admin/admin即可登陆到资源库!   导入/导出资源库:   导航栏->工具->导入/导出资源库,或者探索资源库进行指定目录的导出,导出为.xml文件即可!   资源库管理:   kettle新版管理也在右上角:     

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

  4.统一参数管理   像资源库的一些连接信息应该是不能硬编码写死的,所以kettle也提供了kettle.properties文件来进行全局变量的控制   kettle.properties,文件位于 java 的 user.home 目录下。(通过java SystemProp运行class文件可以查看到)

   SystemProp.class
   SystemProp.jad

  找到user.home下的.kettle/kettle.properties   写入变量后,使用${var.name}进行变量读取即可(类似shell的变量形式)      // 使用参数表等情况,暂不赘述

二、kettle运行方式

  运行方式主要分为:图形化、命令行、API   图形界面:Spoon   命令行:Pan、Kitchen   API:Kettle Java API 嵌入到其他应用   1.Spoon   本地运行:前面的都是采用本地运行,直接点击运行按钮进行运行的,不再赘述   远程:Carte,     • Carte 是内嵌 Jetty 的 http server。     • Carte执行命令 carte localhost 8080   需要现在服务器上运行命令,格式为carte ip 端口 (端口可以随意,只要不冲突即可)

   carte localhost 8080

  // 主要命令的位置(未配置PATH需要切到指定目录)   然后在转换的主对象下找到子服务器   

  

  // 默认用户名和密码为cluster/cluster   集群方式,暂不介绍   2.命令行   主要有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
  // 更多示例,待补充

三、日志   1.文件日志位置     通过/logfile在命令行中运行Job时设置     linux中通过管道符进行输出重定向     默认的日志文件保存在 java.io.tmpdir 目录下,文件名类似spoon_xxx.log     图形化界面也有日志输出窗口    2.日志参数设置    Spoon中通过工具->选项进行部分日志输出窗口设置    kettle.properties中相关参数设置:

     KETTLE_MAX_LOG_SIZE_IN_LINE 变量
     KETTLE_MAX_LOG_TIMEOUT_IN_MINUTES变量

   3.数据库日志    转换有4个日志表: • 转换日志表 • 步骤日志表 • 性能日志表 • 日志通道日志表  作业日志表: • 作业日志表 • 作业项日志表 • 日志通道日志表   转换的日志设置在:编辑->设置;选择日志(作业同理)

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

  其他日志表类似

   监控表需要开启监控:

  

  日志简要介绍如下: