【发布时间】:2015-05-08 12:47:07
【问题描述】:
在我的 ETL 中有一个案例,我试图从命令行获取“表输出”名称。表名不对应任何流式字段的名称。有没有办法在pentaho水壶中完成它?
【问题讨论】:
-
您是从 .bat 还是 .sh 构建的?错误是什么?
-
@Abercrombieande: .sh 我想将表输出名称作为命令行参数
在我的 ETL 中有一个案例,我试图从命令行获取“表输出”名称。表名不对应任何流式字段的名称。有没有办法在pentaho水壶中完成它?
【问题讨论】:
Pentaho DI 是一个基于元数据的工具。我假设您将尝试从命令行传递输出表名称,如下所示:
.../pan.sh -file:"/home/user/sample.ktr" -param:table_output=SOMETABLE
假设上面的命令是你正在尝试的。
所以首先,改变sample.ktr (只是一个例子)的转换设置,并将参数名称:“table_output”添加到参数部分。
接下来,在表格输出步骤中,使用此参数名称,格式为:${table_output} 代替表格名称。这应该可以解决您的问题。
如果您将参数传递给作业。如上所述,添加参数的第一部分保持不变。
接下来您可以在作业中创建一个单独的转换 (.ktr) 文件,双击 ktr(来自作业文件),您将找到如下图所示的 PARAMETERS 部分。添加参数
第三,在 .ktr 文件中,重复上述步骤(第一部分),并使用 SET VARIABLE 或 TABLE OUTPUT。 SET 变量步骤将确保您在整个作业中都有可用的参数。主要取决于您的要求。
希望对你有帮助:)
【讨论】:
这应该让你知道如何去做。由于转换只是 xml,因此您可以从中读取元数据。基本上你会找到表格输出步骤并将其设置为在这种情况下为“TABLE”的变量
【讨论】: