3

我目前正在尝试从命令行运行 Talend 作业。由于我的生产环境参数与本地工作站上的不同,因此在目标服务器上启动作业时,我必须提供上下文参数:

kaffein@coffeeshop:~$ ./job_run.sh --context_param port=1234 --context_param server=myserver

但是,当我导出作业时,Talend Open Studio(用于数据集成)为我的所有子作业文件夹生成了Default.properties文件。这些文件包含我的本地默认上下文参数

使用生产参数(如上所示)启动我的工作然后失败,因为提供的命令行参数(--context_param 参数)似乎无法覆盖“本地”参数。

有人可以帮我解决这个问题吗?

4

3 回答 3

2

Implicit context load在. _ Job Settings_Project Settings

您可以在此处定义环境参数(例如连接设置)的文件(例如 CSV),只要它们共享相同的文件路径,您就可以将不同的上下文变量放在不同环境的文件中,并让 Talend 加载它们作为工作的一部分。

现在,当您运行作业时,它应该使用环境特定的上下文变量,因为它们是从文件中加载的。

于 2014-01-07T17:20:35.003 回答
1

如果你有一组上下文,例如 DEV、UAT、PROD 等,你可以在你的 shell 脚本中设置这个参数——所以如果你想要 PROD,你可以把这个参数添加到你的 shell

--context=PROD

这将从您的 PROD 上下文属性文件中加载您的 PROD 参数,在每个构建中,我们都修改了所有 shell 脚本以添加检查以确定它所在的环境,然后传递正确的上下文。

于 2014-02-05T12:16:22.817 回答
1

我有一个类似的问题,也选择了传播的复选框,但后来发现了这个

将参数传递给子作业

在结构化应用程序中,一个作业可以调用另一个作业,并且需要将参数传输到子作业。在 Talend Open Studio 中,这项任务很简单。当您创建子作业(即调用另一个作业的作业)时,只需单击其组件选项卡并确保选中传输整个上下文。

请注意,组件标签存在于父作业中。

我在这里找到了解决方案http://www.robertomarchetto.com/how_to_parameter_values_talend_job_command_line

为我工作。

于 2015-05-21T02:34:50.380 回答