kettle迁移数据库


最近需要oracle数据库迁移数据到mysql数据库,用到了kettle spoon 工具,发现工具真的是很强大,好用,单表,多表都可以迁移,下面给大家分享一下使用的过程情况,仅供参考。

工具介绍

kettle spoon是Java语言编写,以图形化的界面来管理数据,并允许在不同数据库间迁移数据。
spoon软件解压后可直接运行,会自动检查Java环境,因此需要提前配置好环境。下面是本机的运行环境:
JDK版本: 1.8
spoon版本:pdi-ce-8.2.0
软件的运行需要添加Java的数据库驱动包,在软件lib文件夹下,添加数据库驱动。
mysql-connector-java-5.0.8-bin.jar
ojdbc6.jar
  打开解压后的文件夹,找到并打开spoon.bat,进入spoon软件的界面。如下图所示。
在这里插入图片描述
  双击转换,可以新建一个转换,设置操作数据库的控件。首先需要做以下两步。

第一步 新建DB连接

DB连接右击,新建DB连接,以当前的需求为例,需要分别建立oracle和mysql两个数据库的连接。
在这里插入图片描述

第二步 数据库连接

配置数据库的连接信息,数据库名称,账号,密码等,可以测试连接是否成功。下面是oracle数据库的连接。
在这里插入图片描述
改变编码方式(重要)
  更改目标数据的编码方式,统一为utf8编码方式,否则会出现乱码。mysql数据库的连接的选项里,添加characterEncoding 设置编码方式为utf8。
在这里插入图片描述
数据的迁移可以分为单表的迁移和多表的迁移,两者的处理过程不同,下面将分别介绍。

1 单表迁移

在核心对象,输入下找到表输入,拖动到工作区,同样在输出下,找到表输出,拖动到工作区。在表输入控件右键,按住shift键添加表输入到表输出的传输线。
在这里插入图片描述
  双击表输入,设置相关的参数。选择数据库连接,这里源数据库是oracle,下面是SQL查询语句,如迁移A1表的数据。
在这里插入图片描述
  在输出表控件上双击,设置参数,数据库连接,这里是mysql数据库,点击浏览并选择需要迁移的目标表a1。
在这里插入图片描述
  点击三角符号–运行,弹出执行转换的窗口,默认设置,直接点击run,就开始数据的迁移。
在这里插入图片描述
  下一步提示,文件已经改变,是否保存?选择是,并当前的作业保存在指定的区域。
在这里插入图片描述
程序运行,在控制台可以看到打印的日志信息
在这里插入图片描述
打开mysql数据库,双击查看对应的表,可以发现数据已经迁移过来了,这里需要注意的是设置数据库的编码方式。
在这里插入图片描述

2 多表迁移

单表的数据迁移比较简单,对多张表的批量迁移,需要将需要处理的数据库的表名存储到文件中,如data.txt,注意:一个表名一行,不要有空格。需要在第一行为其起一个别名,如ORCLDATA。
在这里插入图片描述
多表数据的批量迁移主要有三个步骤,分别如下所示:

1)数据输入

在这里插入图片描述
  在输入选项中添加文本文件输入控件,作业选项中添加复制记录到结果控件。本步骤的作用是从文本中读取表的信息,复制到结果集中。
  双击文本文件输入,设计相关参数。浏览方式选中文本文件,并添加到当前的目录下,如下图所示。
在这里插入图片描述
  在字段标签下,添加文本文件中起的别名ORCLDATA,数据类型为String,点击确定即可。
在这里插入图片描述
  最后将其保存为数据输入.ktrktr是kettle的格式文件,可以用spoon直接打开,方便之后的操作。

2)数据转换

在表输出选项中分别添加从结果获取记录控件,设置变量控件,再次添加表输入控件和表输出控件,并用数据传输线进行连接,结果如下图所示。
在这里插入图片描述
  双击从结果获取记录控件,设置字段名称,类型等参数。字段名称填写别名ORCLDATA,类型选择String类型。参考如下图所示。
在这里插入图片描述
  双击设置变量,设置字段名称,变量名,变量活动类型,这里将字段名称和变量名设置为一样,也可以不同,变量活动类型选择vaild in the parent job,点击确定。
在这里插入图片描述
  双击表输入,设置参数。选择源数据库,SQL语句,这里是oracle数据库,SQL语句需要填入参数形式的变量名。
在这里插入图片描述
  同样,双击表输出,设置参数属性。选择目标数据库,目标表使用变量${别名},提交记录数量,就是每次处理多少条数据。勾选使用批量插入。
在这里插入图片描述
  最后将当前设置保存为数据转换.ktr,ktr是kettle的格式文件,可以用spoon直接打开。

3)执行脚本

在核心对象下,通用选项下,分别添加Start控件,转换控件1,转换控件2和成功控件,并用传输线连接,结果如下。
在这里插入图片描述
  双击转换1,选择执行文件的路径,这里需要选择的是数据输入.ktr文件,自动生成文件相对的路径。设置结果参考下图。
在这里插入图片描述
  同样设置转换1的参数,选中数据转换.ktr文件,结果如下图所示。
在这里插入图片描述
  注意还需要设置命名参数,并勾选两个设置,复制上一步结果到命名参数,将所有参数值传递到子转换,命名参数和流列名都设置为了ORCLDATA。结果如下图所示。
