Kettle系列教程-第七章:转换流程-输出组件

Author Avatar
山小杰 7月 30, 2018
  • 在其它设备中阅读本文章

本系列教程基于Kettle 8.1(pdi-ce-8.1.0.0-365)。大部分内容同样适用于Kettle 7.x版本。
章节目录:

本章说明

输出就是数据流向的目的地。本章只介绍常用的Excel输出、文本文件输出和表输出三种输出组件。

Excel输出

Excel输出就是将数据写入到Excel表中。输出组件中有两个Excel输出组件:【Excel输出】、【Microsoft Excel输出】。【Excel输出】只能输出为Excel 2007之前(xls)格式的Excel,而【Microsoft Excel输出】可以支持Excel 2007之后(xlsx)格式的Excel,故写入数据到Excel推荐使用【Microsoft Excel输出】这个组件。
本小节以【Microsoft Excel输出】为例。
输出之前肯定要有一个数据源,转换流程如下图:
img
【表输入】组件这里就不再说怎么配置了,直接看输出组件的配置,【文件&工作表】选项卡下,【文件名】配置项用于指定文件输出路径与文件名(不含后缀),【扩展名】选项指定后缀名(Excel版本),当数据量很大的时候,需要勾选【Stream XSLX data】选项:
img
切换到【内容】选项卡,先点击【获取字段】,再点击【最小宽度】,其他配置项按需配置,即可完成配置:
img
保存转换,点击执行,查看执行结果:
img

文本文件输出

流程与上一流程类似,只需要把输出步骤换成【文本文件输出】,打开【文本文件输出】配置窗口,第一个选项卡内容,【文件名称】选项指定目标文件路径与名称(不含后缀),【扩展名】配置项指定文件后缀:
img
切换到【内容】选项卡,通常需要配置的有7项。1:默认为覆盖写入文件,若勾选【追加方式】,则追加写入;2:【分隔符】,指定字段之间的分隔符,我这里配成了中竖线”|“,右侧【插入TAB】按钮用于插入制表符”\t“;3:【封闭符】,当某个字段中的数据中含有指定的分隔符字符串时,在该数据两侧加上封闭符,表示这是一个字段中的数据。根据需要配置;4:默认勾选【头部】,会在结果文件中首行添加字段名,通常去掉勾选;5:【格式】,指定结果文件换行格式,根据需要选择;6:【压缩】,是否进行数据压缩,默认不压缩;7:【编码】,指定结果文件编码,通常指定为UTF-8。
img
上一步配置完成,切换到【字段】选项卡,先点击【获取字段】,再点击【最小宽度】,完成配置:
img
执行,查看运行结果:
img

表输出

新建一个转换,复制上一个转换中的步骤,把输出步骤换成【表输出】,打开【表输出】配置窗口,1:【数据库连接】,配置目标数据库连接;2:【目标模式】,配置目标数据库Schema(MySQL没有,不需要配置);3:【目标表】,填写目标表,该表需要已存在;4:【提交记录数量】,每次事务提交记录的行数,默认1000,表示每1000行提交一次事务;5:【裁剪表】,勾选表示写入数据之前先清空表内已有数据;6:【指定数据库字段】,若流数据字段与目标表字段名字不相同,则需要手动指定字段对应关系。
img
若目标表不存在,可以点击右下方的【SQL】按钮,会自动生成建表语句,然后点击【执行】,即可自动在目标数据库中创建目标表:
img
img
勾选【指定数据库字段】后,需要在下方的【数据库字段】标签页中配置字段对应关系,点击【获取字段】按钮,可以自动读取到流数据和目标表中的字段信息。可以直接在此窗口配置字段对应关系,也可以通过【输入字段映射】按钮配置字段映射关系:
img
img
配置完成,保存,运行,查看目标表数据,出现了中文乱码,是因为未配置数据库连接参数,如何配置,这个在前面的章节中有说明:
img

本章完!
下一章:转换流程-转换组件