一、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,

    详细新建图文步骤,参考:https://blog.csdn.net/m0_37979608/article/details/77096201

    如果缺少驱动,则将mysql-connector这个Jar放到kettle的lib目录下即可(mvn库中有)

    使用默认的admin/admin即可登陆到资源库!

    如果使用中文进行了资源库命名,将会出现资源库无法新建的问题。解决方案,参考https://blog.csdn.net/liuwenbiao1203/article/details/77579436

    导入/导出资源库:

    导航栏->工具->导入/导出资源库,或者探索资源库进行指定目录的导出,导出为.xml文件即可!

    资源库管理:

    kettle新版管理也在右上角:

    

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

    

  4.统一参数管理

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

    kettle.properties,文件位于 java 的 user.home 目录下。(通过java SystemProp运行class文件可以查看到)

cafe babe 0000 0031 0023 0a00 0800 130a
0014 0015 0900 1400 160a 0017 0018 0700
0d0a 0005 0013 0a00 0500 1907 001a 0100
063c 696e 6974 3e01 0003 2829 5601 0004
436f 6465 0100 0f4c 696e 654e 756d 6265
7254 6162 6c65 0100 0a53 7973 7465 6d50
726f 7001 0005 7072 696e 7401 0004 6d61
696e 0100 1628 5b4c 6a61 7661 2f6c 616e
672f 5374 7269 6e67 3b29 5601 000a 536f
7572 6365 4669 6c65 0100 0f53 7973 7465
6d50 726f 702e 6a61 7661 0c00 0900 0a07
001b 0c00 1c00 1d0c 001e 001f 0700 200c
0021 0022 0c00 0e00 0a01 0010 6a61 7661
2f6c 616e 672f 4f62 6a65 6374 0100 106a
6176 612f 6c61 6e67 2f53 7973 7465 6d01
000d 6765 7450 726f 7065 7274 6965 7301
0018 2829 4c6a 6176 612f 7574 696c 2f50
726f 7065 7274 6965 733b 0100 036f 7574
0100 154c 6a61 7661 2f69 6f2f 5072 696e
7453 7472 6561 6d3b 0100 146a 6176 612f
7574 696c 2f50 726f 7065 7274 6965 7301
0004 6c69 7374 0100 1828 4c6a 6176 612f
696f 2f50 7269 6e74 5374 7265 616d 3b29
5600 2100 0500 0800 0000 0000 0400 0100
0900 0a00 0100 0b00 0000 1d00 0100 0100
0000 052a b700 01b1 0000 0001 000c 0000
0006 0001 0000 0005 0001 000d 000a 0001
000b 0000 0019 0000 0001 0000 0001 b100
0000 0100 0c00 0000 0600 0100 0000 0a00
0100 0e00 0a00 0100 0b00 0000 2c00 0200
0200 0000 0cb8 0002 4c2b b200 03b6 0004
b100 0000 0100 0c00 0000 0e00 0300 0000
0f00 0400 1000 0b00 1200 0900 0f00 1000
0100 0b00 0000 2d00 0200 0200 0000 0dbb
0005 59b7 0006 4c2b b600 07b1 0000 0001
000c 0000 000e 0003 0000 0016 0008 0017
000c 0018 0001 0011 0000 0002 0012

SystemProp.class

// Decompiled by DJ v3.7.7.81 Copyright 2004 Atanas Neshkov  Date: 2014-8-18 15:05:00
// Home Page : http://members.fortunecity.com/neshkov/dj.html - Check often for new version!
// Decompiler options: packimports(3)
// Source File Name: SystemProp.java import java.util.Properties; public class SystemProp
{ public SystemProp()
{
} public void SystemProp()
{
} public void print()
{
Properties properties = System.getProperties();
properties.list(System.out);
} public static void main(String args[])
{
SystemProp systemprop = new SystemProp();
systemprop.print();
}
}

SystemProp.jad

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

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

    kettle内置变量,参考https://blog.csdn.net/qq_22073849/article/details/70139584

  更多细节,参考:博文1博文2

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

二、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等不带任何参数,则列出帮助)

参数名列表:
/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:内存中保存日志的最长时间

Pan