在这里插入图片描述
完成以上的设置,最后,点击run开始执行数据迁移,根据表中数据的多少决定其执行的快慢,可到数据库中查看数据的导入情况。
在这里插入图片描述

:执行过程中,可能会出现问题,如表结构的字段设置不够,可根据实际的需要调整。若执行出现问题可在下面留言。

博客参考

【1】https://blog.csdn.net/wuzhangweiss/article/details/78408029

### 回答1: Kettle 数据库同步是一种数据传输和更新机制,通过将一个数据库数据同步到另一个数据库中,以实现数据的一致性和完整性。Kettle是一个开源的ETL(Extract, Transform, Load)工具,可以对数据进行提取、转换和加载,广泛应用于数据集成和数据仓库领域。 Kettle 数据库同步的过程包括以下几个步骤。首先,需要配置源数据库和目标数据库的连接信息,包括数据库服务器地址、端口号、数据库名称、用户名和密码等。然后,通过Kettle提供的图形化界面,选择需要同步的表或数据,并设置同步的频率和方式。可以选择全量同步或增量同步,全量同步将源数据库中的所有数据复制到目标数据库中,而增量同步只同步源数据库中新增或修改的数据。 在Kettle中,可以使用多种方式进行数据库同步操作。其中一个常用的方式是使用Kettle的转换任务(Transformation)来实现数据库同步。转换任务是由一系列步骤组成的工作流程,可以对数据进行提取、转换和装载。在转换任务中,可以使用Kettle提供的输入、输出和转换步骤,通过连接源数据库和目标数据库,实现数据的传输和更新。可以使用输入步骤从源数据库读取数据,并通过转换步骤对数据进行清洗和转换,最后使用输出步骤将数据写入目标数据库中。 Kettle数据库同步具有以下优点。首先,它是一种灵活、可扩展和可定制的数据同步方式,可以根据具体需求进行配置和调整。其次,Kettle提供了一套丰富的转换步骤和功能,可以对数据进行复杂的处理和转换,满足不同的应用场景。此外,Kettle还支持多种数据库和文件格式,可以方便地进行不同数据库之间的数据传输和同步操作。 总之,Kettle数据库同步是一种实现数据一致性和完整性的重要工具,通过配置和使用Kettle工具,可以实现灵活、可定制的数据库同步操作,满足各种数据集成和数据仓库的需求。 ### 回答2: Kettle 数据库同步是指通过使用 Kettle 工具来实现两个或多个数据库之间数据的同步操作。Kettle 是一种强大的 ETL(抽取、转换和加载)工具,可以帮助用户在不同的数据库之间传输和转换数据,使数据保持同步和一致。 Kettle 数据库同步的步骤如下:首先,用户需要在 Kettle 工具中创建两个数据源,分别代表源数据库和目标数据库。然后用户可以使用 Kettle 的转换和任务功能来设计数据同步的流程。 在流程设计中,用户可以使用转换步骤中的输入步骤和输出步骤来读取源数据库中的数据并写入到目标数据库中。用户可以通过选择合适的表和字段来定义数据的筛选和转换规则。例如,可以通过使用过滤器、排序器和映射器来处理数据的条件、排序和格式等问题。此外,用户还可以使用插入、更新和删除步骤来实现数据的插入、更新和删除操作。 一旦定义了数据同步的流程,用户可以通过运行 Kettle 转换或任务来执行同步操作。Kettle 将根据流程中的定义,自动从源数据库读取数据并将其写入到目标数据库中。在同步过程中,Kettle 还会提供详细的日志信息和错误处理功能,以便用户可以及时发现和解决数据同步中可能出现的问题。 总结来说,Kettle 数据库同步是一种基于 Kettle 工具的数据传输和转换操作。它可以帮助用户在不同的数据库之间实现数据的同步和一致性,使得数据在不同数据库间保持更新和相互关联。 ### 回答3: kettle数据库同步是指通过kettle工具来实现不同数据库之间数据的同步和传输。kettle是一款开源的ETL(Extract-Transform-Load)工具,可以用于数据的抽取、转换和加载。它支持多种数据库,如OracleMySQL、SQL Server等。 数据库同步通常包括两个步骤:数据的抽取和数据的加载。 在数据抽取阶段,kettle可以连接到源数据库,并选择要抽取的数据表或视图。用户可以定义抽取数据的条件、筛选字段和数据转换规则等。kettle提供了多种抽取方式,如全量抽取、增量抽取和增量抽取+日志方式。用户可以根据具体需求选择适合的抽取方式。 在数据加载阶段,kettle可以连接到目标数据库,并选择要加载数据的目标表。用户可以定义数据的加载方式,如全量加载、增量加载和追加加载等。kettle还提供了数据清洗和转换功能,可以对抽取的数据进行处理,如数据清洗、字段转换、数据合并等。用户可以根据需要进行相应的数据处理。 kettle还支持数据同步的调度功能,用户可以定义定时任务,设置数据同步的频率和时间,实现自动化的数据同步过程。 总之,kettle数据库同步是一种方便、灵活的数据同步工具,可以实现不同数据库之间的数据同步和传输。通过kettle的抽取、转换和加载功能,可以满足不同需求的数据同步任务,并提供定时调度功能,实现自动化的数据同步过程。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值