Kettle操作数据库导出多Excel多Sheet

点击蓝色字关注我们!

一个努力中的公众号

长的好看的人都关注了

cc996d73bf5af8a73e5d64394730e556.png

前言

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版本

fe3124376d32ba82748560723fcfd6b4.png

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

5faa09de02d086a2d800a361c10a2a1b.png

2.3 因为Kettle是绿色免安装版本,所以下载以后的zip解压后,可以直接运行

Spoon.bat:在Windows平台上运行spoon;

Spoon.sh:在Linux、AppleOSX、Solaris平台上运行Spoon。

f31e7b58fd7b16f027bed969419f41a7.png

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的工作原理简单来说就是,先创建一个作业、然后创建对应具体业务操作(转换)、然后在作业中将转换串联起来工作,最终得到需要的数据/文件。

5bcdb75e3fd614b44d96d8a844ffe2d3.png

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

3ff71daad0ce258306324af08fdaf1bc.png

2.2 创建步骤

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

8fa06b36ad3bf76edf81a4d7ce89c244.png

2.3 编辑配置转换

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

a0977de928728786cfad3bc77e6ff8ba.png

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

8816d5177fe1cf7f7a59d5eb0e2ec2f0.png

新增操作表输入

99d17f1f4258782958d081e95733f3b8.png


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

df3ade93f0963472191ff9d49f343e0e.png


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

023cdb1a7916a261410cfd2127ab2928.png


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

4090a390f377f25eba16eaa741ebc8d9.png

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

6c43bcfc1e9e81c70e8fcab877fe7426.png


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

62190e71cd080f849889a87ee20736df.png


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

4a1d8674bc4bf4f002ec02f4524e4808.png

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

8aed1f9634d5b55d702d08914e353d4a.png


然后执行得到结果

9bb127e2df086238beb647e863bc63d9.png

Kettle 导出多Excel以及多Sheet

3.1 概述

整体流程如下图,共有四个节点:

开始-获取Excel名称与Sheet名称节点-读取对应Excel和Sheet数据并写入Excel文件-结束

91a1a265c544cf544f745ecce9e40c30.png

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

1df0c78859f1326f0279a1995dc1f922.png

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

c0069828016c49bbc3e4af4b0b2263b1.png

3.3 读取对应Excel和Sheet数据并写入Excel文件

新建转换

右键空白区域,选择转换设置、添加所需的参数

fc4a44e8a098a5aad3595795db8a4804.png

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

da30a377a82cfb7a64263cecd7ef9391.png

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

94c6769284b7977b5809b9f9c8853fcb.png

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

deaeca3e129dccb155590762203eaf1f.png

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

d43db9f9495ba96b3e071350db7c3412.png

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

d44648bfcbeb15845c2f5bf9bbd45e62.png

整体流程插入START与成功节点即可完成所有设置。

3.3 执行作业

执行流程、即可得到对应的Excel

c8ca9d683e5329e62636db9fffd09193.png

查看日志输出

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

c42aa4522b1ab0b372adefa8ef5ded75.png

0ad35e0da9a6ede8622872ab47382210.png

如果对您有帮助 请点个关注,万分感谢
          

                                (QQ招聘群  710566091
                                 微信招聘群 请加图图微信)
8a586d959eb8ce32df8fc921d1c98c94.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值