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

相关文章

C++中unordered_set哈希集合的实现

《C++中unordered_set哈希集合的实现》std::unordered_set是C++标准库中的无序关联容器,基于哈希表实现,具有元素唯一性和无序性特点,本文就来详细的介绍一下unorder... 目录一、概述二、头文件与命名空间三、常用方法与示例1. 构造与析构2. 迭代器与遍历3. 容量相关4

C++中悬垂引用(Dangling Reference) 的实现

《C++中悬垂引用(DanglingReference)的实现》C++中的悬垂引用指引用绑定的对象被销毁后引用仍存在的情况,会导致访问无效内存,下面就来详细的介绍一下产生的原因以及如何避免,感兴趣... 目录悬垂引用的产生原因1. 引用绑定到局部变量,变量超出作用域后销毁2. 引用绑定到动态分配的对象,对象

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

Python实现字典转字符串的五种方法

《Python实现字典转字符串的五种方法》本文介绍了在Python中如何将字典数据结构转换为字符串格式的多种方法,首先可以通过内置的str()函数进行简单转换;其次利用ison.dumps()函数能够... 目录1、使用json模块的dumps方法:2、使用str方法:3、使用循环和字符串拼接:4、使用字符

Redis中Set结构使用过程与原理说明

《Redis中Set结构使用过程与原理说明》本文解析了RedisSet数据结构,涵盖其基本操作(如添加、查找)、集合运算(交并差)、底层实现(intset与hashtable自动切换机制)、典型应用场... 目录开篇:从购物车到Redis Set一、Redis Set的基本操作1.1 编程常用命令1.2 集

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

Linux挂载linux/Windows共享目录实现方式

《Linux挂载linux/Windows共享目录实现方式》:本文主要介绍Linux挂载linux/Windows共享目录实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录文件共享协议linux环境作为服务端(NFS)在服务器端安装 NFS创建要共享的目录修改 NFS 配

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注