管道式同步缓存方法、装置、设备、存储介质和程序产品制造方法及图纸

技术编号:38737158 阅读:10 留言:0更新日期:2023-09-08 23:23
本申请涉及一种管道式同步缓存方法、装置、计算机设备、存储介质和计算机程序产品,涉及数据同步技术领域。本申请能够实现面向业务模型复杂、同步需求各异、数据量极大性能和灵活性兼顾的平衡。该方法包括:获取关系型数据库的实时增量数据,基于由函数表达式引擎提供的预绑定的一个或多个函数对实时增量数据进行处理,得到待提交数据,该一个或多个函数中至少包含合并函数,用于合并实时增量数据中相同主键的数据,最后通过管道技术提交该待提交数据至缓存数据库。数据至缓存数据库。数据至缓存数据库。

【技术实现步骤摘要】
管道式同步缓存方法、装置、设备、存储介质和程序产品


[0001]本申请涉及数据同步
,特别是涉及一种管道式同步缓存方法、装置、计算机设备、存储介质和计算机程序产品。

技术介绍

[0002]随着企业的发展,业务系统访问性能要求越来越高。为提高应用系统中系统的访问速度,往往在应用层面加入缓存机制,也就是将查询的数据放在内存中,Redis(remote dictionary server,远程字典服务)是对缓存数据进行管理的一种缓存数据库。其中,此关系型数据库与缓存数据库之间数据同步是热点,同步缓存既要保证数据的一致性,又要保证数据的实时性,同时还需要根据业务需求的不同对数据做个性化筛选过滤,满足实际数据应用要求。
[0003]在目前的缓存数据的同步方式中,基于数据库日志增量技术,由关系型数据库将数据变更写入二进制日志,关系型数据库从节点将主节点的日志拷贝到它的中继日志(relay log),关系型数据库从节点重放中继日志中事件,将数据变更反映它自己的数据,增量捕获组件模拟关系型数据库从节点的交互协议,伪装自己为关系型数据库从节点,向关系型数据库主节点发送dump协议,关系型数据库主节点收到dump请求,开始推送binary log(即二进制日志)给slave(即增量捕获组件),增量捕获组件解析二进制日志对象(原始为byte流),将捕获的日志解析、转化、加载同步到缓存。然而,这种技术只能做到简单的表级过滤且通常采用单次写入的方式提交缓存,故在面向业务模型复杂、同步需求各异、数据量极大的情况下,难以灵活实现数据筛选过滤及大数据量缓存提交性能。

技术实现思路