/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:内存中保存日志的最长时间

Kitchen

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,再通过执行进行新建

  转换表配置如下:

  

  其他日志表类似

  监控表需要开启监控:

  

  日志简要介绍如下:

  

kettle学习笔记(三)——kettle资源库、运行方式与日志的更多相关文章

  1. Kettle学习笔记(四)— 总结

    目录 Kettle学习笔记(一)- 环境部署及运行 Kettle学习笔记(二)- 基本操作 kettle学习笔记(三)- 定时任务的脚本执行 Kettle学习笔记(四)- 总结 Kettle中设置编码 ...

  2. Kettle学习笔记(二)— 基本操作

    目录 Kettle学习笔记(一)- 环境部署及运行 Kettle学习笔记(二)- 基本操作 kettle学习笔记(三)- 定时任务的脚本执行 Kettle学习笔记(四)- 总结 打开Kettle 打开 ...

  3. Kettle学习笔记(一)— 环境部署及运行

    目录 Kettle学习笔记(一)-环境部署及运行 Kettle学习笔记(二)- 基本操作 kettle学习笔记(三)- 定时任务的脚本执行 Kettle学习笔记(四)- 总结 Kettle简介 Ket ...

  4. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  5. [Firefly引擎][学习笔记三][已完结]所需模块封装

    原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读:        笔记三主要就是各个模块的封装了,这里贴 ...

  6. JSP学习笔记(三):简单的Tomcat Web服务器

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  7. java之jvm学习笔记三(Class文件检验器)

    java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...

  8. VSTO学习笔记(三) 开发Office 2010 64位COM加载项

    原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...

  9. Java IO学习笔记三

    Java IO学习笔记三 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类. OutputStreamWriter:是Writer的子类,将输出的 ...

  10. NumPy学习笔记 三 股票价格

    NumPy学习笔记 三 股票价格 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.&l ...

随机推荐

  1. 实现卡片效果【DIV+CSS3】

    一.文字卡片效果 <html> <head> meta<charset="utf-8"> <title>文字卡片效果</tit ...

  2. JavaSE——TCP协议网络编程(一)

    实现客户端与服务端的连接: 创建TCP服务端的 ServerSocket ServerSocket :此类实现服务器套接字.服务器套接字请求通过网络传入,基于该请求执行某些操作,然后可能向请求者返回结 ...

  3. apt-get update 系列作用

    sudo apt-get update 更新源 sudo apt-get upgrade 更新已安装的包 sudo apt-get dist-upgrade 升级系统 下面摘自知乎用户回答: apt- ...

  4. Flutter:修改TextField的高度,以及无边框圆角

    修改TextField的高度可以通过decoration: InputDecoration的contentPadding进行修改,代码如下 new TextField( decoration: Inp ...

  5. 记一次寻找appbug的问题

    公司规模 3000人以上 全国500强. 从总部刚交接过来的代码. 1.找不到代码.代码部分丢失.(由于没有交接,没有任何相关文档,花了一天确定代码丢失.从总部找到部分代码) 2.查找测试库,发现测试 ...

  6. 对WebSocket技术的学习与探索(二)

    近日重新开始学习WebSocket技术,什么是WebSocket,在<对WebSocket技术的学习与探索(一)>文章中已经说明白了,还没理解可以看看这篇文章http://www.ruan ...

  7. TreeView失去焦点时亮显选中状态

    Windows Form下设置属性即可. TreeView.HideSelection = false

  8. maven 学习笔记--仓库,聚合和继承,私服搭建

    仓库 http://blog.csdn.net/wanghantong/article/details/36427433 聚合和继承 http://www.cnblogs.com/xdp-gacl/p ...

  9. 使用 jekyll + github pages 搭建个人博客

    1. 新建 github.io 项目 其实 github pages 有两个用途,大家可以在官方网页看到.其中一个是作为个人/组织的主页(每个账号只能有一个),另一个是作为 github 项目的项目主 ...

  10. python3: 数字日期和时间(1)

    ---恢复内容开始--- 1. 数字的四舍五入 Q: 你想对浮点数执行指定精度的舍入运算 A: 简单的使用内置的round(value, ndigits)函数即可. >>> roun ...