大数据的开发过程中使用的是Kettle为6.1.0版本

简介

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才能生效。 
  • 新建数据库连接 点击对话中的新建按钮

    填写数据库连接的一些信息,并点击测试,看是否连接成功,如果有异常看自己的信息是否填写正确,数据库的驱动是否有问题。

    这一步做好之后点击“获取SQL查询语句”,选取我们需要的表。

    选中表之后会有一个提示框出来

    点击是就会在SQL面板中生成新的SQL语句,我的最终显示结果如下:

    我们可以点击预览按钮,预览一下我们表中的数据。

    这是一个表输入步骤算是完成了,按照上面的步骤我们再新建一个表输入步骤,这里就不再叙述了。

  • 新建记录集连接

    记录集连接这个步骤可以实现两张表的join操作,记录集连接在连接目录中,将其拖入到画布中。

    接着我们要将“表输入”和“表输入2”连接到“记录集连接”这个步骤上,连接两个步骤的操作方法如下: 按住shift键,将鼠标箭头移至“表输入”上,然后按住鼠标左键并将箭头拖动到记录集连接上,这是一条连线就可以创建成功。 同理连接“表输入2”到“记录集连接”,最终效果如下:

    这是我们在点击“记录集连接”步骤,编辑相关属性

    上面的操作很清晰,首先选取第一个步骤,然后选取第二个步骤,接着点击对应步骤的获取连接字段,比如我们这里要选取第一个步骤的s_id字段,第二个步骤的s_id字段,两个表通过这个字段做inner join操作。 我们可以通过右键来删除不需要的字段:

    修改好之后点击确定:

*新建表输出步骤

将表输入步骤拖入到画布中,表输出步骤在输出目录中

编辑表输出步骤

这里要注意的是,要点击下面的SQL按钮,他会创建或者修改目标表,如果不点这一步的话因为目标表可能不存在或者字段不对应会导致数据插入异常。

  • 保存步骤并运行 点击画布上的小三角会弹出运行的对话框,然后点击启动,任务就会执行。

运行结果

转换运行完成之后界面如下所示:

  • 日志 日志里面记录了一些运行信息,其中有几个比较关键的输出信息: I:表示从表中读取了多少条数据 O:表示向目标表中写入了多少条数据 R:从之前的步骤中读取了多少条数据 W:向下一个步骤写入了多少条数据 上面的解释可能比较晦涩,因为这涉及到Kettle的数据流向,在后面的文章中我会结合源码进行解释。

  • 预览数据 Kettle可以预览每一个Step的部分数据,方便我们进行查看步骤之间的运行情况

Kettle 使用教程(1)—入门相关推荐

  1. python语言入门详解-python初级教程:入门详解

    python初级教程:入门详解 Crifan Li 目录 前言 .................................................................... ...

  2. Android Studio2.0 教程从入门到精通Windows版

    系列教程 Android Studio2.0 教程从入门到精通Windows版 - 安装篇 Android Studio2.0 教程从入门到精通Windows版 - 入门篇 Android Studi ...

  3. grub4dos初级教程-入门篇

    grub4dos初级教程-入门篇 2008年04月21日 星期一 15:37 0 为何写此初级教程? 假如你是第一次听说grub,你可能说我不需要grub.那么,你是否用过"一键ghost& ...

  4. 单片机独立式按键c语言程序,(原创)51单片机C语言程序设计--速学教程实例(入门篇)之独立按键(查询)...

    (原创)51单片机C语言程序设计--速学教程实例(入门篇)之独立按键(查询) /************************************************************ ...

  5. Oracle数据库基础教程:入门其实很简单

    为什么80%的码农都做不了架构师?>>>    Oracle数据库基础教程:入门其实很简单 Oracle数据库系统是目前最流行的客户/服务器数据库之一.本文集从初学者的角度出发,由浅 ...

  6. jquery validate 中文教程【入门到精通】

     jquery validate 中文教程[入门到精通] jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求 ...

  7. python基础教程博客_Python基础教程_Python入门知识

    Python基础教程频道为编程初学者提供入门前的所有基础知识,必须要掌握的一些PYTHON基础语法语句,基本的数据类型. 让大家可以更快速.更容易理解的的方式掌握Python编程所需要的基础知识,灵活 ...

  8. CSS的预编译——less语言基本语法教程(入门)

    less语言基本语法教程(入门) 一.CSS解析 css是一门标记性语言,语法简单,对使用者的要求也比较低. 缺点:1.对于css:使用css时需要书写大量的看似没有逻辑的代码,不方便维护和扩展,不利 ...

  9. wxpython中文教程_wxPython中文教程 简单入门加实例

    wxPython中文教程简单入门加实例 博客分类: Python 2 / Wxpython wxPythonPython编程浏览器脚本 wx.Window 是一个基类,许多构件从它继承.包括 wx.F ...

  10. ElasticSearch最全详细使用教程:入门、索引管理、映射详解、索引别名、分词器、文档管理、路由、搜索详解...

    墨墨导读:之前我们分享了ElasticSearch最全详细使用教程:入门.索引管理.映射详解,本文详细介绍ElasticSearch的索引别名.分词器.文档管理.路由.搜索详解. 一.索引别名 1. ...

最新文章

  1. java中byte转string的方法有哪些?
  2. PIL image.fromarray()函数
  3. Revit二次开发示例:APIAppStartup
  4. Linux下导入SQL文件
  5. SQL Server中的数据库表分区
  6. 2016ACM/ICPC亚洲区大连站题解
  7. [转载] numpy逆 python_Python之Numpy详细教程,附Python最新学习资料
  8. Ionic生命周期与注意点
  9. 资金盘FairWin漏洞系统详解:项目方可以撇开“作恶”嫌疑了?
  10. MES系统软件如何在数控加工车间应用?
  11. 关于常用序号的几点说明(数字序号顺序)
  12. Origin技巧:两个柱状图竖向重叠怎么办?
  13. 第三篇第九章火灾自动报警系统
  14. 计算机辅助设计实训报告范文,计算机辅助设计实习实习报告
  15. 网络攻防技术——域名信息
  16. 第 11 章 基于小波技术进行图像融合--MATLAB人工智能深度学习模块
  17. oracle替换图片颜色,PS人物抠图、衣服颜色更换及相片增加清晰度方法
  18. 宇宙中的“创造之柱”
  19. html内容被背景图片遮住怎么办_完美实现文字置于图片之上且背景半透明
  20. caffe-ristretto:定点举例

热门文章

  1. Linux正则表达式使用方法详解
  2. 动态链接库(一)--动态链接库简介
  3. Vue3的组合式函数
  4. windows系统重装vmware,没有vmnet8和vmnet1网卡(已解决)
  5. java单机RPG_RPG游戏(JAVA)
  6. 自媒体4大热门平台,对自媒体人友好,扶持力度大
  7. javascript控制元素隐藏的方法
  8. 华为nova5i pro鸿蒙,华为P50pro全球首发鸿蒙系统!
  9. ubuntu 热键设置_如何在Ubuntu中使用热键关闭显示器
  10. QT5.12 android 安装