Kettle spoon 工具实战分享

article/2025/10/30 21:22:25

今天给大家带来一款ETL工具kettle spoon的实践分享

Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。

Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。

Kettle中有两种脚本文件transformationjobtransformation完成针对数据的基础转换,job则完成整个工作流的控制。

作为Pentaho的一个重要组成部分,现在在国内项目应用上逐渐增多。

这次我就通过工作中使用到的情况来给大家做一个分享也算是我自己的总结。

 

 

Kettle spoon 工具实战分享

 

因为我工作的性质,其防火墙和对数据的来源比较敏感,大致上的流程是从外网的数据库中通过防火墙抽取到边界审计的数据库中,再同步到开发库使用开发后正式库上线。

那么抽取和同步的过程中使用的工具kettle spoon则是今天主要的分享内容,也是通过工作实践的过程分享。

那么spoon工具是什么?具体是用来做什么的?

前面我已经说了在抽取和同步中使用的工具。

首先我们要说一下ETL(数据仓库技术)。ETL(Extract-Transform-Load)是用来描述将数据从来源段经过抽取(extract)、交互转换(transform)、加载(load)至目的端的过程。ETL常用在数据仓库,但其对象不限于数据仓库。ETL是构建数据仓库的重要一环,用户从数据源抽取所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。

那么spoon则是一款强大的ETL工具。

关于ETL的具体内容,转换过程不是我这次主要的分享内容,有兴趣或工作有需求的小伙伴可以自行去网上查一查。在这里我就简单说一下ETL的架构。

ETL的架构:

ETL架构中,数据的流向是从源数据流到ETL工具,ETL工具是一个单独的数据处理引擎,一般会在单独的硬件服务器上,实现所有数据转化的工作,然后将数据加载到目标数据仓库中,如果要增加整个ETL过程的效率,则只能增强ETL工具服务器的配置,优化系统处理流程(一般可调的东西非常少)。IBMdatastageInformaticapowercenter原来都是采用的这种架构。

ETL架构的优势:

1.     ETL可以分担数据库系统的负载(采用单独的硬件服务器)

2.     ETL相对于EL-T架构(感兴趣的小伙伴百度一下)可以实现更为复杂的数据转化逻辑

3.     ETL采用单独的硬件服务器。.

4.     ETL与底层的数据库数据存储无关。

那么在简单了解ETL的内容后就开始我们这次的实践分享。

*** spoon这款工具十分强大,但是我目前编写的脚本相对于比较简单,如果有兴趣或工作中可以用到的小伙伴可以之后自行学习,也欢迎讨论。

1.      脚本的思路:我是需要两张表的数据同步更新,所以需要进行两张表的数据对比,如果审计数据表中与源数据表的数据量不一致,则需要同步更新一次,那么判断数据不一致的方法则是:在表输入模块中编写sql语句,再进行合并记录判断并映射,如果不一致则进行更新。把需要同步更新的表格一一进行编写并保存

表同步脚本编写后需要创建新的作业,用来执行你所写的脚本,以便他实时更新。在作业执行过程中最好不要一次进行多张表的更新,否则会非常占用内存,所以在这里需要写一个case,每次进行随机的执行一张同步表的脚本。执行作业就可以实时同步数据表啦!

在这里编写脚本的大概框架就呈现出来了,那么在脚本运行的过程中,因为我这两个数据库分别是MySQL和Oracle ,所以会出现数据类型不一致的问题,因此在脚本中又添加了字段选择的模块进行字段的处理。

下面就进行我使用的模块一一介绍吧

2.      在这个过程中我用到的主要模块是表输入,字段选择,值映射,合并记录,插入/更新,Switch/Case。


1.      首先要在表输入模块中新建你需要连接的数据库,可以根据不同的连接类型进行选择,总之连接类型还是很多的;在此模块中还能进行sql语句的编写如下图。

那这两个表输入模块中写的sql语句只是想判断一下两张表的数据是否一致。

 

2.那么在字段选择模块中 就是选择我所写的sql语句中判断的两个标志

 

