当前位置: 首页 > 科技观察

数据迁移到MySQL性能测试

时间:2023-03-20 13:32:18 科技观察

今天将一组环境数据从SQLServer迁移到MySQL,涉及到很多架构上的改进。下面主要说一下数据迁移的一些基本思路。下面是一个开始,后面会不断迭代完善一些程序。总体来说,迁移的数据量听起来不是很多,大概在300G左右。总体步骤为:1)数据从SQLServer导出为csv文件2)数据流转至MySQL中间服务器。因为文件很大,比如有的文件几十G,单次导入会直接报错,所以需要切分,比如按照1000万的数据维度来分。3)数据切分数据会被分割成比较规则的片段。比如按照1000万的基准,一个4亿数据量的文件会被分成近40个500M的文件。4)因为分出来的文件太多了,所以需要把这些任务分成几组再导入5)导入的时候是并发进程的形式,因为数据库后台已经做了分片,所以没有需要调用开启太多线程。6)通过中间件导入数据,将数据放在多个分片节点上。有4个物理分片,每个物理分片有4个逻辑分片,即总共有16个逻辑分片。数据流程图如下:从目前的测试来看,如果有4个物理分片,通过中间件使用加载数据的方式,速度基本是80万/秒。对比单机20万,效率和性能有目共睹。从目前的数据迁移来看,使用中还存在一定的风险。首先,将数据dump成csv文件需要很长时间,中间涉及到数据传输和数据切分。真正导入数据的时候,流量和性能的损耗已经非常高了。目前测试,部分分片节点负载高达30以上,算是充分利用了服务器资源。按照目前的数据基础情况,导入近70亿条数据大约需要2个小时,而且这个过程还不包括中间环节的连接和数据传输。实际时间将近5个小时。从数据迁移窗口计算,这个时间显然不符合要求。如果时间控制在1小时以内,有没有更好的办法?