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

相关文章

Python实现Word转PDF全攻略(从入门到实战)

《Python实现Word转PDF全攻略(从入门到实战)》在数字化办公场景中,Word文档的跨平台兼容性始终是个难题,而PDF格式凭借所见即所得的特性,已成为文档分发和归档的标准格式,下面小编就来和大... 目录一、为什么需要python处理Word转PDF?二、主流转换方案对比三、五套实战方案详解方案1:

SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南

《SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南》本文将基于开源项目springboot-easyexcel-batch进行解析与扩展,手把手教大家如何在SpringBo... 目录项目结构概览核心依赖百万级导出实战场景核心代码效果百万级导入实战场景监听器和Service(核心

C# async await 异步编程实现机制详解

《C#asyncawait异步编程实现机制详解》async/await是C#5.0引入的语法糖,它基于**状态机(StateMachine)**模式实现,将异步方法转换为编译器生成的状态机类,本... 目录一、async/await 异步编程实现机制1.1 核心概念1.2 编译器转换过程1.3 关键组件解析

基于Python Playwright进行前端性能测试的脚本实现

《基于PythonPlaywright进行前端性能测试的脚本实现》在当今Web应用开发中,性能优化是提升用户体验的关键因素之一,本文将介绍如何使用Playwright构建一个自动化性能测试工具,希望... 目录引言工具概述整体架构核心实现解析1. 浏览器初始化2. 性能数据收集3. 资源分析4. 关键性能指

使用Redis快速实现共享Session登录的详细步骤

《使用Redis快速实现共享Session登录的详细步骤》在Web开发中,Session通常用于存储用户的会话信息,允许用户在多个页面之间保持登录状态,Redis是一个开源的高性能键值数据库,广泛用于... 目录前言实现原理:步骤:使用Redis实现共享Session登录1. 引入Redis依赖2. 配置R

SpringBoot实现RSA+AES自动接口解密的实战指南

《SpringBoot实现RSA+AES自动接口解密的实战指南》在当今数据泄露频发的网络环境中,接口安全已成为开发者不可忽视的核心议题,RSA+AES混合加密方案因其安全性高、性能优越而被广泛采用,本... 目录一、项目依赖与环境准备1.1 Maven依赖配置1.2 密钥生成与配置二、加密工具类实现2.1

Oracle迁移PostgreSQL隐式类型转换配置指南

《Oracle迁移PostgreSQL隐式类型转换配置指南》Oracle迁移PostgreSQL时因类型差异易引发错误,需通过显式/隐式类型转换、转换关系管理及冲突处理解决,并配合验证测试确保数据一致... 目录一、问题背景二、解决方案1. 显式类型转换2. 隐式转换配置三、维护操作1. 转换关系管理2.

在Java中实现线程之间的数据共享的几种方式总结

《在Java中实现线程之间的数据共享的几种方式总结》在Java中实现线程间数据共享是并发编程的核心需求,但需要谨慎处理同步问题以避免竞态条件,本文通过代码示例给大家介绍了几种主要实现方式及其最佳实践,... 目录1. 共享变量与同步机制2. 轻量级通信机制3. 线程安全容器4. 线程局部变量(ThreadL

Python按照24个实用大方向精选的上千种工具库汇总整理

《Python按照24个实用大方向精选的上千种工具库汇总整理》本文整理了Python生态中近千个库,涵盖数据处理、图像处理、网络开发、Web框架、人工智能、科学计算、GUI工具、测试框架、环境管理等多... 目录1、数据处理文本处理特殊文本处理html/XML 解析文件处理配置文件处理文档相关日志管理日期和

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3