如何在Talend Open Studio作业

时间:2015-10-26 05:05:41

标签: java mysql talend

我正在创建一项工作,使用talend open studio将数据从数据库提取到CSV文件。表中有100个表,数据类型和列数不同,我想从单个作业和可自定义的SQL查询中提取数据库表中的数据。我知道如何创建和使用上下文变量。

3 个答案:

答案 0 :(得分:0)

如果我理解正确的话,你应该在每一行使用tMap重新加载 - 选择并在Excel表格或tFixedFlowInput中定义表名。

tMap settings

Whole job and results

SQL脚本:

"SELECT TOP(1) Name,  Code from mdm." + (String)globalMap.get("row4.table")

我以Microsoft SQL Server为例,但同样的脚本也适用于MySQL。

答案 1 :(得分:0)

您可以简单地使用通过tWhicheverDatabaseInput中的--context_param参数设置的上下文变量。例如。定义一个上下文变量“my_sql”,您可以在命令行中将其设置为

my_job.sh --context_param my_sql="select a,b,c from a_test_table"

然后使用context.my_sql作为数据库输入组件中的SQL。

但是,正如garpitmzn已经提到的那样,您需要动态模式来实际使用Talend中的这个未知结构。此功能仅存在于企业版中。

如果您可以使用企业版,只需声明一个“动态”类型的列,您可以通过其余的流程。

答案 2 :(得分:0)

  1. 声明本地上下文将查询声明为字符串类型。

  2. 使用变量查询准备上下文文件:MethodReference

  3. 超越查询:Operand

  4. 当您具有字符串类型的Instruction条件时,查询会抛出一些错误。 需要对此进行更多调查。否则它会起作用。