talend - 参数化tOracleInput查询和输出命名

时间:2017-02-28 15:43:51

标签: talend

我有一个视图作为tOracleInput和另一个输出组件(为简单起见,让tOutputDelimited为day)。

  1. 现在我想在tOracleInput的某些字段中添加一个where子句来过滤数据。我们的想法是在jar执行期间将这些值作为参数传递以过滤输出。

  2. 此外,输出的文件名必须来自jar执行传递的第一个参数。

  3. 任何人都可以告诉我如何实现1& 2。

    提前致谢

1 个答案:

答案 0 :(得分:3)

在您的工作中,创建2 context variables个字符串,例如SELECT parentid FROM table_name WHERE (metadatakey, metadatavalue) IN ( ('Brand', 'BMW'), ('Wheels', '17'), ('Model', 'B2017') ) GROUP BY parentid HAVING COUNT(DISTINCT metadatakey) = 3; --number of equality filter --If you don't have duplicate (metadatakey, metadatavalue) for each -- parentid then use COUNT(*) instead out_filename

where_value组件的查询框中,您可以像这样连接where值:

tOracleInput

"select * from my_view where field" + context.where_value 组件的文件名框中,您可以像这样使用上下文变量:

tOutputDelimited

现在你可以像这样在行命令中传递它们:

"/home/user/" + context.out_filename