Kettle 使用教程(1)—入门

2024-06-10 19:08
文章标签 使用 入门 教程 kettle

本文主要是介绍Kettle 使用教程(1)—入门,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

大数据的开发过程中使用的是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)—入门的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1049018

相关文章

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

Spring WebClient从入门到精通

《SpringWebClient从入门到精通》本文详解SpringWebClient非阻塞响应式特性及优势,涵盖核心API、实战应用与性能优化,对比RestTemplate,为微服务通信提供高效解决... 目录一、WebClient 概述1.1 为什么选择 WebClient?1.2 WebClient 与

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

python使用try函数详解

《python使用try函数详解》Pythontry语句用于异常处理,支持捕获特定/多种异常、else/final子句确保资源释放,结合with语句自动清理,可自定义异常及嵌套结构,灵活应对错误场景... 目录try 函数的基本语法捕获特定异常捕获多个异常使用 else 子句使用 finally 子句捕获所

C++11右值引用与Lambda表达式的使用

《C++11右值引用与Lambda表达式的使用》C++11引入右值引用,实现移动语义提升性能,支持资源转移与完美转发;同时引入Lambda表达式,简化匿名函数定义,通过捕获列表和参数列表灵活处理变量... 目录C++11新特性右值引用和移动语义左值 / 右值常见的左值和右值移动语义移动构造函数移动复制运算符

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali