前言:
Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。Kettle家族目前包括4个产品:Spoon、Pan、CHEF、Kitchen。本次介绍的是其中的一款产品“Spoon”,Spoon允许你通过图形界面来设计数据转换过程。
Kattle- Spoon下载地址(绿色硬盘版解压即用):
JDK1.8版本下载地址(注:Kattle仅支持1.8以上JDK):
WINDOWS环境变量配置:
为什么我们要使用Kettle?
我们在日常工作中,经常会遇到一种场景,那就是需要将一些数据批量的Insert到数据库表中,这篇文档就是基于这个操作来写的,我们不用Kettle的话,面对这种批量插入的操作,有这么几种方法:
批量编写insert语句
直接for update,从excel里面复制粘贴到plsql中
第二种方法大家肯定常用的,但是这种操作,少量的数据(2000条以内)效率还可以,一旦成千上万,甚至10w+级别的数据,指望for update有很好的表现,基本上是不可能的,基本上都会等个30分钟以上,如果DB赶上忙时,这个操作时间就更慢了。并且for update的操作,从Oracle的角度讲,相当于打开了一个事务,长时间的不关闭保持对表操作,很容易因为长事务引起锁表,我们今天介绍的Kettle,能达到什么效果呢?那就是一次性对一张表导入10w条数据,只需要短短的25s,学会灵活使用Kettle,就能让你的效率得到不一样的提升。
使用方法:
打开Kattle文件夹下Spoon.bat
点击文件-新建-转换,新建一个转换作业
页面左侧选择输入源(如EXCEL输入),用鼠标点击拖动到右侧转换区
页面左侧选择输出源(如表输处),用鼠标点击拖动到右侧转换区
点击‘表输出’图标,选择输入方向,将两个图标连接起来
双击‘EXCEL输入’,配置EXCEL输入方式
在表格类型处选择EXCEL格式
点击【浏览】选择EXCEL文件
选择好文件后,点击【增加】,该文件即出现在选中的文件中
切换到‘工作表’页面,点击【获取工作表名称】,选择数据所在SHEET页
切换到‘字段’页面,点击【获取来自头部数据的字段】,即可获取SHEET页中第一行的字段名
点击【确定】结束EXCEL配置
双击【表输出】进入数据库表配置页面
点击【新建】进入数据库链接配置页面
在配置页面依次输入
连接名称:任意填写
主机名称:数据库IP
数据库名称:ORA配置文件中的‘SID’
端口号:数据库端口号
用户名:数据库登录名
密码:数据库登录密码点击【测试】,查看数据库是否能正常连接,然后点击【确定】,完成数据库配置
在‘目标表’处输入需要导入数据的数据库表名称,并勾选‘指定数据库字段’
切换到‘数据库字段’页面,点击【获取字段】,即可获取导入表的字段
调整表字段(数据库表)和流字段(EXCEL字段)的对应关系,然后单击【确定】,结束配置
点击页面上箭头或者按键盘上F9键,开始导入工作配置
点击【启动】,正式开始导入
在‘执行结果’处可以看到数据导入情况,如果提示错误,可以在‘日志’页面查看错误原因
导入成功后如图
- 10个字段的表,建议一次性导入数据在10W左右,如果一次导入数据过多,会导致软件缓存不足,导入失败
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。