一、Kettle资源库概述
资源库在Kettle中用于存储转换和作业任务,允许用户通过图形界面创建的任务保存至资源库中,实现多用户的共享与协作。资源库中的任务按文件夹形式组织,支持用户自定义命名。
1. Kettle资源库元数据
资源库分为文件资源库和数据库资源库两种类型,自Kettle 4.0版本起,资源库类型支持插件扩展。其中,.ktr文件用于存储转换任务,其XML根节点为;.kjb文件用于存储作业任务,其XML根节点为。
2. Kettle资源库类型
数据库资源库将Kettle的元数据序列化存储于数据库中,例如R_TRANSFORMATION表存储了转换任务的名称、描述等属性。在Spoon中可以创建和升级数据库资源库。文件资源库则是基于文件的封装,实现了org.pentaho.di.repository.Repository接口,是Kettle 4.0之后新增的资源库类型。若不使用资源库,则可以直接将任务保存为.ktr或.kjb文件。
3. 资源库操作
自Kettle 7.0版本后,新建资源库的方式有所变化,用户需在右上角选择Connect来创建新的资源库。如果缺少必要的数据库驱动,可将相应的JAR包放置于Kettle的lib目录下。默认情况下,使用admin/admin作为登录凭证。资源库的导入和导出功能可通过导航栏中的工具菜单访问,也可以通过资源库浏览器指定目录进行导出,导出文件格式为XML。
4. 参数管理
为了提高灵活性,Kettle提供了kettle.properties文件用于全局变量的管理,该文件位于Java的user.home目录下。通过编辑此文件,可以动态地调整连接信息等配置,避免硬编码带来的维护问题。
二、Kettle运行方式
Kettle支持三种运行方式:图形界面(Spoon)、命令行(Pan和Kitchen)以及API集成。每种方式适用于不同的应用场景。
1. 图形界面 - Spoon
Spoon是Kettle的主要图形界面工具,支持本地和远程运行任务。对于远程运行,Kettle提供了一个名为Carte的服务,它是一个基于Jetty的HTTP服务器,可以通过命令行启动(如carte localhost 8080)。用户需要确保服务器上正确配置了环境,并使用正确的IP地址和端口号启动服务。
2. 命令行 - Pan 和 Kitchen
Pan用于执行转换任务,而Kitchen用于执行作业任务。两者均支持丰富的命令行参数,例如指定资源库、用户、密码、任务名称、日志级别等。详细的参数列表可以通过直接运行命令(如kitchen --help)获取。命令行方式特别适合于自动化脚本和批处理任务。
3. API 集成
通过Kettle Java API,开发者可以将Kettle的功能无缝集成到自己的应用程序中,实现更加灵活的数据处理流程。
三、日志管理
有效的日志管理对于故障排查和性能优化至关重要。Kettle支持多种日志记录方式,包括文件日志和数据库日志。
1. 文件日志
通过命令行参数/logfile可以指定日志文件的保存位置。在Linux系统中,还可以利用管道符实现输出重定向。默认情况下,日志文件会保存在java.io.tmpdir指定的临时目录中,文件名通常为spoon_xxx.log。图形界面中也提供了日志输出窗口。
2. 日志参数设置
在Spoon中,用户可以通过工具->选项对日志输出窗口进行配置。此外,kettle.properties文件中包含了一些重要的日志参数,如KETTLE_MAX_LOG_SIZE_IN_LINE和KETTLE_MAX_LOG_TIMEOUT_IN_MINUTES,用于控制日志文件的大小和超时时间。
3. 数据库日志
转换和作业任务均支持数据库日志记录,包括转换日志表、步骤日志表、性能日志表和日志通道日志表。作业任务还包括作业日志表和作业项日志表。这些日志表的创建和配置可以在Spoon中完成,具体步骤为:编辑->设置->选择日志。如果目标数据库中不存在相应的表,可以通过点击SQL按钮生成建表语句并执行。