我对talend完全不熟悉,目前我需要建立一个读取params值的工作,如
从属性文件中传递这些值并在tPostgresqlConnection组件中传递。
这是我到目前为止所尝试的
tFileInputProperties -------> tContextLoad ------> tPostgresqlConnection
Talend工作图片:
问题是作业只占用一个数据库连接而不是循环我在文件属性中定义的所有数据库连接。
有人可以建议我如何创建一个可以在tPostgresqlConnection组件上循环params值的Job吗?
答案 0 :(得分:0)
我建议您为每个数据库连接创建一个属性文件,并在每个文件中定义连接参数:
server=myServer
port=myPort
user=myUser
password=myPassword
...
(使你的参数在文件中具有相同的键)
然后你可以这样做:
tFileList -- Iterate -- tFileInputProperties -- Main -- tContextLoad -- OnComponentOk -- tRunJob
tContextLoad
组件将填充上下文参数(需要存在于主作业和子作业中)。
在tRunJob中,您封装了您的作业逻辑:使用从父作业传递下来的连接参数(服务器,端口,用户等等)连接到您的数据库,执行您需要执行的操作,并关闭您的连接你工作的结束。
请务必检查tRunJob组件设置中的“Transmit whole context
”选项。
当然,您可以使用OnSubjobOk链接在一个作业中完成所有操作,但我发现它更易读(并且易于维护)