多关联实时数据流的乱序处理方法、装置、介质和设备制造方法及图纸

技术编号:30411289 阅读:23 留言:0更新日期:2021-10-20 11:43
本发明专利技术提供多关联实时数据流的乱序处理方法、装置、介质和设备,该方法包括:实时监测数据库中主表和/或关联表的日志变化;当日志发生变化时,将主表变化记录和关联表变化记录以多分区方式并行写入消息列队的相应主题;获取主表和关联表的多分区数据流;将主表的业务主键加载到缓存区;获取业务外键,判断是否能从缓存区获取到对应的业务主键;如果能够获取到业务主键,则分别将主表和关联表的多分区数据流合并为单独分区数据流,根据指定字段对各单独分区数据流进行分组处理,针对每个分组的数据流进行排序处理,对每个分组的数据流进行消费,对消费后的数据流执行业务逻辑处理。该方法可在高并发的多关联数据流实时场景下解决出现的乱序。决出现的乱序。决出现的乱序。

【技术实现步骤摘要】
多关联实时数据流的乱序处理方法、装置、介质和设备


[0001]本专利技术涉及领域,尤其涉及一种多关联实时数据流的乱序处理方法、装置、介质和设备。

技术介绍

[0002]在大数据时代随着数据量不断的增加,数据种类的繁多以及实时大数据应用越来越多,因Hadoop作为离线的高吞吐、低响应框架已不能满足这类需求,因此通过实时计算框架进行微批或者流式处理来降级数据延迟以此来保证数据可以高效的呈现给用户。
[0003]在使用实时计算框架处理数据时,具体实现是先将外部数据存储到消息队列当中,通过实时框架去实时消费对应主题下的数据并进行业务逻辑的处理,以此来降级数据延迟。
[0004]专利技术人在实现本专利技术的过程中发现,现有技术至少存在如下不足:
[0005]在应用实时计算框架来处理的数据流时面临着数据延迟、丢失、重复的问题,因此需要将延迟的数据及消费的偏移量存入到缓存区以保证数据的准确性,但在提高任务的并行度的多分区情况下很难保证顺序问题,因此在一些需要保证顺序的业务场景中就会导致偏差。

技术实现思路