合并记录的模块中则是设置表输入的新数据与旧数据选择,因为同步外网的数据,所以旧数据是我边界审计的数据库,新数据就是连接外网的数据库。那么两张表会依据你设置的匹配关键字和数据字段进行比较是否一致。

3.在值映射模块中可以选择你要映射的原值和目标值进行替换如下图:

4.这时候再使用一个字段选择模块,选择上面的关键字

5.那么在最后的表输入中就可以选择你要写入的表 也就是旧数据的表,配上sql语句,如下图

6.最后使用插入/更新模块将整个表的内容全部插入

那么关于这张表的更新脚本就完成啦

8.工作中是多张表的更新,所以就有了刚才的那个脚本。

这里连接的当然是我要更新的数据库了,写了一个随机生成数的语句,每执行一次则随机更新一张表格。

9.那么刚才创建的是转换脚本,为了实时更新,我们则需要创建一个作业

10.那么在执行的模块中 设置刚才建好的脚本

11.start成功无需设置运行这个作业 就可以实时更新啦

 

 

那这次内容就到这里。

 

我工作的地方现在用这个工具爬取网站上的天气预报并传到我们数据库中,实现实时更新,然后交给开发那边将网站上加入天气预报的功能。。。简直就是盗用别人的东西嘛,但是使用这个工具就是很简单的操作就可以完成这个任务。

工作中如果需要用到这方面的同学可以试一试,真的是一款很强大的工具。欢迎大家一起讨论!


http://chatgpt.dhexx.cn/article/g58XM7BW.shtml

相关文章

Springboot+Kettle(Spoon)

Springboot集成kettle实战 介绍项目截图javakettle实战代码1 pom.xml2 kettleUtil3 业务层方法a 资源库业务b 转换的相关业务c 完整代码 介绍 kettle就不介绍了,Web界面极其简单、丑陋,生产环境无法投入使用.所以这篇实战内容是springboot结合kettle的web端执行已经…

spoon新手入门教程

Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。Kettle这个ETL工…

集线器、交换机与路由器有什么区别?

转发自:https://mp.weixin.qq.com/s/YXWBw3aFTSEFvkg_oN9eQA 我相信我们都玩过一款特别火的游戏:帝国时代。小时候想要玩帝国时代,需要到软件城购买盗版光盘安装(大概3块钱一张左右的样子,当时已经觉得很便宜了&#…

集线器和中继器

首先要明白,集线器和中继器两者都属于物理层的设备。物理层设备和其他层次的设备(如:交换机、网桥、路由器)最大的区别在于:集线器和中继器工作在同一个网段下的,而交换机、路由器等设备是工作在不同网段下的。 网段:…

# 网络中的一些基本概念 网卡、集线器、网桥(自学用)

# 网络中的一些基本概念 网卡、集线器、网桥 1. 网卡 1. 有几个网卡就有几个MAC地址 2. 计算机上的网卡来接收数据,网卡将数据传递给上一层 3. 发送数据:需要知道IP地址,但最终是根据MAC地址(网卡地址),输送…

【计算机网络-数据链路层】集线器、网桥、交换机

本文许多文字和图片使用了湖科大教书匠(高军老师)的 PPT,在此表示感谢。正是他让非科班的我能以奇妙的方式走进网络的世界。 文章目录 1 【物理层】集线器(Hub)——共享式以太网1.1 为什么使用集线器?1.2 …

【计网】(一) 集线器、网桥、交换机、路由器等概念

