一种数据库的数据更新同步方法、装置、设备及介质与流程
- 国知局
- 2024-07-31 23:09:37
本说明书涉及计算机,尤其涉及一种数据库的数据更新同步方法、装置、设备及介质。
背景技术:
1、随着大数据相关技术及工具的不断发展,如今对数据的实时性与一致性要求也越来越高,通过对flink cdc(change data capture)抽取的数据库进行二次处理,提高了数据的实时性与准确性,flink是一种大数据处理框架,flink cdc可以指在flink框架中使用的更改数据捕获功能。
2、flink cdc在采集当前主流数据库的更新操作时,并不直接提供更新操作,而是通过记录数据变化前后的镜像来反映更新操作。具体来说,它先记录一个删除操作,表示旧记录被逻辑删除,然后再记录一个插入操作,表示新记录被插入。这种方式虽然能够捕捉到数据的变化,但却给后续应用的判断带来了困扰,可能使得应用识别错误,而导致不准确的处理结果。
技术实现思路
1、本说明书一个或多个实施例提供了一种数据库的数据更新同步方法、装置、设备及介质,用于解决背景技术提出的技术问题。
2、本说明书一个或多个实施例采用下述技术方案:
3、本说明书一个或多个实施例提供的一种数据库的数据更新同步方法,所述方法包括:
4、通过flink cdc从数据库中提取数据表的当前消息,并将所述数据表的当前消息放入指定消息队列;
5、获取所述当前消息的主键,并根据所述主键设置为所述当前消息的键值;
6、若确定缓存中存放有上条消息,分别确定所述当前消息与所述上条消息的操作类型,所述当前消息与所述上条消息的操作类型皆为插入操作或删除操作;
7、若所述当前消息与所述上条消息的操作类型不同,判断所述当前消息与所述上条消息的键值是否相同;
8、若所述当前消息与所述上条消息的键值相同,将所述当前消息与所述上条消息的操作类型设置为更新操作,将所述当前消息与所述上条消息进行合并,生成合并消息,并将所述合并消息放入目标消息队列,以完成数据库的数据更新同步。
9、需要说明的是,本说明书实施例通过上述内容,具有下述有益效果:
10、提高数据准确性:通过将当前消息与上条消息进行对比和合并,避免了因flinkcdc采集方式导致的操作类型判断错误,从而提高了数据的准确性。
11、简化后续处理:将更新操作合并为一个消息,减少了后续应用需要处理的消息数量,降低了处理复杂度。
12、优化系统性能:减少了消息的数量和处理环节,提高了系统的性能和效率。
13、增强数据一致性:确保了数据更新的一致性,避免了因操作类型错误而导致的数据不一致问题。
14、提高数据可靠性:通过修复操作类型判断问题,减少了数据错误的可能性,提高了数据的可靠性。
15、进一步的,本说明书实施例若确定缓存中未存放有上条消息,所述方法还包括:
16、将所述当前消息存放到缓存中,其中,所述缓存为redis缓存。
17、进一步的,本说明书实施例若所述当前消息与所述上条消息的操作类型相同,所述方法还包括:
18、将所述上条消息进行删除,并将所述当前消息发送至所述目标消息队列与缓存中。
19、需要说明的是,本说明书实施例通过上述内容,具有下述有益效果:
20、减少冗余数据:通过删除上条消息,避免了相同操作类型的消息重复存储,减少了冗余数据。
21、节省存储空间:删除重复消息有助于降低存储空间的占用,减少存储成本。
22、提高数据一致性:将当前消息发送至目标消息队列和缓存,确保数据的一致性和准确性。
23、进一步的,本说明书实施例若所述当前消息与所述上条消息的键值不相同,所述方法还包括:
24、将所述上条消息放入所述目标消息队列,并将所述当前消息放入缓存中。
25、需要说明的是,本说明书实施例通过上述内容,具有下述有益效果:
26、提高消息处理效率:通过判断当前消息与上条消息的键值是否相同,可以快速确定它们之间的关系。对于无关的消息,可以直接将上条消息放入目标消息队列,而将当前消息放入缓存中,避免了不必要的处理步骤,提高了消息处理的效率。
27、减少数据库操作:将消息放入缓存中可以减少对数据库的频繁访问,降低了数据库的负载。当需要使用这些消息时,可以直接从缓存中获取,提高了系统的性能。
28、保证消息的有序性:将上条消息放入目标消息队列,确保了消息的顺序。在后续的处理过程中,可以按照队列的顺序依次处理消息,保证了消息的有序性和一致性。
29、进一步的,本说明书实施例所述通过flink cdc从数据库中提取数据表的当前消息,包括:
30、通过flink cdc从数据库的binlog中提取数据表的当前消息。
31、进一步的,本说明书实施例所述若确定缓存中存放有上条消息,分别确定所述当前消息与所述上条消息的操作类型前,所述方法还包括:
32、设定定时任务;
33、若所述定时任务终止后未执行所述若确定缓存中存放有上条消息,分别确定所述当前消息与所述上条消息的操作类型,则将所述当前消息放入所述目标消息队列。
34、需要说明的是,本说明书实施例通过上述内容,具有下述有益效果:
35、提高系统的灵活性:通过设定定时任务,可以根据实际情况灵活地控制消息的处理流程。如果定时任务终止后未执行特定操作,系统可以采取相应的措施,如将消息放入目标消息队列,以确保消息的处理不受影响。
36、保证消息的正常处理:如果当前消息不是从更新操作分解而来,将其放入目标消息队列可以保证消息能够按照正常的流程进行处理,避免消息的丢失或延迟处理。
37、减少不必要的操作:通过定时任务的机制,可以避免对每个消息都进行不必要的操作,提高了系统的效率。只有在特定条件下,即定时任务终止后未执行操作类型确定步骤,才会将消息放入目标消息队列。
38、进一步的,本说明书实施例所述定时任务设定为2秒。
39、本说明书一个或多个实施例提供的一种数据库的数据更新同步装置,包括:
40、消息提取单元,通过flink cdc从数据库中提取数据表的当前消息,并将所述数据表的当前消息放入指定消息队列;
41、键值设定单元,获取所述当前消息的主键,并根据所述主键设置为所述当前消息的键值;
42、类型确定单元,若确定缓存中存放有上条消息,分别确定所述当前消息与所述上条消息的操作类型,所述当前消息与所述上条消息的操作类型皆为插入操作或删除操作;
43、键值判定单元,若所述当前消息与所述上条消息的操作类型不同,判断所述当前消息与所述上条消息的键值是否相同;
44、更新同步单元,若所述当前消息与所述上条消息的键值相同,将所述当前消息与所述上条消息的操作类型设置为更新操作,将所述当前消息与所述上条消息进行合并,生成合并消息,并将所述合并消息放入目标消息队列,以完成数据库的数据更新同步。
45、本说明书一个或多个实施例提供的一种数据库的数据更新同步设备,包括:
46、至少一个处理器;以及,
47、与所述至少一个处理器通信连接的存储器;其中,
48、所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
49、通过flink cdc从数据库中提取数据表的当前消息,并将所述数据表的当前消息放入指定消息队列;
50、获取所述当前消息的主键,并根据所述主键设置为所述当前消息的键值;
51、若确定缓存中存放有上条消息,分别确定所述当前消息与所述上条消息的操作类型,所述当前消息与所述上条消息的操作类型皆为插入操作或删除操作;
52、若所述当前消息与所述上条消息的操作类型不同,判断所述当前消息与所述上条消息的键值是否相同;
53、若所述当前消息与所述上条消息的键值相同,将所述当前消息与所述上条消息的操作类型设置为更新操作,将所述当前消息与所述上条消息进行合并,生成合并消息,并将所述合并消息放入目标消息队列,以完成数据库的数据更新同步。
54、本说明书一个或多个实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令被计算机执行时能够实现:
55、通过flink cdc从数据库中提取数据表的当前消息,并将所述数据表的当前消息放入指定消息队列;
56、获取所述当前消息的主键,并根据所述主键设置为所述当前消息的键值;
57、若确定缓存中存放有上条消息,分别确定所述当前消息与所述上条消息的操作类型,所述当前消息与所述上条消息的操作类型皆为插入操作或删除操作;
58、若所述当前消息与所述上条消息的操作类型不同,判断所述当前消息与所述上条消息的键值是否相同;
59、若所述当前消息与所述上条消息的键值相同,将所述当前消息与所述上条消息的操作类型设置为更新操作,将所述当前消息与所述上条消息进行合并,生成合并消息,并将所述合并消息放入目标消息队列,以完成数据库的数据更新同步。
60、本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
61、提高数据准确性:通过将当前消息与上条消息进行对比和合并,避免了因flinkcdc采集方式导致的操作类型判断错误,从而提高了数据的准确性。
62、简化后续处理:将更新操作合并为一个消息,减少了后续应用需要处理的消息数量,降低了处理复杂度。
63、优化系统性能:减少了消息的数量和处理环节,提高了系统的性能和效率。
64、增强数据一致性:确保了数据更新的一致性,避免了因操作类型错误而导致的数据不一致问题。
65、提高数据可靠性:通过修复操作类型判断问题,减少了数据错误的可能性,提高了数据的可靠性。
本文地址:https://www.jishuxx.com/zhuanli/20240730/196143.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。