[0006]有鉴于此,本专利技术提供一种多关联实时数据流的乱序处理方法、装置、介质和设备,以实现在在高并发的多关联数据流实时场景下,解决因不同数据流而出现的乱序。
[0007]为达上述目的,第一方面,提供一种多关联实时数据流的乱序处理方法,其包括:
[0008]实时监测数据库中主表和/或关联表的日志变化;
[0009]当所述数据库中主表和/或关联表的日志发生变化时,获得主表变化记录和/或关联表变化记录,将所述主表变化记录以多分区方式并行写入消息列队的主表主题中,将所述关联表变化记录以多分区方式并行写入消息队列的关联表主题中;
[0010]启动主表实时进程从所述主表主题中获取所述主表的多分区数据流,启动关联表实时进程从所述关联表主题中获取所述关联表的多分区数据流;
[0011]将所述主表的业务主键加载到所述数据库的缓存区;
[0012]在获取所述关联表的数据流之后获取业务外键,并且判断是否能够从所述缓存区获取到对应的业务主键;
[0013]如果能够获取到业务主键,则分别将所述主表的多分区数据流和所述关联表的多分区数据流合并为一个单独分区数据流,根据指定字段对每个单独分区数据流进行分组处理获得多个分组,针对每个分组中的数据流进行排序处理,并根据排序处理确定的顺序对每个分组中的数据流进行消费,对消费后的数据流执行业务逻辑处理。
[0014]在一些可能的实施方式中,所述的对消费后的数据流执行业务逻辑处理包括:将消费后的主表的数据流和消费后的关联表的数据流翻译后同步到目标库。
[0015]在一些可能的实施方式中,所述方法还包括:如果不能够从所述缓存区获取到对应的业务主键,则将所述关联表的数据流写入所述缓存区以等待重新加载。
[0016]在一些可能的实施方式中,所述数据库是关系型数据库;所述主表和/或关联表中的每张表的表名是消息队列的主题;所述的根据指定字段对每个单独分区数据流进行分组处理获得多个分组,具体包括:
[0017]根据业务主键及其对应的事务标识字段对所述主表的单独分区数据流进行分组处理,根据业务外键及其对应的事务标识字段对所述关联表的单独分区数据流进行分组处理,获得多个分组;
[0018]所述的针对每个分组中的数据流进行排序处理,并根据排序处理确定的顺序对每个分组中的数据流进行消费,具体包括:
[0019]针对每个分组中的数据流,按照事件时间进行升序排序处理;
[0020]根据按照事件时间进行升序排序处理后确定的顺序,对每个分组中的数据流进行顺序消费。
[0021]第二方面,提供一种多关联实时数据流的乱序处理装置,其包括:
[0022]实时监控采集模块,用于实时监测数据库中主表和/或关联表的日志变化;
[0023]实时同步模块,用于当所述数据库中主表和/或关联表的日志发生变化时,获得主表变化记录和/或关联表变化记录,将所述主表变化记录以多分区方式并行写入消息列队的主表主题中,将所述关联表变化记录以多分区方式并行写入消息队列的关联表主题中;
[0024]进程启动模块,用于启动主表实时进程从所述主表主题中获取所述主表的多分区数据流,启动关联表实时进程从所述关联表主题中获取所述关联表的多分区数据流;
[0025]加载模块,用于将所述主表的业务主键加载到所述数据库的缓存区;
[0026]判断模块,用于在获取所述关联表的数据流之后获取业务外键,并且判断是否能够从所述缓存区获取到对应的业务主键;
[0027]处理模块,用于如果能够获取到业务主键,则分别将所述主表的多分区数据流和所述关联表的多分区数据流合并为一个单独分区数据流,根据指定字段对每个单独分区数据流进行分组处理获得多个分组,针对每个分组中的数据流进行排序处理,并根据排序处理确定的顺序对每个分组中的数据流进行消费,对消费后的数据流执行业务逻辑处理。
[0028]在一些可能的实施方式中,所述处理模块,具体用于将消费后的主表的数据流和消费后的关联表的数据流翻译后同步到目标库。
[0029]在一些可能的实施方式中,所述处理模块,还用于如果不能够从所述缓存区获取到对应的业务主键,则将所述关联表的数据流写入所述缓存区以等待重新加载。
[0030]在一些可能的实施方式中,所述数据库是关系型数据库;所述主表和/或关联表中的每张表的表名是消息队列的主题;所述处理模块,具体用于根据业务主键及其对应的事务标识字段对所述主表的单独分区数据流进行分组处理,根据业务外键及其对应的事务标识字段对所述关联表的单独分区数据流进行分组处理,获得多个分组;针对每个分组中的数据流,按照事件时间进行升序排序处理;根据按照事件时间进行升序排序处理后确定的顺序对每个分组中的数据流进行顺序消费。
[0031]第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的任意一种多关联实时数据流的乱序处理方法。
[0032]第四方面,提供一种计算机设备,其包括:
[0033]一个或多个处理器;
[0034]存储装置,用于存储一个或多个程序;
[0035]当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的任意一种多关联实时数据流的乱序处理方法。
[0036]上述技术方案的优点在于:
[0037]本专利技术实施例不仅保证了在高并发实时场景下多关联表数据流的延迟和重复的问题,而且还有效的解决了多关联表数据流乱序的问题。从试验的结果来看,采用本专利技术实施例的方法后,即使输入端有频繁的重复操作也可以保证应用端有准确的数据,基本满足了各种业务场景下乱序的问题。本专利技术实施例的技术方案实现简单,达到了应用的要求。
附图说明
[0038]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多关联实时数据流的乱序处理方法,其特征在于,包括:实时监测数据库中主表和/或关联表的日志变化;当所述数据库中主表和/或关联表的日志发生变化时,获得主表变化记录和/或关联表变化记录,将所述主表变化记录以多分区方式并行写入消息列队的主表主题中,将所述关联表变化记录以多分区方式并行写入消息队列的关联表主题中;启动主表实时进程从所述主表主题中获取所述主表的多分区数据流,启动关联表实时进程从所述关联表主题中获取所述关联表的多分区数据流;将所述主表的业务主键加载到所述数据库的缓存区;在获取所述关联表的数据流之后获取业务外键,并且判断是否能够从所述缓存区获取到对应的业务主键;如果能够获取到业务主键,则分别将所述主表的多分区数据流和所述关联表的多分区数据流合并为一个单独分区数据流,根据指定字段对每个单独分区数据流进行分组处理获得多个分组,针对每个分组中的数据流进行排序处理,并根据排序处理确定的顺序对每个分组中的数据流进行消费,对消费后的数据流执行业务逻辑处理。2.根据权利要求1所述的方法,其特征在于,所述的对消费后的数据流执行业务逻辑处理包括:将消费后的主表的数据流和消费后的关联表的数据流翻译后同步到目标库。3.根据权利要求1或2所述的方法,其特征在于,还包括:如果不能够从所述缓存区获取到对应的业务主键,则将所述关联表的数据流写入所述缓存区以等待重新加载。4.根据权利要求1或2所述的方法,其特征在于,所述数据库是关系型数据库;所述主表和/或关联表中的每张表的表名是消息队列的主题;所述的根据指定字段对每个单独分区数据流进行分组处理获得多个分组,具体包括:根据业务主键及其对应的事务标识字段对所述主表的单独分区数据流进行分组处理,根据业务外键及其对应的事务标识字段对所述关联表的单独分区数据流进行分组处理,获得多个分组;所述的针对每个分组中的数据流进行排序处理,并根据排序处理确定的顺序对每个分组中的数据流进行消费,具体包括:针对每个分组中的数据流,按照事件时间进行升序排序处理;根据按照事件时间进行升序排序处理后确定的顺序对每个分组中的数据流进行顺序消费。5.一种多关联实时数据流的乱序处理装置,其特征在于,包括:实时监控采集模块,用于实时监测数据库中主表和/或关联表的日志变化;实时同步模块,用于当所述数据库中主表和/或关联表的日志发生变化时,获得主表...

【专利技术属性】
技术研发人员:马明辉王彬宋建锋张翼
申请(专利权)人:北京亿欧网盟科技有限公司
类型:发明
国别省市:

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

1