内容简介:今天对一套环境的数据从SQL Server迁移到MySQL,中间涉及诸多的架构改进,我们主要说一下数据迁移的一些基本思路,以下是一个开始,会在后面不断的迭代改进一些方案。整体来说,迁移的数据量听起来不是很多,大概是300G左右。1)数据从SQL Server导出为csv文件
今天对一套环境的数据从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个小时,有没有更好的方法?
以上所述就是小编给大家介绍的《数据迁移到MySQL的性能测试》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Deliveroo分享从Ruby迁移到Rust提升17倍性能
- 【火炉炼AI】深度学习009-用Keras迁移学习提升性能(多分类问题)
- 【火炉炼AI】深度学习006-移花接木-用Keras迁移学习提升性能
- 银行核心海量数据无损迁移:TDSQL数据库多源异构迁移方案
- 再无需从头训练迁移学习模型!亚马逊开源迁移学习数据库 Xfer
- Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
跨平台桌面应用开发:基于Electron与NW.js
【丹】Paul B. Jensen / Goddy Zhao / 2018-3 / 99
《跨平台桌面应用开发:基于Electron与NW.js》是一本同时介绍 Electron和 NW.js的图书,这两者是目前流行的支持使用 HTML、CSS 和 JavaScript 进行桌面应用开发的框架。书中包含大量的编码示例,而且每个示例都是五脏俱全的实用应用,作者对示例中的关键代码都做了非常详细的解释和说明,可让读者通过实际的编码体会使用这两款框架开发桌面应用的切实感受。除此之外,在内容上,......一起来看看 《跨平台桌面应用开发:基于Electron与NW.js》 这本书的介绍吧!