logo资料库

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

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
关于 Kettle 转换、作业日志自动配置的解决方案 在一个项目中,一般情况下 Kettle 所有的转换和作业日志应该集中放在一起,便于管理和维 护。但在使用 Kettle 的过程中,发现每次新配置一个转换或作业的时候,转换或作业的日志 需要重新配置一次,感觉比较麻烦。Kettle 不能把日志配置保存成一个默认值,或者在什么 地方可以配置,查阅相关资料,一直没找到好的解决方法。分析 Kettle 相关系统表,发现借 助数据库功能,可以实现 Kettle 转换或作业日志自动配置问题。 Kettle 的转换日志配置如下: Kettle 的作业日志配置如下: 按照正常流程,每次新建一个转换或作业的时候,都需要重新配置一次日志,有时还会忘记, 极大影响了的工作效率。
需要在日志数据库上创建两个触发器,即可实现上述功能。 作业日志配置 create or replace trigger r_job_log after insert on r_job_attribute declare /* *Kettle 作业操作-日志配置触发器 *作者:青蛙王子 *联系方式(QQ):82322156 *日期2012-07-11 */ 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; 转换日志配置: create or replace trigger r_trans_log after insert on r_trans_attribute declare /* *Kettle 转换操作-日志配置触发器 *作者:青蛙王子 *联系方式(QQ):82322156 *日期2012-07-11 */ 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; 测试如下: 新建一个转换: 然后关闭转换窗口,在重新打开该转换,就可以看到日志自动配置完成。
运行该转换,输出转换日志: 2012 年 7 月 11 日星期三 青蛙王子:82322156
分享到:
收藏