使用OMS迁移MongoDB数据到OB问题反馈

【 使用环境 】生产环境
【 OB or 其他组件 】OMS
【 使用版本 】OMS社区版4.2.10、MongoDB 4.0.6、OceanBase 版本号4.2.5.4 mysql租户
【问题描述】通过OMS迁移MongoDB数据到ob数据库,出现MongoDB数据集合数据中为空值的数据迁移后被填充其他字段,双方表数据不一致
【复现路径】批量迁移出线问题后,清除并单独迁移相关表还是出线以上问题

MongoDB表结构为:

ob对应建表语句为:

DROP TABLE IF EXISTS `wx_chat_messages`;
CREATE TABLE `wx_chat_messages` (
  `_id` varchar(24) NOT NULL COMMENT '主键ID(mongodb ObjectID)',
  `__v` int(11) NOT NULL DEFAULT '0' COMMENT 'mongoose版本号(兼容原数据源,无实际意义)',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `appid_dev` varchar(36) NOT NULL COMMENT '微信公众号appid',
  `batchid` varchar(36) NOT NULL DEFAULT '' COMMENT '48小时群发消息ID',
  `from_user` varchar(36) NOT NULL COMMENT '发送者',
  `is_reply` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否回复',
  `material_id` varchar(36) NOT NULL DEFAULT '' COMMENT '关联素材_id(非微信素材ID)',
  `message` json NOT NULL COMMENT '消息内容',
  `msgid` varchar(36) NOT NULL DEFAULT '' COMMENT '消息ID',
  `msgtype` varchar(36) NOT NULL COMMENT '消息类型',
  `openid` varchar(36) NOT NULL COMMENT '微信OPENID',
  `to_user` varchar(36) NOT NULL COMMENT '接收者',
  PRIMARY KEY (`_id`),
  KEY `idx_appid_dev_openid_create_time` (`appid_dev`, `openid`, `create_time`)
) COMMENT = '微信粉丝聊天信息';

原表和目的表数据对比:


说明:原表为图片左侧,部分字段是空的,但是迁移后被填充了数据,原数据也存在错位情况

1 个赞

这个是已知问题,mongodb中某些字段为null时可能出现错位,下个迭代会修复。

2 个赞

学习

看来是Bug,学习了

1 个赞