做一家网站费用吗,杂志网站模板,高清视频素材下载网站,搜索引擎优化的方法由于开发项目的需求#xff0c;之前有部分数据要写入阿里云的表格存储#xff0c;过了一年多时间#xff0c;表A的数据量接近24万条#xff0c;现在需要将表A的数据转到Mysql中。
利用官方工具导出数据后#xff0c;发现文件里面有238999条数据#xff0c;文件大小是460…由于开发项目的需求之前有部分数据要写入阿里云的表格存储过了一年多时间表A的数据量接近24万条现在需要将表A的数据转到Mysql中。
利用官方工具导出数据后发现文件里面有238999条数据文件大小是460MB。
想了个流程
按照表A的结构先在Mysql中创建对应的表格文件先上传到OSS中再从OSS中通过流方式读取回来逐行回放每10条发送一次到Mysql写入
说干就干写好了程序本地测试了小文件没有什么问题放到服务器上的Docker中运行。
网卡打满内存CPU全部满载。失败告终。最终成果只写入了1万多条数据。
总结了原因读取OSS时用了公网转成内网再试了一次公网网卡不受影响了。内存CPU照样全部满载。又是失败告终。
后来又想了个办法将文件通过内网下载到Docker中再用流读取方式但是有个矛盾始终无法解决。就是控制流速的问题试了response.data.on(‘data’, (chunk) {})做等待也是徒劳。
又尝试了某网友介绍的event-stream包始终很好地控制流速导致硬盘IO、内存、CPU全部满载Mysql只写了几百条数据就失败了。
根据削峰填谷的思想今天尝试了一个新方法先将OSS上的数据按照准备写入Mysql的格式放到Redis里Redis内存使用暴增400多M之后逐条回放操作成功就删除Redis上面的对应的数据经过了差不多一个小时操作数据入库成功Redis内存使用量也恢复正常。写入的过程服务器和Mysql的监控显示CPU、内存、带宽、硬盘IO都比较平衡重要的是没有影响其他服务。经过一个星期的试验和实践算是完美解决了此问题。
服务器监控数据 数据监控数据