设置变量中的 Pentaho 数据集成 "Variable scope type"

Pentaho Data Integration "Variable scope type" in Set Variables

我在 PDI 中有一份工作 运行,负责将数据从不同的来源传输到不同的目标,并为特定系统提供支持。这项工作有很多子工作。我们称其为 Job MasterJob1。

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

为了使不同的变量可用于整个作业(也在主作业的父作业、子作业等中),我们使用 "Set Variables"。在这里,我们有很多不同的变量。比方说,一个变量叫做 TestVar。目前MasterJob1中这些Variables的"Variable Scope type"一直设置在"Valid in Java Virtual Machine"。

根据 PDI 文档 http://wiki.pentaho.com/display/EAI/Set+Variables,这意味着变量在虚拟机中随处可用。根据我的理解,这意味着,如果我复制作业并让 "Variable Scope type" 保持原样,变量 TestVar 可以由 MasterJob1 写入,但也可以由 MasterJob2 覆盖。

我绝对想避免 MasterJob1 可以覆盖 MasterJob2 的变量,反之亦然。但是,在 MasterJob1 中设置的变量必须在 MasterJob1 中随处可用,而在 MasterJob2 中设置的变量在 MasterJob2 中必须随处可用。因此,我继续阅读文档。据说存在 "Variable Scope Type" "Valid in the root Job"。我的假设是否正确,这是我需要使用的变量范围类型吗?

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

你的假设是正确的。

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

当转换(或作业)必须 return 一个值给调用者时使用 Valid in the parent job

很少使用 Valid in the grand-parent job,尽管我记得它在某些特殊时刻很有用。

几乎一直使用Valid in the root job