点击蓝色字关注我们!
一个努力中的公众号
长的好看的人都关注了

前言
Kettle简介
Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行, 数据抽取高效稳定。Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。
Kettle下载配置
Kettle官网:
https://sourceforge.net/projects/pentaho/files/Data%20Integration/
本文使用kettle版本为pdi-ce-7.1
2.1 打开上方官网连接、选择7.1版本

2.2选择下载ZIP版本、点击后跳转新页面,等待三秒会自动下载

2.3 因为Kettle是绿色免安装版本,所以下载以后的zip解压后,可以直接运行
Spoon.bat:在Windows平台上运行spoon;
Spoon.sh:在Linux、AppleOSX、Solaris平台上运行Spoon。

2.4 初步启动和使用可能出现的问题总结
2.4.1 Kettle是纯java编写,所以需要安装jdk配置环境变量。建议安装jdk1.8及以上环境。
2.4.2 Kettle默认启动配置是分配内存256G、数据量大、大对象时很容易出现内存溢出现象
if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms1024m" "-Xmx2048m" "-XX:MaxPermSize=256m"
改为:
if"%PENTAHO_DI_JAVA_OPTIONS%"==""set PENTAHO_DI_JAVA_OPTIONS="-Xms2048m""-Xmx4096m" "-XX:MaxPermSize=512m"Kettle 使用
2.1 了解如何使用Kettle
双击Spoon.bat 文件打开Kettle、界面如下图:
Kettle的工作原理简单来说就是,先创建一个作业、然后创建对应具体业务操作(转换)、然后在作业中将转换串联起来工作,最终得到需要的数据/文件。

整个操作业务流程类似于工作流,从开始节点到完成。例如:

2.2 创建步骤
窗口左上角点击文件、选择新建、新建转换

2.3 编辑配置转换
如上2.2操作后,窗口打开的就是新增的步骤(转换)左侧窗口中罗列的就是相关操作工具、右侧空白则是接下来步骤中要执行的操作。

在右侧窗口空白处鼠标右键即可进行设置转换、可以设置转换的名称、以及使用到的参数等

新增操作表输入

鼠标选择刚拖进去的表输入

然后进行设置、选择编辑步骤、设置步骤名称与数据库连接。

设置数据库连接的时候注意,需要单独下载对应数据库驱动jar包、不然会报错

数据库驱动jar包放在data-integration\lib 文件夹下

设置数据库连接后记得验证下

数据库连接设置好以后,就可以创建或执行对应的sql、sql编写完成后,可以点击预览查看结果。

表输入配置好以后、再添加一条作业(复制记录到结果),也就是将表输入的查询结果复制到结果中,然后再做后续操作。鼠标选择表输入、滑轮将链接关系到作业(复制记录到结果)上,即可绑定关系。

然后执行得到结果

Kettle 导出多Excel以及多Sheet
3.1 概述
整体流程如下图,共有四个节点:
开始-获取Excel名称与Sheet名称节点-读取对应Excel和Sheet数据并写入Excel文件-结束

3.2 获取Excel名称与Sheet名称节点
新建转换
创建:表输入、新建创建数据库连接,编写读取Excel名称与Sheet的Sql

创建:复制记录到结果
获取Excel名称与Sheet名称节点如图:

3.3 读取对应Excel和Sheet数据并写入Excel文件
新建转换
右键空白区域,选择转换设置、添加所需的参数

创建:表输入、新建创建数据库连接,编写读取Excel名称与Sheet的Sql

创建:Microsoft Excel 输出、右键编辑步骤、设置导出excel的格式

如果输出记录存在,覆盖已存在的单元格

滑动窗口至最下方,点击获取字段、获取导出到Excel的所有字段、如果字段不需要导出,那么单独删除行即可

读取对应Excel和Sheet数据并写入Excel文件节点如图:

整体流程插入START与成功节点即可完成所有设置。
3.3 执行作业
执行流程、即可得到对应的Excel

查看日志输出
打开导出Excel存放的文件夹即可看到所有的Excel文件


如果对您有帮助 请点个关注,万分感谢
(QQ招聘群 710566091
微信招聘群 请加图图微信)
660

被折叠的 条评论
为什么被折叠?