[0004]基于此,有必要针对上述技术问题,提供一种管道式同步缓存方法、装置、计算机设备、存储介质和计算机程序产品。
[0005]第一方面,本申请提供了一种管道式同步缓存方法。所述方法包括:
[0006]获取关系型数据库的实时增量数据;
[0007]基于由函数表达式引擎提供的预绑定的一个或多个函数对所述实时增量数据进行处理,得到待提交数据;所述一个或多个函数中至少包含合并函数;所述合并函数用于合并所述实时增量数据中相同主键的数据;
[0008]通过管道技术提交所述待提交数据至缓存数据库。
[0009]在其中一个实施例中,所述基于由函数表达式引擎提供的预绑定的一个或多个函数对所述实时增量数据进行处理,得到待提交数据,包括:所述一个或多个函数包括所述合并函数及其他函数的情况下,根据所述其他函数对所述实时增量数据进行处理得到待合并数据,根据所述合并函数对所述待合并数据进行处理,得到所述待提交数据。
[0010]在其中一个实施例中,所述其他函数包含事件函数;所述根据所述其他函数对所述实时增量数据进行处理得到待合并数据,包括:确定所述事件函数中绑定的目标数据字
段及目标数值;若所述实时增量数据中所述目标数据字段具有所述目标数值,则根据所述事件函数对应的事件对所述实时增量数据进行处理,得到待合并数据。
[0011]在其中一个实施例中,所述实时增量数据包含多个表的实时增量数据;所述基于由函数表达式引擎提供的预绑定的一个或多个函数对所述实时增量数据进行处理,得到待提交数据,包括:针对每个表的实时增量数据,确定表对应的所述由函数表达式引擎提供的预绑定的一个或多个函数,基于所述一个或多个函数对所述表的实时增量数据进行处理,得到所述表的待提交数据;根据所述每个表的待提交数据,得到待提交数据。
[0012]在其中一个实施例中,所述确定表对应的所述由函数表达式引擎提供的预绑定的一个或多个函数,包括:根据所述表的标识从所述函数表达式引擎中获取所述标识对应的一个或多个函数,作为所述表对应的由函数表达式引擎提供的预绑定的一个或多个函数。
[0013]第二方面,本申请还提供了一种管道式同步缓存装置。所述装置包括:
[0014]数据获取模块,用于获取关系型数据库的实时增量数据;
[0015]合并处理模块,用于基于由函数表达式引擎提供的预绑定的一个或多个函数对所述实时增量数据进行处理,得到待提交数据;所述一个或多个函数中至少包含合并函数;所述合并函数用于合并所述实时增量数据中相同主键的数据;
[0016]管道提交模块,用于通过管道技术提交所述待提交数据至缓存数据库。
[0017]在其中一个实施例中,所述实时增量数据包含多个表的实时增量数据;所述合并处理模块,用于针对每个表的实时增量数据,确定表对应的所述由函数表达式引擎提供的预绑定的一个或多个函数,基于所述一个或多个函数对所述表的实时增量数据进行处理,得到所述表的待提交数据;根据所述每个表的待提交数据,得到待提交数据。
[0018]第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0019]获取关系型数据库的实时增量数据;基于由函数表达式引擎提供的预绑定的一个或多个函数对所述实时增量数据进行处理,得到待提交数据;所述一个或多个函数中至少包含合并函数;所述合并函数用于合并所述实时增量数据中相同主键的数据;通过管道技术提交所述待提交数据至缓存数据库。
[0020]第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
[0021]获取关系型数据库的实时增量数据;基于由函数表达式引擎提供的预绑定的一个或多个函数对所述实时增量数据进行处理,得到待提交数据;所述一个或多个函数中至少包含合并函数;所述合并函数用于合并所述实时增量数据中相同主键的数据;通过管道技术提交所述待提交数据至缓存数据库。
[0022]第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
[0023]获取关系型数据库的实时增量数据;基于由函数表达式引擎提供的预绑定的一个或多个函数对所述实时增量数据进行处理,得到待提交数据;所述一个或多个函数中至少包含合并函数;所述合并函数用于合并所述实时增量数据中相同主键的数据;通过管道技术提交所述待提交数据至缓存数据库。
[0024]上述管道式同步缓存方法、装置、设备、存储介质和程序产品,获取关系型数据库
的实时增量数据,基于由函数表达式引擎提供的预绑定的一个或多个函数对实时增量数据进行处理,得到待提交数据,该一个或多个函数中至少包含合并函数,用于合并实时增量数据中相同主键的数据,最后通过管道技术提交该待提交数据至缓存数据库。该方案可采用基于数据库日志增量技术解析出变化的数据,在数据异构转化的过程中基于由函数表达式引擎提供的预绑定的一个或多个函数对实时增量数据进行处理,实现数据同步业务需求的无代码参数化配置,且一个或多个函数中包含合并函数,实现同一批次有序数据无序化,从而可以采用管道式提交缓存提升缓存提交性能,减少同步缓存时延,从而真正实现面向业务模本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种管道式同步缓存方法,其特征在于,所述方法包括:获取关系型数据库的实时增量数据;基于由函数表达式引擎提供的预绑定的一个或多个函数对所述实时增量数据进行处理,得到待提交数据;所述一个或多个函数中至少包含合并函数;所述合并函数用于合并所述实时增量数据中相同主键的数据;通过管道技术提交所述待提交数据至缓存数据库。2.根据权利要求1所述的方法,其特征在于,所述基于由函数表达式引擎提供的预绑定的一个或多个函数对所述实时增量数据进行处理,得到待提交数据,包括:所述一个或多个函数包括所述合并函数及其他函数的情况下,根据所述其他函数对所述实时增量数据进行处理得到待合并数据,根据所述合并函数对所述待合并数据进行处理,得到所述待提交数据。3.根据权利要求2所述的方法,其特征在于,所述其他函数包含事件函数;所述根据所述其他函数对所述实时增量数据进行处理得到待合并数据,包括:确定所述事件函数中绑定的目标数据字段及目标数值;若所述实时增量数据中所述目标数据字段具有所述目标数值,则根据所述事件函数对应的事件对所述实时增量数据进行处理,得到待合并数据。4.根据权利要求1所述的方法,其特征在于,所述实时增量数据包含多个表的实时增量数据;所述基于由函数表达式引擎提供的预绑定的一个或多个函数对所述实时增量数据进行处理,得到待提交数据,包括:针对每个表的实时增量数据,确定表对应的所述由函数表达式引擎提供的预绑定的一个或多个函数,基于所述一个或多个函数对所述表的实时增量数据进行处理,得到所述表的待提交数据;根据所述每个表的待提交数据,得到待提交数据。5.根据权利要求...

【专利技术属性】
技术研发人员:史立学朱明英陈韬洪坤陈科勇
申请(专利权)人:中国电信股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1