【ETL】Pentaho Kettle 日志扩展开发

前言

安装过Pentaho Server的朋友应该都有一个疑问,Pentaho Server提供了Scheduler页面,可以定时调度任务执行,但是却没有相应的任务执行详情页面,看不到任务的运行细节和报错信息。其实Kettle的任务和转换都已经自带完备的日志机制,只需配置一下,将日志信息写入数据库,再开发一个前端页面,整合进Pentaho Server页面中,将数据库中的日志信息展示出来,就可以很方便的监控任务执行情况了。

日志配置

原文出处,英文好的朋友可以直接看这里
https://www.datamensional.com/setting-up-logging-tables-for-pdi-both-locally-and-on-server/
1,kettle.properties文件配置
首先要找到kettle.properties文件,这一文件一般在:

Windows:  C:.kettlekettle.properties
Linux: /home//.kettle/kettle.properties

不管是Spoon还是Pentaho Server,默认都使用上述目录存储kettle.properties文件,也可以通过设置环境变量 KETTLE_HOME 更改默认目录位置。

2,准备数据库
准备一个数据库,MySQL、SQL Server 或者Oracle都可以,新建一个库,用于存储日志信息,这里不用建数据表,数据表会在稍后配置时,由kettle建好。
在kettle中新建一个数据库连接,具体方法这里不再赘述,在数据连接上右键,点击“共享”
【ETL】Pentaho Kettle 日志扩展开发_第1张图片
共享之后可以在.kettle目录下的shared.xml文件中看到共享后的数据库连接。

3,配置Kettle
Kettle的log配置可以针对单个转换或作业,也可以配置成全局设置,所有任务都将日志写入数据库。
3.1 每个任务单独配置
图中的数据库连接remote-etl-log是在上一步中创建的数据库连接。
“数据表模式”是翻译错误,这里指的是日志数据写入哪个库(schema)
【ETL】Pentaho Kettle 日志扩展开发_第2张图片
3.2 全局配置
将一下内容写入.kettle/kettle.properties文件中

KETTLE_JOB_LOG_DB=remote-etl-log
KETTLE_JOB_LOG_SCHEMA=etl_log
KETTLE_JOB_LOG_TABLE=job_log

KETTLE_TRANS_LOG_DB=remote-etl-log
KETTLE_TRANS_LOG_SCHEMA=etl_log
KETTLE_TRANS_LOG_TABLE=trans_log

KETTLE_METRICS_LOG_DB=remote-etl-log
KETTLE_METRICS_LOG_SCHEMA=etl_log
KETTLE_METRICS_LOG_TABLE=metrics_log

KETTLE_CHANNEL_LOG_DB=remote-etl-log
KETTLE_CHANNEL_LOG_SCHEMA=etl_log
KETTLE_CHANNEL_LOG_TABLE=channel_log

KETTLE_STEP_LOG_DB=remote-etl-log
KETTLE_STEP_LOG_SCHEMA=etl_log
KETTLE_STEP_LOG_TABLE=step_log

注意这其中remote-etl-log是数据库连接名称,这个名称要和shared.xml中的connect名称相同。
在Pentaho Server中应用时,只要将kettle.properties于shared.xml文件拷贝到server的相应目录下,在server上运行的任务,就会把日志写入指定数据库中

你可能感兴趣的:(数据库,kettle开发)