Skip to content

转换之输出组件

输出是转换里面的第二个分类,输出控件也是转换中的第二大控件,用来存储数据。输出是ETL里面的L(Load),主要做数据加载的工作。

1. Excel输出

Kettle中自带了一个是Microsoft Excel输出。Microsoft Excel输出可以输出xls和xlsx文件(适合2007以及之后)
1)选择合适的拓展名
2)点击浏览,补全输出文件的路径以及文件名
Alt text 可以设置编码utf8 Alt text

2. 文本文件输出

文本文件输出控件能够将数据输出成文本文件,以下为常用步骤:

  1. 设置对应的目录和文件名
  2. 设置合适的扩展名,比如txt,csv等
  3. 在内容框里设置合适的分隔符,比如分号,逗号,TAB等
  4. 在字段框里获取字段,并且给每个字段设置合适的格式

2.1 使用文本文件输出控件

设置输出路径及输出格式 Alt textAlt text 设置分隔符 Alt text 获取字段 Alt text

3. SQL文件输出

SQL文件输出需要跟表输入做连接,然后将数据库表的表结构和数据以.sql文件的形式导出,常用来做数据库备份。使用步骤如下:

  1. 选择合适的数据库连接
  2. 选择目标表
  3. 勾选增加创建表语句和每个语句另起一行
  4. 填写输出文件的路径和文件名
  5. 扩展名默认为sql,这个不需要改动

如下图所示,就是常见的SQL文件配置:
Alt text 表结构结果文件如下效果: Alt text 可以看到varchar类型变成了tinytext类型,kettle的SQL文件输出控件不尽完美。

4. 表输出

表输出控件可以将kettle数据行中数据直接写入到数据库中的表中,使用如下步骤:

  1. 选择合适的数据库连接
  2. 选择目标表,目标表可以是提前在数据库中手动创建好,也可以输入一个数据库不存在的表,然后点击下面的SQL按钮,利用Kettle现场创建
  3. 如果目标表的表结构和输入的数据结构不一致,还可以自己指定数据库字段
    Alt text 其中SQL按钮的作用是根据输入的表判断是否存在, 不存在生成建表语句,点击执行,kettle会帮你创建表。

5. 更新&插入/更新

Alt text 更新和插入/更新控件,这两个控件是kettle提供的将数据库已经存在的记录和数据流的记录进行对比的控件。两者区别:

  • 更新控件:是将数据库中的数据和数据流中的数据做对比,如果不同就更新,如果两个表的数据条数不一致,那么就报错。因此用的比较少
  • 插入/更新控件:它的功能和更新控件一样,优化了两个表的数据条数不一致情形,如果有数据不存在就插入的功能,因此企业里更多的也是使用插入/更新。
    Alt text

6. 删除

Alt text 删除控件可以删除数据库表中指定条件的数据,一般用此控件做数据库表数据删除或者跟另外一个表数据做对比,然后进行去重的操作。常见操作步骤:

  1. 选择数据库连接
  2. 寻找目标表
  3. 设置数据流跟目标表要删除数据的对应字段
    Alt text