问题描述:之前每次kettle采集程序从开发环境导入到生产环境后都要打开每个trans然后修改db connection为生产环境的db connection,如果涉及的trans或job比较多的话,修改db connection需要花费较长时间,且还经常有遗漏,是否有便捷的途径解决这个问题呢???
测试方案1:直接修改kettle metadata数据库中的涉及到DB connection的table,比如开发环境导入到生产环境后,直接写sql语句修改r_step_database表中把tpush30替换成push30,语句如下:
update r_step_database c set id_database=(
select
distinct
id_database
--a.id_database,a.name,a.host_name,a.database_name,a.username,a.password
from r_database a
--inner join r_step_database b
--on a.id_database=b.id_database
where a.name='push30'
)
where c.id_database=
(
select distinct a.id_database from r_database a where a.name='tpush30'
)
经测试,此种方案不可行,尽管元数据库中已修改,但是spoon中还是显示原来的db connection,具体原因未明。
测试方案2:借鉴自Setting up Development and Production Pentaho PDI Repositories(http://www.johndz.com/2009/10/setting-up-development-and-production.html),详细步骤如下:
1、修改开发环境db connection name,使其和生产环境connection name保持一致,其中开发环境db connection指向开发数据库实例,生产环境指向生产数据库实例;
2、修改开发环境和生产环境的配置信息:
==》勾选只保存使用的数据库连接到XML、在打开/导入时询问替换连接;去选打开/ 导入时是否替换数据库连接,如下图:
3、导出开发环境特定目录下的trans和job,在repository explorer中选择特定目录,右键选中--export
4、导入到生产环境中,导入刚才从开发环境中导出的文件
测试结论:测试结果表明此种方案便捷可行!
Detaillee
2012-1-30