【问题标题】:Using a Database column Value in output file name in Pentaho kettle在 Pentaho 水壶的输出文件名中使用数据库列值
【发布时间】:2016-02-29 08:07:18
【问题描述】:

我希望在输出文件名中使用数据库列值。 例子: 从进程中选择 max(id); 假设上述查询的结果是 111 -- 希望在输出文件名中使用这个值,如下所示。

输出文件名:file_111

如何在 pentaho 水壶中实现这一点? 请指教。

【问题讨论】:

  • 根据我的经验是不可能的。
  • 正如 Dirk 下面提到的,我还在文件输出步骤中使用了从字段中接受文件名选项,并使用该名称中的变量来替换该值。但我错过了“设置变量步骤”中变量的正确范围定义。

标签: pentaho kettle pentaho-spoon


【解决方案1】:

根据您要创建的文件类型,您可以简单地在流中创建一个包含文件名的列,然后使用某些输出步骤提供的Accept file name from field-函数。例如,文本文件输出确实有这个功能,遗憾的是 XML 输出没有。

要创建文件名本身,您可以例如使用 javascript 步骤,或将concat fields 步骤与Add constants 步骤一起使用。

【讨论】:

    【解决方案2】:

    请按照以下步骤操作:

    步骤一:表格输入 :- 从进程中选择 max(id) 作为 max_id;

    第 2 步:修改 Java 脚本值:- 在此步骤中放入以下代码。

    eg:- var dummy= 'C:/Users/Venkatesh/Desktop/file_'+ max_id ;
    

    在底部的同一步骤中添加字段名称是 dummy,类型是 string替换值 'Fieldname' 或 'Rename to'N

    第三步:文本文件输出:-

        select the **Add filenames to result**
        **file name field** => dummy
    

    最后执行,看看结果..

    【讨论】:

      猜你喜欢
      • 2012-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-31
      • 1970-01-01
      相关资源
      最近更新 更多