如果我们需要将数据导出Excel的话,我们可能会直接复制,然后粘贴出来,但是数据量大的话,就不好用了;
或者使用Java等开发语言,写代码,导出Excel;或者一些数据库连接工具自带的导出功能。
其实,我们用Kettle的话,还是很方便的,但是平时用下来,Kettle的这个功能还是有些缺陷的,比如导出Excel2007+的时候,经常会报错,我一直也没有解决,这次记录博客顺便研究看看。
1. Kettle的下载及使用
见我的kettle快速入门
Kettle中,主要有2中任务,一个是作业,一个是转换。一般来说,转换是一系列具体的操作,比如:调度SP,导出Excel等等;作业的话,就是按照一定流程来调度一系列转换。大概是这样,实际上,他们也是可以嵌套调用的,我们后面可以再讨论。
2. 转换-将数据导出为Excel
为了实现这个功能,需要:
- 连接到数据库
- 导出为Excel
新建一个转换,
新建,之后,工具箱中,有很多的控件,都可以使用,
很多我也没有用过,大家可以自行去尝试使用
好了,下面,我们就开始介绍我们这次的主题,导出数据到Excel
既然,是导出数据,说明我们肯定有一个源头,一个目标,源头是我们的一个数据库,我们得先连接到这个数据库
新建数据库连接
我们在主对象树中,DB连接上,右键单击,新建
可以看到,很多的数据库可以选择,只需要填写基本的连接信息就可以了
我们这里连接的是Postgresql,配置好后,测试下,(坑,刚刚在windows上装的数据库,一直连不上,白名单都加好了,就是不行,结果是防火墙忘关了。。)
好了,可以连接到数据库了,下面,得把数据导出啊,需要使用输入这个控件核心对象的输入下面,有很多的控件,这次只使用表输入,因为是直接从数据库中拿数据
这里直接就是拖过去就行了,双击之后,可以编辑,这里就使用刚才的数据源连接,然后查询一张表,
表的话,随便create一张就可以了,还可以预览数据
源头好了,同样的思路,需要一个目标,就是输出了,输出到Excel
拖好之后,双击就可以编辑了,主要关注2个配置,一个是excel保存地址,和字段
选择一个地址,然后得,看下字段那个tab,
单击,获取字段,就可以从源头获取表中的字段了,当然,可以只导出需要的字段,
一步一步来的话,上面获取,可能会获取不到,因为,有一步,需要将2个控件,连起来,源头有了,目标也有了,得让他们关联起来(按住shift拉线),在Kettle中,这个连线叫做Hop(跳),就像一个管道一样,将数据流从一个点,指向另一个点。
都好了,以后,就运行下
和Java里面,一样,绿色的话,就代表成功了
看下文件
一个表拉出多个excel(一个excel最多只能放100万条数据)
输出不要选execl而是选MicrosoftExcel,数据行选了70万分割成一个excel,文件名和路径修改了下
字段映射可以在内容一项找到
https://www.jianshu.com/p/1766fcac06f1 。个人笔记作笔记使用博客,侵删