我的作业非常通用,不同的参数作为不同文件的上下文参数传递。但我仍然需要"硬编码"上下文 文件名并在TAC(Talend管理控制台)中创建多个作业以供执行。我希望做的是使用通用作业并传递用于该作业的上下文文件 来自TAC。然后,作为作业执行的一部分,将读取正在传入的上下文文件并加载上下文。 我的问题是如何实现这一点,基本上根据执行时间从TAC传递不同的上下文文件?
感谢。
答案 0 :(得分:1)
一种方法可能是使用包含上下文(或指向相应上下文文件的链接)的多个包装器作业来包围通用作业,并将这些上下文变量传递给通用子作业。
如果你有一些通用的功能需要几个不同的工作,但希望不同的数据传递给他们或希望以不同的方式呈现数据,这将很有效。
如果您随后更改了通用作业的逻辑,则所有包装器作业将立即使用新逻辑。
当然,如果您拥有企业许可证(如果您有权访问TAC,则可以使用),更好的替代方法是为此目的而设计的joblets,可用于完全更改数据源/目标并保持逻辑分离。
或者,您可以使用TAC按需传递自定义上下文变量。要执行此操作,请单击作业导体中的任务,然后按下底部的“上下文参数”按钮(触发器旁边)。在这里,您可以硬编码您想要的任何值。
我倾向于将此用于我为大多数运行设置默认上下文变量但偶尔想要在运行时调整内容的作业。所以我可能有一个允许过滤我的数据的上下文变量,我将这个默认为所有。在运行时,我可以选择我的过滤条件上下文变量,并告诉它要为此次执行过滤什么。