关于Kettle 转换、作业日志自动配置的解决方案

来源:互联网 发布:小甲鱼windows教程 编辑:程序博客网 时间:2024/06/06 16:18

在一个项目中,一般情况下Kettle所有的转换和作业日志应该集中放在一起,便于管理和维护。但在使用Kettle的过程中,发现每次新配置一个转换或作业的时候,转换或作业的日志需要重新配置一次,感觉比较麻烦。Kettle不能把日志配置保存成一个默认值,或者在什么地方可以配置,查阅相关资料,一直没找到好的解决方法。分析Kettle相关系统表,发现借助数据库功能,可以实现Kettle转换或作业日志自动配置问题。


Kettle的转换日志配置如下:

Kettle的作业日志配置如下:

按照正常流程,每次新建一个转换或作业的时候,都需要重新配置一次日志,有时还会忘记,极大影响了的工作效率。

需要在日志数据库上创建两个触发器,即可实现上述功能。

作业日志配置:

Create or replace trigger r_job_log after insert on r_job_attribute

Declare

V_job integer;

/*

*日志表:与所建的日志表对应

*/

V_job_log varchar2(20):=TB_JOB_LOG;

V_job_entry_log varchar2(20):=TB_JOB_ENTRY_LOG;

V_job_channel_log varchar2(20):=TB_JOB_CHANNEL_LOG;

/*

*数据库连接名

*/

v_database_name varchar2(20):=’TEST’;

begin

select max(t.id_job) into v_job from R_JOB t;

--更新日志表

update r_job_attribute set value_str =v_job_log where code='JOB_LOG_TABLE_TABLE_NAME' and id_job=v_job;

update r_job_attribute set value_str =v_job_entry_log where code='JOB_ENTRY_LOG_TABLE_TABLE_NAME' and id_job=v_job;

update r_job_attribute set value_str =v_job_channel_log where code='CHANNEL_LOG_TABLE_TABLE_NAME' and id_job=v_job;

--更新数据库连接

update r_job_attribute set value_str =v_database_name where code='JOB_LOG_TABLE_CONNECTION_NAME' and id_job=v_job;

update r_job_attribute set value_str =v_database_name where code='JOB_ENTRY_LOG_TABLE_CONNECTION_NAME' and id_job=v_job;

update r_job_attribute set value_str =v_database_name where code='CHANNEL_LOG_TABLE_CONNECTION_NAME' and id_job=v_job;

end r_job_log;

 

end r_job_log;

 


转换日志配置:

create or replace trigger r_trans_log

after insert on r_trans_attribute

declare

v_trans integer;

/*

*日志表:与所建的日志表对应

*/

v_trans_log varchar2(20):='TB_TRANS_LOG';

v_STEP_LOG varchar2(20):='TB_STEP_LOG';

v_performance_log varchar2(20):='TB_PERFORMANCE_LOG';

v_channel_log varchar2(20):='TB_CHANNEL_LOG';

/*

*数据库连接名

*/

v_database_name varchar2(20):='TEST';

begin

select max(t.id_transformation) into v_trans from r_transformation t;

--更新日志表

update r_trans_attribute set value_str =v_trans_log where code='TRANS_LOG_TABLE_TABLE_NAME' and id_transformation =v_trans;

update r_trans_attribute set value_str =v_STEP_LOG where code='STEP_LOG_TABLE_TABLE_NAME' and id_transformation =v_trans;

update r_trans_attribute set value_str =v_performance_log where code='PERFORMANCE_LOG_TABLE_TABLE_NAME' and id_transformation =v_trans;

update r_trans_attribute set value_str =v_CHANNEL_LOG where code='CHANNEL_LOG_TABLE_TABLE_NAME' and id_transformation =v_trans;

--更新数据库连接

update r_trans_attribute set value_str =v_database_name where code='TRANS_LOG_TABLE_CONNECTION_NAME' and id_transformation =v_trans;

update r_trans_attribute set value_str =v_database_name where code='STEP_LOG_TABLE_CONNECTION_NAME' and id_transformation =v_trans;

update r_trans_attribute set value_str =v_database_name where code='PERFORMANCE_LOG_TABLE_CONNECTION_NAME' and id_transformation =v_trans;

update r_trans_attribute set value_str =v_database_name where code='CHANNEL_LOG_TABLE_CONNECTION_NAME' and id_transformation =v_trans;

 

end r_trans_log;

 

测试如下:

新建一个转换:

然后关闭转换窗口,在重新打开该转换,就可以看到日志自动配置完成。
运行该转换,输出转换日志:



更过文章请点击熊猫TEAM


0 0
原创粉丝点击