数据迁移到MySQL的性能测试

数据库 MySQL
今天对一套环境的数据从SQL Server迁移到MySQL,中间涉及诸多的架构改进,我们主要说一下数据迁移的一些基本思路,以下是一个开始,会在后面不断的迭代改进一些方案。

今天对一套环境的数据从SQL Server迁移到MySQL,中间涉及诸多的架构改进,我们主要说一下数据迁移的一些基本思路,以下是一个开始,会在后面不断的迭代改进一些方案。

整体来说,迁移的数据量听起来不是很多,大概是300G左右。

整体的步骤是:

1)数据从SQL Server导出为csv文件

2)数据流转到MySQL中间服务器上

因为文件较大,比如有的文件有几十G,单次导入会直接抛错,所以需要做下切分,比如按照1000万的数据维度切分。

3)数据切分

数据会被切分成相对规整的分片,比如按照1000万的基准,一个4亿数据量的文件会被切分为近40个500M的文件

4)因为切分后的文件太多,所以在导入前需要把这些任务划分为几个组

5)导入的时候,是按照并发进程的方式,因为数据库后端已经做了分片,所以就不需要调用是开启太多的线程了。

6)数据通过中间件导入,数据落盘在多个分片节点上,物理分片是4个,每个物理分片上有4个逻辑分片,即一共有16个逻辑分片。

数据流程图如下:

从目前的测试来看,如果是4个物理分片,通过中间件使用load data的方式,速度基本在80万每秒。和单机的20万相比,效率和性能是很明显的。 

从目前的数据迁移来看,还是存在一些使用风险,一来转储数据为csv文件的时间较长,中间还涉及数据流转和数据切分,等到数据真正导入的时候,流量和性能的损耗已经很高了。 

目前的测试,有些分片节点的负载高达30以上,算是充分利用了服务器资源。

按照目前的基本数据情况,导入近70亿数据需要2个小时左右,而这个过程还不包括中间环节的衔接和数据流转,实际的时间会在近5个小时,从数据迁移窗口来算,这个时间明显是不符合需求的,如果把时间控制在1个小时,有没有更好的方法?

责任编辑:庞桂玉 来源: 杨建荣的学习笔记
相关推荐

2023-11-17 18:02:19

数据仓库性能Doris

2013-06-21 13:49:08

MariaDB

2016-11-11 00:00:16

MySQLOracle数据

2021-07-26 12:10:37

FacebookMySQL 8.0数据库

2013-05-03 09:49:38

MySQLMariaDB

2023-02-09 16:22:29

云计算CIO云服务

2011-12-14 10:06:55

UnixLinux服务器

2018-02-02 16:15:02

Hadoop数据迁移集群

2021-07-09 18:26:41

PythonMySQL MongoDB

2009-08-06 09:20:30

2016-12-12 19:16:43

数据云端

2019-02-26 11:35:16

数据科学云端迁移

2015-09-14 14:49:39

MySQLMariaDBLinux

2020-03-12 08:00:34

MySQL迁移TiDB

2013-04-25 09:53:52

MariaDB

2017-07-26 16:09:54

系统迁移趋势

2017-07-31 09:53:31

2011-03-31 13:43:06

WindowsLinux迁移

2022-08-29 14:14:22

云计算云迁移数据分析

2017-10-20 08:45:15

数据库MongoDBMySQL
点赞
收藏

51CTO技术栈公众号