Pentaho数据集成"可变范围类型"在Set Variables中

时间:2017-10-12 12:41:54

标签: kettle pentaho-data-integration

我在PDI中运行的作业是将数据从不同的源传输到不同的目标,然后返回特定系统。这份工作有很多孩子的工作。让我们称之为Job MasterJob1。

我们有相同的系统运行用于其他目的。因此,我想在PDI中复制该作业。在这里,我只需要更改一些设置。让我们称之为MasterJob2。

为了使整个作业可以使用不同的变量(也包括主作业的父作业,子作业等),我们正在使用" Set Variables"。在这里,我们有很多不同的变量。让我们说,一个变量叫做TestVar。目前,"可变范围类型" MasterJob1中的这些变量始终设置为"在Java虚拟机中有效"。

根据PDI文档http://wiki.pentaho.com/display/EAI/Set+Variables,这意味着,变量在虚拟机中随处可用。根据我的理解,这意味着,如果我复制工作并让"可变范围类型"就像它一样,Variable TestVar可以由MasterJob1编写,但也可以被MasterJob2覆盖。

我明确地希望避免MasterJob1可以覆盖MasterJob2的变量,反之亦然。但是,在MasterJob1中设置的变量必须在MasterJob1中随处可用,并且MasterJob2中的变量必须在MasterJob2中随处可用。因此,我继续阅读文档。它表示存在"可变范围类型" "在根作业中有效"。我的假设是正确的,这是我需要使用的可变范围类型吗?

不幸的是,我没有那么多经验,我希望你能告诉我这是不是正确的方法?!创建测试环境对我来说需要几天时间。因此,我希望你能给我一个简单的"是的,去吧#34;或正确的解决方案。

1 个答案:

答案 0 :(得分:2)

你的假设是正确的。

避免在服务器上使用Valid in the virtual machine作业,尽管在开发PC上进行调试非常方便。

当转换(或作业)必须将值返回给调用者时,请使用Valid in the parent job

极少使用Valid in the grand-parent job,虽然我记得有些特殊时刻它很有用。

几乎所有时间都使用Valid in the root job