`

Kettle 生成定制日期文本文件名(转载)

 
阅读更多

1.发现kettle3.2,生成文本文件数据时,不能在每行数据后加分隔符。

2.具体改造了org.pentaho.di.trans.steps.textfileoutput包TextFileOutput类中

 

 

 

private void writeRowToFile(RowMetaInterface rowMeta, Object[] r) throws KettleStepException
 {
  try
  { 
   if (meta.getOutputFields()==null || meta.getOutputFields().length==0)
   {
    
    for (int i=0;i<rowMeta.size();i )
    {
     if (i>0 && data.binarySeparator.length>0)
                    {
      data.writer.write(data.binarySeparator);
                    }
     ValueMetaInterface v=rowMeta.getValueMeta(i);
                    Object valueData = r[i];
                   
                    // no special null value default was specified since no fields are specified at all
                    // As such, we pass null
                    //
     writeField(v, valueData, null);
//     // 数据末尾加特殊字符
//     if(i==(rowMeta.size()-1)){
//      data.writer.write(data.binarySeparator);
//     }

    }
                data.writer.write(data.binaryNewline);
   }
   else
   {
    
    for (int i=0;i<meta.getOutputFields().length;i )
    {
     if (i>0 && data.binarySeparator.length>0)
      data.writer.write(data.binarySeparator);
 
     ValueMetaInterface v = rowMeta.getValueMeta(data.fieldnrs[i]);
     Object valueData = r[data.fieldnrs[i]];
     writeField(v, valueData, data.binaryNullValue[i]);
//     // 数据末尾加特殊字符
//     if(i==(meta.getOutputFields().length-1)){
//      data.writer.write(data.binarySeparator);
//     }

    }
                data.writer.write(data.binaryNewline);
   }

   incrementLinesOutput();
           
            // flush every 4k lines
            // if (linesOutput>0 && (linesOutput&0xFFF)==0) data.writer.flush();
  }
  catch(Exception e)
  {
   throw new KettleStepException("Error writing line", e);
  }
 }

分享到:
评论

相关推荐

    kettle输出文本文件名设有系统时间组成的动态文件名.zip

    通过这种方式,Kettle能够根据每次执行时的系统时间动态生成文本文件名,这对于需要记录数据处理时间或者防止覆盖已有文件的场景非常有用。同时,这也是Kettle灵活性的一个体现,能够适应各种复杂的数据处理需求。 ...

    kettle文本文件输出文件名为有系统时间组成的动态名

    kettle文本文件输出文件名为有系统时间组成的动态名

    kettle循环导出数据到excel生成多个sheet页

    在本场景中,我们讨论的是如何利用Kettle来实现一个特定的需求:循环导出数据到Excel并生成多个sheet页。 首先,我们需要理解这个需求的背景。在数据分析或报告生成中,有时需要根据不同的分类将数据分隔开,以便于...

    kettle动态设置输入文件路径

    - **Step属性**:在输入步骤(如文本文件输入)的配置中,找到“文件名”字段,选择“变量”或“参数”选项,并输入相应的变量名或参数名。 - **Job和Transformation的变量**:在Job中可以创建和赋值变量,...

    用kettle设计ftp上传操作手册

    Kettle 数据抽取工具FTP 上传操作...5. 使用 Kettle 可以输出数据到文本文件,需要选择文本文件输出控件,并配置输出文件的路径和名称。 6. 使用 Kettle 可以上传文件到 FTP 服务器,需要配置 FTP 服务器的连接信息。

    kettle批量解析多个xml文件

    标题中的“kettle批量解析多个xml文件”指的是使用Kettle(也称为Pentaho Data Integration,简称PDI)工具处理XML文件的批量操作。Kettle是一款开源的数据集成工具,它提供了丰富的转换和作业来实现数据抽取、转换...

    kettle-pdf用户手册

    - **7.2.3 内部变量**:由Kettle自动生成的变量,如行号、日期时间等。 #### 八、转换设置(TransformationSettings) **8.1 描述** 转换设置允许用户对整个转换进行配置,包括性能优化、日志记录等。 **8.2 ...

    kettle组件介绍

    * 文本文件输入(Text File Input):读取大量不同的文本文件,大多是通过工具生成的 CSV 文件。 * 表输入(Table Input):常用来利用连接和 SQL,从数据中读取信息,自动生成基本的 SQL 语句。 * 获取系统信息...

    Kettle工具将数据查询导出csv文件格式方法

    Kettle工具,也被称为Pentaho Data Integration (PDI),是一种强大的ETL(提取、转换、加载)工具,常用于大数据...Kettle的强大之处在于其灵活性和可扩展性,可以根据不同的需求进行定制,实现复杂的数据处理任务。

    ETL工具Kettle用户手册

    常用的数据转换步骤类型包括但不限于文本文件输入、表输入、获取系统信息、生成行、文件反序列化、XBase输入、Excel输入、XML输入、获取文件名、文本文件输出、表输出、插入/更新、更新和删除等。 每个步骤类型都有...

    kettle 详细使用手册

    Kettle的强大之处在于其高度的定制性和可扩展性,用户可以根据业务需求,通过编写自定义插件进一步扩展其功能。 总的来说,Kettle作为一个强大的ETL工具,其全面的功能和灵活的配置使得它能够应对各种复杂的数据...

    kettle手册

    - **Kettle变量:** Kettle 自带了一些预定义的变量,例如 `$systemdate` 可以获取当前日期。 - **内部变量:** 内部变量是由 Kettle 自动生成的,用于存储执行过程中的一些状态信息。 #### 四、数据库连接 - **...

    ETL工具Kettle用户手册.pdf

    如文本文件输入(TextInput)、表输入(TableInput)、获取系统信息(GetSystemInfo)、生成行(GenerateRows)、文件反序列化(De-serializefromfile,原名CubeInput)、XBase输入(XBaseinput)、Excel输入(Excel...

    ETL工具Kettle用户手册1.pdf

    转换步骤(Transformationsteps)是构成转换的各个具体操作步骤,如文本文件输入、表输入、生成行等。每个步骤都具备特定的功能,完成特定的数据处理任务。在手册中描述了多种转换步骤的类型,每种类型均对应特定的...

    Kettle学习.pdf

    ### Kettle 数据集成工具知识点详解 #### 一、Kettle简介 Kettle是一款开源的数据集成工具,主要用于数据清洗、转换及加载(ETL),能够帮助用户实现数据在不同数据库之间的高效传输与处理。 #### 二、Kettle中的...

    kettle ETL 帮助文档&开发手册

    文本文件输入步骤用于读取文本文件中的数据,并将其转换为Kettle内部的数据结构。 #### 9.6.2 表输入(Table Input) 表输入步骤从数据库表中读取数据,并支持各种过滤条件和排序规则。 #### 9.6.3 获取系统信息...

Global site tag (gtag.js) - Google Analytics