mongo数据全量迁移mysql/tidb

后续若有更新不会更新博客,只会更新笔记,博客只做备份

https://www.wolai.com/mrll/gJa7WNrhaJAN7pKJRZCe4v?theme=light

 

背景

公司环境由于mongo被滥用,导致负载很大,要针对业务进行mongo至tidb的全量迁移,其中在mongo中手动的分表需合并为一张表,如a_1,a_2,a_3,a_4迁移至tidb后统一为a表

实现步骤

  • 代码开启双写+id记录补偿

  • 全量迁移

  • 双读校验

双读和双写及代码补偿都是业务倾入的代码,就不做介绍

这里只介绍如何进行mongo导入到mysql(tidb)

迁移时序图

通过MongoExportUtil进行mysql建表,建索引,获取导出语句

 

mongo导出的表需要进行特殊处理

1.object处理

ObjectId(609eac900669900001848fc2)
→609eac900669900001848fc2

2.document处理

{"total":{"$numberLong":"12"},"award":{"$numberLong":"12"},"recycle":{"$numberLong":"0"}}
->
{"total":"12","award":"12","recycle":"0"}

通过tidb-lightning进行导入

 

posted @ 2021-09-10 11:47  MRLL  阅读(353)  评论(0编辑  收藏  举报