kettle_简单入门
简介
Kettle是一款纯Java开发的ETL工具,它是跨平台的,所以它可以在Window、Linux、Unix上运行。注意什么是ETL,读者可以自行百度了解,我的理解是将一个数据库的数据导入到另外一个数据库中,当让这种说法并不严谨,因为数据传输过程中肯定还有很多转换步骤。我们可以在它的官网上下载最新的工具包,也可以在Github上面下载Kettle的源码。
启动Kettle界面
我们从官网下载Kettle的压缩包之后解压到自己想要的目录中,我们可以看到Kettle中根目录叫做data-integration,打开这个文件夹我们可以看到很多脚本,因为我们是在Windows下使用,所以主要关注.bat结尾的脚本。
上面我标示出了四个主要的.bat文件,其中Spoon.bat是与用户界面有关的,我们点击Spoon.bat就可以启动Kettle的用户界面了。 (ps:忘记说了,Kettle是Java写的,所以请务必配置好jdk,不然肯定无法正常使用的)
新建转换(Transformation)
现在假设我们要新建一个转换,它实现的功能是将MySQL中的两张表做Join操作,然后将处理的结果集写入到目标表中,我们来看看如何实现这些步骤。
我们点击菜单栏的文件->新建->转换
新建一个转换之后会打开一个画布,我们可以在上面添加步骤(Step)
在左边我标红的地方有很多文件夹,这些文件夹中有很多不同功能的组件,比如我们首先要从源表一中抽取数据,这个步骤在表输入目录下,我们可以点击表输入文件夹来看看。
这个表输入组件我们可以直接拖入到右边的画布中。
编辑表输入 双击上面的表输入步骤会弹出下面这个对话框
上面的表输入对话框中有很多可以修改的属性,有些我也不是很清楚,我将我了解到的说明一下吧。 步骤名称:该属性应该很好理解,就是该步骤的一个名称,但要注意的是一个转换中的步骤名称应该全局唯一,不能重复。 数据库连接:这个我们新建一个数据库连接,可以选取我们要抽取数据的表 SQL:这个面板中的SQL是根据你数据连接中选中的表动态生成的 记录数量限制:这个属性指的是从源表中抽取多少条数据,默认为0表示数量没有限制,会将源表中所有的数据给抽取出来。
- 添加JDBC驱动到Kettle的目录 我这里连接的是MySQL,所以需要添加MySQL的JDBC驱动,要注意的是,添加驱动之后需要重启Kettle才能生效。
- 添加JDBC驱动到Kettle的目录 我这里连接的是MySQL,所以需要添加MySQL的JDBC驱动,要注意的是,添加驱动之后需要重启Kettle才能生效。
新建数据库连接 点击对话中的新建按钮
填写数据库连接的一些信息,并点击测试,看是否连接成功,如果有异常看自己的信息是否填写正确,数据库的驱动是否有问题。
这一步做好之后点击“获取SQL查询语句”,选取我们需要的表。
选中表之后会有一个提示框出来
点击是就会在SQL面板中生成新的SQL语句,我的最终显示结果如下:
我们可以点击预览按钮,预览一下我们表中的数据。
这是一个表输入步骤算是完成了,按照上面的步骤我们再新建一个表输入步骤,这里就不再叙述了。
新建记录集连接
记录集连接这个步骤可以实现两张表的join操作,记录集连接在连接目录中,将其拖入到画布中。
接着我们要将“表输入”和“表输入2”连接到“记录集连接”这个步骤上,连接两个步骤的操作方法如下: 按住shift键,将鼠标箭头移至“表输入”上,然后按住鼠标左键并将箭头拖动到记录集连接上,这是一条连线就可以创建成功。 同理连接“表输入2”到“记录集连接”,最终效果如下:
这是我们在点击“记录集连接”步骤,编辑相关属性
上面的操作很清晰,首先选取第一个步骤,然后选取第二个步骤,接着点击对应步骤的获取连接字段,比如我们这里要选取第一个步骤的s_id字段,第二个步骤的s_id字段,两个表通过这个字段做inner join操作。 我们可以通过右键来删除不需要的字段:
修改好之后点击确定:
*新建表输出步骤
将表输入步骤拖入到画布中,表输出步骤在输出目录中
编辑表输出步骤
这里要注意的是,要点击下面的SQL按钮,他会创建或者修改目标表,如果不点这一步的话因为目标表可能不存在或者字段不对应会导致数据插入异常。
保存步骤并运行 点击画布上的小三角会弹出运行的对话框,然后点击启动,任务就会执行。
运行结果
转换运行完成之后界面如下所示:
日志 日志里面记录了一些运行信息,其中有几个比较关键的输出信息: I:表示从表中读取了多少条数据 O:表示向目标表中写入了多少条数据 R:从之前的步骤中读取了多少条数据 W:向下一个步骤写入了多少条数据 上面的解释可能比较晦涩,因为这涉及到Kettle的数据流向,在后面的文章中我会结合源码进行解释。
预览数据 Kettle可以预览每一个Step的部分数据,方便我们进行查看步骤之间的运行情况
kettle_简单入门的更多相关文章
- 用IntelliJ IDEA创建Gradle项目简单入门
Gradle和Maven一样,是Java用得最多的构建工具之一,在Maven之前,解决jar包引用的问题真是令人抓狂,有了Maven后日子就好过起来了,而现在又有了Gradle,Maven有的功能它都 ...
- [原创]MYSQL的简单入门
MYSQL简单入门: 查询库名称:show databases; information_schema mysql test 2:创建库 create database 库名 DEFAULT CHAR ...
- Okio 1.9简单入门
Okio 1.9简单入门 Okio库是由square公司开发的,补充了java.io和java.nio的不足,更加方便,快速的访问.存储和处理你的数据.而OkHttp的底层也使用该库作为支持. 该库极 ...
- emacs最简单入门,只要10分钟
macs最简单入门,只要10分钟 windwiny @2013 无聊的时候又看到鼓吹emacs的文章,以前也有几次想尝试,结果都是玩不到10分钟就退出删除了. 这次硬着头皮,打开几篇文章都看完 ...
- 【java开发系列】—— spring简单入门示例
1 JDK安装 2 Struts2简单入门示例 前言 作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已.这次讲到spring,这个应该是SSH中的重量级框架,它主要包含两个内容:控制反转 ...
- Docker 简单入门
Docker 简单入门 http://blog.csdn.net/samxx8/article/details/38946737
- Springmvc整合tiles框架简单入门示例(maven)
Springmvc整合tiles框架简单入门示例(maven) 本教程基于Springmvc,spring mvc和maven怎么弄就不具体说了,这边就只简单说tiles框架的整合. 先贴上源码(免积 ...
- git简单入门
git简单入门 标签(空格分隔): git git是作为程序员必备的技能.在这里就不去介绍版本控制和git产生的历史了. 首先看看常用的git命令: git init git add git comm ...
- 程序员,一起玩转GitHub版本控制,超简单入门教程 干货2
本GitHub教程旨在能够帮助大家快速入门学习使用GitHub,进行版本控制.帮助大家摆脱命令行工具,简单快速的使用GitHub. 做全栈攻城狮-写代码也要读书,爱全栈,更爱生活. 更多原创教程请关注 ...
随机推荐
- Mac--查看公钥
打开macbook的终端输入以下命令: $ cd ~/.ssh $ ls $ cat id_rsa.pub
- STM32F103片外运行代码分析
STM32F103片外运行代码分析 STM32F103有三种启动方式: 1.从片内Flash启动: 2.从片内RAM启动: 3.从片内系统存储器启动,内嵌的自举程序,用于串口IAP. 无法直接在片外N ...
- ARM v7-A 系列CPU的MMU隐射分析
ARM v7-A 系列CPU的MMU隐射分析 摘要:ARM v7-A系列的CPU加入了很多扩展,如多核处理器扩展.大物理地址扩展.TrustZone扩展.虚拟化扩展.若支持大的物理地址,则必须支持多核 ...
- c++中如 <类名 类名::对象> 是什么意思
CComplex CComplex::add(CComplex &x) (这一句 不懂为何 类名 类名::对象) { CComplex y(real+x.real,image+x.image) ...
- CF1066B Heaters(贪心)
题意描述: Vova先生的家可以看作一个n×1的矩形,寒冷的冬天来了,Vova先生想让他的家里变得暖和起来.现在我们给你Vova先生家的平面图,其中111表示这个地方是加热炉,0表示这个地方什么也没有 ...
- 爬虫——Scrapy框架案例一:手机APP抓包
以爬取斗鱼直播上的信息为例: URL地址:http://capi.douyucdn.cn/api/v1/getVerticalRoom?limit=20&offset=0 爬取字段:房间ID. ...
- 常用的JavaScript设计模式(一)Constructor(构造器)模式
在es6中,新增了一个语法糖--class,可以说是为JavaScript引入了类的概念.而在传统的JavaScript中,则是通过构造器生成实例对象的. JavaScript支持特殊的constru ...
- Spark_安装配置_运行模式
一.Spark支持的安装模式: 1.伪分布式(一台机器即可) 2.全分布式(至少需要3台机器) 二.Spark的安装配置 1.准备工作 安装Linux和JDK1.8 配置Linux:关闭防火墙.主机名 ...
- jetson tx2 安装tensorflow
官方的安装方法很简单: 可能会出现以下错误: 说的是dist-packages 权限不允许 consider using the "--user" to option or che ...
- [BZOJ4552][Tjoi2016&Heoi2016]排序(二分答案+线段树)
二分答案mid,将>=mid的设为1,<mid的设为0,这样排序就变成了区间修改的操作,维护一下区间和即可 然后询问第q个位置的值,为1说明>=mid,以上 时间复杂度O(nlog2 ...