使用shell可执行文件运行特定的talend组件

时间:2018-05-04 14:21:18

标签: talend

我的问题与此类似:Execute only one talend component。除了使用Talend Open Studio之外,我希望能够从构建作业所获得的shell可执行文件中运行特定组件。

我已经设置了我的工作,如果组件成功,OnComponentOk触发器用于运行下一个组件。要运行作业,我运行sudo bash NAME_OF_THE_JOB.sh。是否可以只运行一个组件,可能是通过将参数传递给bash shell文件?

1 个答案:

答案 0 :(得分:0)

Talend作业是一个单独的java程序。组件被转换为java函数。没有允许您执行单个组件的参数 你能做的就是以这样的方式编写你的工作来执行一个名称通过上下文变量传递的组件,但它并不漂亮。
您可以使用Run If触发器测试通过名为componentName的变量传递的组件名称:

     tRunJob_1
        /
   if("tRunJob_1".equals(context.componentName)
      /
     /
Start ---if("tJava_2".equals(context.componentName))-- tJava_2
     \
      \
   if("tRest_1".equals(context.componentName))
        \
       tRest_1

正如您所看到的,这可能会变得非常麻烦,并且需要您知道组件的名称才能运行它。

然后,您可以通过将组件名称作为参数传递来启动作业:

sudo bash NAME_OF_THE_JOB.sh --context_param componentName=tJava_2