mongdb迁移方案及比对方案

mongdb迁移方案及比对方案

  • 概述:数据量有千万级别,需要考虑迁移速度和用时一个一个插入太慢,要批量插入mysql中;
  • 取数: mongdb 中的objectId 是有规律生成的,查询方案按1000个一页取出,按id升序, 下一页用上一页的最后一个id作为起始点取1000个
    代码类似:where(“_id”).lt(new ObjectId(“xxx”)).limit(1000), 避免mongdb深度分页过慢问题;
  • 比对:采用一千个一千个比对(Objects.equal),若不同,进行一个一个比对(Field[] baseFields = baseDO.getClass().getDeclaredFields()),字段数组,收集差异集合;
  • 插入:将差异集合进行遍历进行批量数据组装,进行批量插入和比对;

数据比对方案:

  • 表t_user数据总行数比对:
  • excel 做文件大小比较
  • 抽样比对,导出excel 或sql 查询出数据,进行明文比对;
  • 逐个每一行比对:查询id,和所有值拼接成一个value 利用mysql 的md5函数,查询出md5值,导出excel 进行一行一行的比对结果,查看差异;
生成md5 sql
SELECT id, MD5(CONCAT(
IFNULL(id,''),
IFNULL(user_id,''),
IFNULL(status,''),
IFNULL(type,''),
IFNULL(headimgurl,''),
IFNULL(unionid,''),
IFNULL(openid,''),
IFNULL(user,''),
IFNULL(country,''),
IFNULL(sex,''),
IFNULL(province,''),
IFNULL(nickname,''),
IFNULL(email,''),
IFNULL(city,''),
IFNULL(n_s_person_name_components_v_o,''),
IFNULL(created_time,''),
IFNULL(created_by,''),
IFNULL(updated_time,''),
IFNULL(updated_by,''),
IFNULL(version,'') )) AS md5_value FROM t_third_user_info

将结果导入到excel中,将md5值两列选中,设置高亮重复项,选中md5列进行筛选,进行颜色筛选,若列中只有一种颜色表示,整列没有差差异,若还有其他颜色表示比对有差异;并进行首行和尾行进行校对,查看首行和尾行结果是否一致;

首行截图尾行截图

比对结果筛选列

详细比对结果文件如下
表t_user 比对结果如下,(左边两列为bk、右边两列为zb)
比对结果excel
https://space.dingtalk.com/s/gwHPAAAAAlkTVMoCzgdCYwAD2gAgMDliNTRhZDJmZDcxNDY3N2E1MWM3ZDI1ZmQ0ZmU1MmI 密码: BWFt

表t_third_user_info 比对结果文件链接:
https://space.dingtalk.com/s/gwHPAAAAAlkVPXYCzgdCYwAD2gAgZjcyOGZmZjk1ZmNlNDA5ZDkxOWFiZmRjNjEyOTlkMzc 密码: 8XSa

表t_id_card_info比对结果文件链接:
https://space.dingtalk.com/s/gwHPAAAAAlkVsqICzgdCYwAD2gAgNTcyNzk1M2I0ZGFjNDdkOTllODU0NjFkNDQ3NmFlMzc 密码: H2bT

  • 结论:两种迁移方案结果一致,除了t_third_user_info 表中nickName 字段炳坤采用base64加密入库,经过解密比对之后结果也一致;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值