这篇文章将介绍计算机网络中的一些基础概念,以及生活中我们所常见的一些设备(交换机、路由器等)的作用。 目录 ✅ 互联网的概念✅ 什么是网络协议✅ 网络互联模型✅ 计算机之间是如何通信的🐾 网线直连🐾 同轴电缆(Co…

扩展以太网——集线器

一、集线器 1、集线器组建的以太网其实是一个冲突域,因为其共享信道,会存在信号冲突。 2、集线器是物理层设备,信号经过它的时候直接传输,没有存储再转发的过程。 3、集线器和网线一样工作在物理层。 二、集线器的优缺点 1、…

集线器、交换机与路由器有什么区别和联系?

转载:集线器、交换机与路由器有什么区别? 我相信我们都玩过一款特别火的游戏:帝国时代。小时候想要玩帝国时代,需要到软件城购买盗版光盘安装(大概3块钱一张左右的样子,当时已经觉得很便宜了,谁…

中继器、集线器、网桥、交换机、路由器

全家福 两台主机如何连接起来? 在网络诞生之前,电脑之间都是单机运行,没有网卡、没有网线、没有协议栈,数据传输主要通过软盘、光盘等介质。 网线来了 【网线网卡协议栈】三要素,是组成“最小单元网络”的基础&#x…

集线器、交换机、路由器有什么区别?

作者:薛定谔不在家 来源:https://www.zhihu.com/question/22007235/answer/402261894 帝国时代 我相信我们都玩过一款特别火的游戏:帝国时代。小时候想要玩帝国时代,需要到软件城购买盗版光盘安装,大概3块钱一张左右的…

集线器、交换机和路由器之间有何不同?

集线器、交换机和路由器都是用于构建网络的设备,且分别在不同层次发挥着其作用 。但目前,许多人对集线器、交换机和路由器的认识并不充分,甚至不知道这三者之间有什么区别。下面将重点为您介绍集线器、交换机和路由器,并阐明它们之…

集线器、网桥、交换机、路由器

目录 计算机之间的通信基础 计算机之间的连接方式 网线直连 同轴电缆 集线器(Hub) 网桥(Bridge) 交换机 路由器 本文参照小码哥的网络协议视频记录 计算机之间的通信基础 需要得知对方的IP地址。最终是根据MAC地址&#x…

交换机和集线器的区别是什么?

换机工作在数据链路层,通过MAC地址转发数据。集线器工作在物理层,通过广播的形式转发数据。目前,集线器已经被交换机取代,组网中很少使用集线器了。下文具体说一说。 方法/步骤 区别1:工作层次 集线器工作在物理层…

计算机网络——集线器与交换机

💟💟前言 ​ 友友们大家好,我是你们的小王同学😗😗 今天给大家打来的是 计算机网络——集线器与交换机 希望能给大家带来有用的知识 觉得小王写的不错的话麻烦动动小手 点赞👍 收藏⭐ 评论📄 小…

计算机网络实验三 集线器、交换机、路由器与ARP

实验目的和要求 1)集线器、交换机和路由器和 ARP 的基本工作原理 2)掌握使用 PacketTracer 模拟网络场景的基本方法,加深对网络环境、网络设备和网 络协议交互过程等方面的理解。 实验环境 1)运行 Windows 2008 Server/XP/7 操…

集线器、交换机、路由器

文章目录 1.集线器Hub [ 物理层 ]2.交换机 Switch [ 数据链路层 ]交换机自学习算法以太网交换机的2种交换模式:直通式、存储转发式3.路由器 Router [ 网络层 ]1.集线器Hub [ 物理层 ] 物理层设备:中继器、集线器既不能隔离冲突域,更不能隔离广播域2.交换机 Switch [ 数据链路…

集线器、路由器与交换机

1. 集线器、交换机与路由器的区别 1.1. 集线器、交换机和路由器的定义 集线器(HUB)属于数据通信系统中的基础设备,它和双绞线等传输介质一样,是一种不需任何软件支持或只需很少管理软件管理的硬件设备。 它被广泛应用到各种场合…

集线器、网桥、交换机简介

一.集线器 集线器(HUB),它是工作在物理层的设备, 由于它只是工作在物理层的设备,所以它并不关心也不可能关心OSI上面几层所涉及的,它的工作机制流程是:从一个端口接收到数据包时,会…

集线器与交换机

文章目录 集线器与交换机集线器交换机集线器与交换机的区别单播帧广播帧多主机同时发送单播帧扩展以太网 总结 以太网交换机自学习 集线器与交换机 集线器 使用集线器的以太网在逻辑上仍是一个总线网,各站共享总线资源,使用的还是CSMA/CD协议;集线器只…