转换之输出组件
输出是转换里面的第二个分类,输出控件也是转换中的第二大控件,用来存储数据。输出是ETL里面的L(Load),主要做数据加载的工作。
1. Excel输出
Kettle中自带了一个是Microsoft Excel输出。Microsoft Excel输出可以输出xls和xlsx文件(适合2007以及之后)
1)选择合适的拓展名
2)点击浏览,补全输出文件的路径以及文件名 可以设置编码utf8
2. 文本文件输出
文本文件输出控件能够将数据输出成文本文件,以下为常用步骤:
- 设置对应的目录和文件名
- 设置合适的扩展名,比如txt,csv等
- 在内容框里设置合适的分隔符,比如分号,逗号,TAB等
- 在字段框里获取字段,并且给每个字段设置合适的格式
2.1 使用文本文件输出控件
设置输出路径及输出格式 设置分隔符
获取字段
3. SQL文件输出
SQL文件输出需要跟表输入做连接,然后将数据库表的表结构和数据以.sql文件的形式导出,常用来做数据库备份。使用步骤如下:
- 选择合适的数据库连接
- 选择目标表
- 勾选增加创建表语句和每个语句另起一行
- 填写输出文件的路径和文件名
- 扩展名默认为sql,这个不需要改动
如下图所示,就是常见的SQL文件配置: 表结构结果文件如下效果:
可以看到varchar类型变成了tinytext类型,kettle的SQL文件输出控件不尽完美。
4. 表输出
表输出控件可以将kettle数据行中数据直接写入到数据库中的表中,使用如下步骤:
- 选择合适的数据库连接
- 选择目标表,目标表可以是提前在数据库中手动创建好,也可以输入一个数据库不存在的表,然后点击下面的SQL按钮,利用Kettle现场创建
- 如果目标表的表结构和输入的数据结构不一致,还可以自己指定数据库字段
其中SQL按钮的作用是根据输入的表判断是否存在, 不存在生成建表语句,点击执行,kettle会帮你创建表。
5. 更新&插入/更新
更新和插入/更新控件,这两个控件是kettle提供的将数据库已经存在的记录和数据流的记录进行对比的控件。两者区别:
- 更新控件:是将数据库中的数据和数据流中的数据做对比,如果不同就更新,如果两个表的数据条数不一致,那么就报错。因此用的比较少
- 插入/更新控件:它的功能和更新控件一样,优化了两个表的数据条数不一致情形,如果有数据不存在就插入的功能,因此企业里更多的也是使用插入/更新。
6. 删除
删除控件可以删除数据库表中指定条件的数据,一般用此控件做数据库表数据删除或者跟另外一个表数据做对比,然后进行去重的操作。常见操作步骤:
- 选择数据库连接
- 寻找目标表
- 设置数据流跟目标表要删除数据的对应字段