[发明专利]MongoDB到HBase的分布式高容错数据实时同步方法有效
申请号: | 201910561319.4 | 申请日: | 2019-06-26 |
公开(公告)号: | CN110287251B | 公开(公告)日: | 2022-09-16 |
发明(设计)人: | 任旭波;谢赟;陈大伟 | 申请(专利权)人: | 上海德拓信息技术股份有限公司 |
主分类号: | G06F16/25 | 分类号: | G06F16/25;G06F16/27 |
代理公司: | 上海湾谷知识产权代理事务所(普通合伙) 31289 | 代理人: | 张恒 |
地址: | 200233 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | mongodb hbase 分布式 容错 数据 实时 同步 方法 | ||
1.一种MongoDB到HBase的分布式高容错数据实时同步方法,其特征在于,包括:
步骤S1,开启MongoDB的oplog操作日志记录功能;
步骤S2,生产者读取出MongoDB中预设检查点之后的多条oplog,将各条oplog推送到Kafka的预定主题,同时写入Redis;
步骤S3,Storm作为消费者订阅Kafka的预定主题,oplog进入Storm后,判断该条oplog的操作类型,针对涉及数据同步的操作类型,获取适合HBase存储的键-值以及数据定位信息,或者仅获取数据定位信息;
步骤S4,HBase writer接受根据步骤S3获取的键-值及数据定位信息,若传入的键-值信息为空,则HBase writer将指定位置的一行数据删除,若不为空,则将传入的键-值写入指定位置;在数据写入成功后,HBase writer根据传入的信息重新拼接出第一时间戳+名称空间+oid作为键,并删除Redis中对应的记录;若数据写入失败,则不做任何处理;
步骤S5,一条oplog处理完成后,返回步骤S3,直至所有oplog处理完成后。
2.根据权利要求1所述的MongoDB到HBase的分布式高容错数据实时同步方法,其特征在于,所述的步骤S2中,生产者读取定位时间戳作为检查点,以键=名称空间,值=第一时间戳+oplog的形式将oplog推送到Kafka的预定主题Storm,同时以键=第一时间戳+名称空间+oid,值=0的形式将键-值存到Redis中,每将一条oplog写入Kafka和Redis后,将其第一时间戳写入到定位时间戳中。
3.根据权利要求2所述的MongoDB到HBase的分布式高容错数据实时同步方法,其特征在于,所述的步骤S2中,
名称空间由当前oplog中ns字段的值组成,表示对应数据所在的库和集合;
第一时间戳指的是当前oplog中ts字段的值;
在生产者读取的一批oplog全部推向Kafka及Redis后,重复步骤S2。
4.根据权利要求1所述的MongoDB到HBase的分布式高容错数据实时同步方法,其特征在于,在Kafka的同一消费者组中,有多个消费者来共同消费生产者发送到该消费者组中的数据。
5.根据权利要求1所述的MongoDB到HBase的分布式高容错数据实时同步方法,其特征在于,所述的oplog的操作类型分为插入、修改、删除和其他四类,其他类别包括建表、数据库声明和系统的空操作;
针对插入和修改操作:获取oplog中关于插入和修改描述所在的子json,及产生该条oplog数据所在的库、表和主键id这些定位信息及第一时间戳;然后,对于接收到的子json,对子json进行递归转换,将子json转换成适合HBase存储的键-值格式,对于嵌套多层子json,转换到最后一层为止;之后对键-值进行时间日期等格式转换;
针对删除操作:获取产生该条oplog数据所在的库、表和主键id这些定位信息及第一时间戳;
针对其他操作:重新拼接出第一时间戳+名称空间+oid作为键,并删除Redis中对应的记录。
6.根据权利要求5所述的MongoDB到HBase的分布式高容错数据实时同步方法,其特征在于,每隔15秒,Redis遍历器遍历一遍Redis,寻找键中第一时间戳小于当前时间-30s的键,并将这些键所对应的值加1,在给值加1之前,如果值5,在Redis中将该条数据删除;
Redis遍历器获取到符合条件的键后,利用键中的名称空间和oid这些定位信息,在MongoDB数据库中查找对应的键-值信息,若键-值信息不为空,将对应的oplog的子json进行递归转换,将子json转换成适合HBase存储的键-值格式,对于嵌套多层子json,转换到最后一层为止;之后对键-值进行时间日期等格式转换,再次转入步骤S4;若查到的键-值信息为空,转到步骤S4。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海德拓信息技术股份有限公司,未经上海德拓信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910561319.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:用户等级量化方法和装置
- 下一篇:一种数据安全防护系统