ETL工具:Kettle(Spoon)实现跨库跨表迁移不同表结构的数据

2024-05-28 00:32

本文主要是介绍ETL工具:Kettle(Spoon)实现跨库跨表迁移不同表结构的数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近在项目重构,重构过程中对数据库旧表进行重新设计,去掉一些无用的字段,且新表加入了一些新的字段,现在需要把旧的数据迁移到新的表中,经过一番的折腾,最终选择Kettle(Spoon)实现跨库跨表,迁移不同表结构的数据,此文希望对有类似需求的小伙伴提供一点帮助。

一、Kettle(Spoon)安装及配置

  1. JDK环境配置,不会配置请自行百度JDK配置教程。

  2. Kettle(Spoon)安装
    直接进入Kettle(Spoon)官网下载最新版本,官网地址:https://community.hitachivantara.com/docs/DOC-1009855 。在这里插入图片描述

  3. 配置 Kettle(Spoon)运行环境
    创建用户变量,变量名输入:PENTAHO_JAVA_HOME;
    变量值输入jdk的安装路径。
    在这里插入图片描述

  4. 解压下载好的 Kettle(Spoon)工具
    在这里插入图片描述
    在这里插入图片描述

  5. 导入mysql连接驱动(这里以mysql为例)
    在解压路径的lib文件夹下加入mysql驱动包即可。在这里插入图片描述

  6. 启动 Kettle(Spoon)
    解压文件之后,双击Spoon.bat即可启动 Kettle(Spoon)。在这里插入图片描述
    在这里插入图片描述
    启动后的Kettle(Spoon)。在这里插入图片描述

二、Kettle(Spoon)迁移不同库不同表结构的数据

  1. 建立转换
    在这里插入图片描述

  2. 建立源数据库连接
    在这里插入图片描述
    在这里插入图片描述

  3. 再次建立目标数据库连接
    在这里插入图片描述
    在这里插入图片描述

  4. 新建表输入
    从左边面板“核心对象”中选择“输入—>表输入”,鼠标拖拽到右边面板中,如图所示:在这里插入图片描述

  5. 双击表输入,编辑源库信息
    在这里插入图片描述

  6. 阅览一下连接是否正确
    在这里插入图片描述
    如上图:若出现报错提示,需要在Spoon的数据库连接中,打开选项,加入一行命令参数:
    zeroDateTimeBehavior=convertToNull,操作如下:
    在这里插入图片描述

  7. 新建表输入
    在“核心对象”中,选择“输出—>插入/更新”,鼠标拖动至右边面板。
    在这里插入图片描述

  8. 编辑插入/更新
    首先将表输入连接插入/更新(选中表输入,按住shift键,拖向插入/更新)。
    在这里插入图片描述
    然后,双击插入/更新进行编辑,如图:
    在这里插入图片描述
    在这里插入图片描述
    删除更新字段中目标表没有的字段。
    在这里插入图片描述
    源表与目标表中字段意义相同,但是字段名不同的字段可以手动进行映射。
    在这里插入图片描述

  9. 执行数据迁移
    在这里插入图片描述
    数据迁移完成。
    在这里插入图片描述

这篇关于ETL工具:Kettle(Spoon)实现跨库跨表迁移不同表结构的数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

springboot filter实现请求响应全链路拦截

《springbootfilter实现请求响应全链路拦截》这篇文章主要为大家详细介绍了SpringBoot如何结合Filter同时拦截请求和响应,从而实现​​日志采集自动化,感兴趣的小伙伴可以跟随小... 目录一、为什么你需要这个过滤器?​​​二、核心实现:一个Filter搞定双向数据流​​​​三、完整代码

SpringBoot利用@Validated注解优雅实现参数校验

《SpringBoot利用@Validated注解优雅实现参数校验》在开发Web应用时,用户输入的合法性校验是保障系统稳定性的基础,​SpringBoot的@Validated注解提供了一种更优雅的解... 目录​一、为什么需要参数校验二、Validated 的核心用法​1. 基础校验2. php分组校验3

Python实现AVIF图片与其他图片格式间的批量转换

《Python实现AVIF图片与其他图片格式间的批量转换》这篇文章主要为大家详细介绍了如何使用Pillow库实现AVIF与其他格式的相互转换,即将AVIF转换为常见的格式,比如JPG或PNG,需要的小... 目录环境配置1.将单个 AVIF 图片转换为 JPG 和 PNG2.批量转换目录下所有 AVIF 图

Pydantic中model_validator的实现

《Pydantic中model_validator的实现》本文主要介绍了Pydantic中model_validator的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录引言基础知识创建 Pydantic 模型使用 model_validator 装饰器高级用法mo

AJAX请求上传下载进度监控实现方式

《AJAX请求上传下载进度监控实现方式》在日常Web开发中,AJAX(AsynchronousJavaScriptandXML)被广泛用于异步请求数据,而无需刷新整个页面,:本文主要介绍AJAX请... 目录1. 前言2. 基于XMLHttpRequest的进度监控2.1 基础版文件上传监控2.2 增强版多

使用Python自建轻量级的HTTP调试工具

《使用Python自建轻量级的HTTP调试工具》这篇文章主要为大家详细介绍了如何使用Python自建一个轻量级的HTTP调试工具,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录一、为什么需要自建工具二、核心功能设计三、技术选型四、分步实现五、进阶优化技巧六、使用示例七、性能对比八、扩展方向建

Redis分片集群的实现

《Redis分片集群的实现》Redis分片集群是一种将Redis数据库分散到多个节点上的方式,以提供更高的性能和可伸缩性,本文主要介绍了Redis分片集群的实现,具有一定的参考价值,感兴趣的可以了解一... 目录1. Redis Cluster的核心概念哈希槽(Hash Slots)主从复制与故障转移2.

springboot+dubbo实现时间轮算法

《springboot+dubbo实现时间轮算法》时间轮是一种高效利用线程资源进行批量化调度的算法,本文主要介绍了springboot+dubbo实现时间轮算法,文中通过示例代码介绍的非常详细,对大家... 目录前言一、参数说明二、具体实现1、HashedwheelTimer2、createWheel3、n

使用Python实现一键隐藏屏幕并锁定输入

《使用Python实现一键隐藏屏幕并锁定输入》本文主要介绍了使用Python编写一个一键隐藏屏幕并锁定输入的黑科技程序,能够在指定热键触发后立即遮挡屏幕,并禁止一切键盘鼠标输入,这样就再也不用担心自己... 目录1. 概述2. 功能亮点3.代码实现4.使用方法5. 展示效果6. 代码优化与拓展7. 总结1.

Mybatis 传参与排序模糊查询功能实现

《Mybatis传参与排序模糊查询功能实现》:本文主要介绍Mybatis传参与排序模糊查询功能实现,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、#{ }和${ }传参的区别二、排序三、like查询四、数据库连接池五、mysql 开发企业规范一、#{ }和${ }传参的