[发明专利]一种消费端数据流复制方法及系统有效
申请号: | 201510072163.5 | 申请日: | 2015-02-11 |
公开(公告)号: | CN104679841B | 公开(公告)日: | 2018-06-08 |
发明(设计)人: | 张帅;都海峰 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06Q30/00 |
代理公司: | 北京邦信阳专利商标代理有限公司 11012 | 代理人: | 金玺 |
地址: | 100080 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 事件日志 持久化 分布式消息 数据库语句 复制 回溯 语句 数据流复制 源数据库 拉取 解析 目标数据库 功能实现 异常恢复 数据库 转换 灵活 冲突 健康 | ||
1.一种消费端数据流复制方法,其特征在于,包括:
复制步骤,包括:从分布式消息系统中拉取源数据库的事件日志作为源事件日志,将每个所述源事件日志解析成相应的数据库语句作为复制语句,执行持久化步骤;
回溯步骤,包括:当消费端异常出现时,回溯健康点之前的位置,重新从分布式消息系统中拉取源数据库的事件日志,将所述事件日志解析成相应的数据库语句作为复制语句,执行持久化步骤;
持久化步骤,包括:在所述消费端对应的目标数据库中依次执行每个所述复制语句;
所述持久化步骤,具体包括:
初始化执行子步骤,包括:将所述复制语句依次保存到队列中,且将连续多个执行相同数据操作的复制语句作为批量组保存,依次对每个复制语句执行分析优化子步骤;
分析优化子步骤,包括:如果所执行的复制语句在批量组内,则将批量组内的所有复制语句合并为批量语句,执行批量处理子步骤,否则执行单条执行子步骤;
批量处理子步骤,包括:在所述目标数据库中执行所述批量语句,如果所述批量语句为批量插入,且在所述目标数据库执行所述批量插入时遇到主键冲突,则执行单条执行子步骤;
单条执行子步骤,包括:在所述目标数据库中执行当前复制语句,如果在所述目标数据库中执行所述复制语句成功,且所述当前复制语句在批量组内,则记录成功的次数,当所述次数超过预设阈值时,将相应的批量组内未执行的复制语句合并为批量语句,执行批量处理子步骤。
2.根据权利要求1所述的消费端数据流复制方法,其特征在于:
所述单条执行子步骤中,还包括:如果在所述目标数据库中执行所述当前复制语句失败,则:
如果所述当前复制语句为插入语句且在所述目标数据库中执行所述插入语句时遇到主键冲突,则将所述插入语句转换为相应的更新语句,并重新在所述目标数据库中执行所述更新语句,如果所述当前复制语句为更新语句,且在所述目标数据库中执行所述更新语句时未找到相应的记录,则将所述更新语句转换为相应的插入语句,并重新在所述目标数据库中执行所述插入语句,如果所述当前复制语句为删除语句,且在所述目标数据库中执行所述删除语句时未找到相应的记录,则忽略所述删除语句。
3.根据权利要求1所述的消费端数据流复制方法,其特征在于,还包括:
采用推送节点作为消费端,至少一个推送节点定时获取用户配置的过滤规则和消费位置,执行所述复制步骤和持久化步骤,所述过滤规则包括用于限定源事件日志的事件规则和用于限定目标数据库的目标规则,所述复制步骤中,所述源事件日志满足所述事件规则,所述持久化步骤中,所述目标数据库满足所述目标规则;
所述推送节点在执行所述复制步骤时,在消费位置之后拉取源事件日志,且在正常执行所述持久化步骤后,更新消费位置为最后所拉取的源事件日志在所述分布式消息系统中的位置;
通过管理节点监控推送节点执行所述复制步骤和所述持久化步骤的情况,如果所述复制步骤和所述持久化步骤执行出现异常,则管理节点选择新的推送节点执行所述回溯步骤和所述持久化步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510072163.5/1.html,转载请声明来源钻瓜专利网。