数据同步存储方法、装置、处理器和电子设备制造方法及图纸

技术编号:38854415 阅读:13 留言:0更新日期:2023-09-17 10:00
本申请提供了一种数据同步存储方法、装置、处理器和电子设备。该存储方法包括:生成ESSink算子;从Kafka中获取目标数据,执行第一算子,以将目标数据存储至第一集群,执行第二算子,以将目标数据存储至第二集群;在执行完第一算子后,生成第一回执指令,在执行完第二算子之后,生成第二回执指令;根据第一回执指令和第二回执指令,确定目标数据是否成功存储至第一集群和第二集群,在目标数据未成功存储至第一集群的情况下,将目标数据存储至第一集群的第一补偿表中,在目标数据未成功存储至第二集群的情况下,将目标数据存储至第二集群的第二补偿表中。通过本申请,解决了ESSink算子不能同时将数据写入双集群的问题。不能同时将数据写入双集群的问题。不能同时将数据写入双集群的问题。

【技术实现步骤摘要】
数据同步存储方法、装置、处理器和电子设备


[0001]本申请涉及数据处理领域,具体而言,涉及一种数据同步存储方法、装置、计算机可读存储介质、处理器和电子设备。

技术介绍

[0002]Apache Flink是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。在Flink分布式处理引擎中提供了原生的用来连接Elasticsearch(基于Lucene的搜索服务器,简称为ES)的连接器,该连接器用于将流式数据实时写入ES中。而针对具体的ES集群,Flink分布式处理引擎的ESSink(ES网关节点,Elasticsearch Sink,简称为ESSink)算子使用批量处理机来完成数据写入功能,批量处理机默认一次提交1000条。
[0003]Apache Flink原生的ESSink虽然已经提供了基于流式数据写入ES的方法。但这个方案存在诸多弊端:一个网关节点只能对单集群进行写入,无法支持同时完成双集群的数据同步写入的需求;且当写入集群失败时,只能进行数据重试,当数据重试失败之后无法对数据进行补偿处理,造成数据丢失。
[0004]因此,亟需一种可以将数据同时写入双集群的方法。

技术实现思路

[0005]本申请的主要目的在于提供一种数据同步存储方法、装置、计算机可读存储介质、处理器和电子设备,以至少解决现有技术中ESSink算子不能同时将数据写入双集群的问题。
[0006]为了实现上述目的,根据本申请的一个方面,提供了一种数据同步存储方法,应用在Apache Flink处理引擎中,包括:生成ESSink算子,其中,所述ESSink算子包括第一算子和第二算子;从Kafka中获取目标数据,执行所述第一算子,以将所述目标数据存储至第一集群,执行所述第二算子,以将所述目标数据存储至第二集群;在执行完所述第一算子后,生成第一回执指令,在执行完所述第二算子之后,生成第二回执指令,其中,所述第一回执指令包括第一执行结果标识和第一集群标识,所述第一执行结果标识用于表征是否成功将所述目标数据写入至所述第一集群,所述第一集群标识用于表征所述第一集群,所述第二回执指令包括第二执行结果标识和第二集群标识,所述第二执行结果标识用于表征是否成功将所述目标数据写入至所述第二集群,所述第二集群标识用于表征所述第二集群;根据所述第一回执指令和所述第二回执指令,确定所述目标数据是否成功存储至所述第一集群和所述第二集群,在所述目标数据未成功存储至所述第一集群的情况下,将所述目标数据存储至所述第一集群的第一补偿表中,在所述目标数据未成功存储至所述第二集群的情况下,将所述目标数据存储至所述第二集群的第二补偿表中。
[0007]可选地,根据所述第一回执指令和所述第二回执指令,确定所述目标数据是否成功存储至所述第一集群和所述第二集群,包括:所述第一回执指令中包含所述第一集群标识且所述第一执行结果标识为成功的情况下,确定所述目标数据成功存储至所述第一集
群,所述第二回执指令中包含所述第二集群标识且所述第二执行结果标识为成功的情况下,确定所述目标数据成功存储至所述第二集群;所述第一回执指令中包含所述第一集群标识且所述第一执行结果标识为失败的情况下,确定所述目标数据未成功存储至所述第一集群,所述第二回执指令中包含所述第二集群标识且所述第二执行结果标识为失败的情况下,确定所述目标数据未成功存储至所述第二集群。
[0008]可选地,将所述目标数据存储至所述第一集群的第一补偿表中之后,所述方法还包括:将所述目标数据存储至所述第一集群的第一补偿表中,生成第三回执指令;根据第三回执指令确定目标数据是否成功存储至所述第一集群的第一补偿表中,在所述目标数据未成功存储至所述第一集群的第一补偿表中的情况下,将所述目标数据存储至第一集群的第三补偿表中;将所述目标数据存储至所述第二集群的第二补偿表中之后,所述方法还包括:将所述目标数据存储至所述第二集群的第二补偿表中,生成第四回执指令;根据第四回执指令确定目标数据是否成功存储至所述第二集群的第二补偿表中,在所述目标数据未成功存储至所述第二集群的第二补偿表中的情况下,将所述目标数据存储至第二集群的第四补偿表中。
[0009]可选地,根据第三回执指令确定目标数据是否成功存储至所述第一集群的第一补偿表中,包括:所述第三回执指令中包含所述第一集群标识且所述第三执行结果标识为成功的情况下,确定所述目标数据成功存储至所述第一集群的第一补偿表中,所述第三回执指令中包含所述第一集群标识且所述第三执行结果标识为失败的情况下,确定所述目标数据未成功存储至所述第一集群的第一补偿表中;根据第四回执指令确定目标数据是否成功存储至所述第二集群的第二补偿表中,包括:所述第四回执指令中包含所述第二集群标识且所述第四执行结果标识为成功的情况下,确定所述目标数据成功存储至所述第二集群的第二补偿表中,所述第四回执指令中包含所述第二集群标识且所述第四执行结果标识为失败的情况下,确定所述目标数据未成功存储至所述第二集群的第二补偿表中。
[0010]可选地,将所述目标数据存储至第一集群的第三补偿表中之后,所述方法还包括:将所述目标数据存储至第一集群的第三补偿表,生成第五回执指令;根据第五回执指令确定目标数据是否成功存储至所述第一集群的第三补偿表中,在所述目标数据未成功存储至所述第一集群的第三补偿表中的情况下,生成所述目标数据的日志文件;将所述目标数据存储至第二集群的第四补偿表中之后,所述方法还包括:将所述目标数据存储至第二集群的第四补偿表,生成第六回执指令;根据第六回执指令确定目标数据是否成功存储至所述第二集群的第四补偿表中,在所述目标数据未成功存储至所述第二集群的第四补偿表中的情况下,生成所述目标数据的日志文件。
[0011]可选地,根据第五回执指令确定目标数据是否成功存储至所述第一集群的第三补偿表中,包括:所述第五回执指令中包含所述第一集群标识且所述第五执行结果标识为成功的情况下,确定所述目标数据成功存储至所述第一集群的第三补偿表中,所述第五回执指令中包含所述第一集群标识且所述第五执行结果标识为失败的情况下,确定所述目标数据未成功存储至所述第一集群的第三补偿表中;根据第六回执指令确定目标数据是否成功存储至所述第二集群的第四补偿表中,包括:所述第六回执指令中包含所述第二集群标识且所述第六执行结果标识为成功的情况下,确定所述目标数据成功存储至所述第二集群的第四补偿表中,所述第四回执指令中包含所述第二集群标识且所述第六执行结果标识为失
败的情况下,确定所述目标数据未成功存储至所述第二集群的第四补偿表中。
[0012]可选地,在执行完所述第一算子后,生成第一回执指令,在执行完所述第二算子之后,生成第二回执指令,包括:在执行完所述第一算子后,接收所述第一集群生成的第一回执指令,在执行完所述第二算子后,接收所述第二集群生成的第二回执指令。
[0013]根据本申请的另一方面,提供了一种数据同步存储装置,应用在Apache Flink处理引擎中,包括:第一生成单元,用于生成ESSink算子,其中,所述E本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据同步存储方法,其特征在于,应用在Apache Flink处理引擎中,包括:生成ESSink算子,其中,所述ESSink算子包括第一算子和第二算子;从Kafka中获取目标数据,执行所述第一算子,以将所述目标数据存储至第一集群,执行所述第二算子,以将所述目标数据存储至第二集群;在执行完所述第一算子之后,生成第一回执指令,在执行完所述第二算子之后,生成第二回执指令,其中,所述第一回执指令包括第一执行结果标识和第一集群标识,所述第一执行结果标识用于表征是否成功将所述目标数据存储至所述第一集群,所述第一集群标识用于表征所述第一集群,所述第二回执指令包括第二执行结果标识和第二集群标识,所述第二执行结果标识用于表征是否成功将所述目标数据存储至所述第二集群,所述第二集群标识用于表征所述第二集群;根据所述第一回执指令和所述第二回执指令,确定所述目标数据是否成功存储至所述第一集群和所述第二集群,在所述目标数据未成功存储至所述第一集群的情况下,将所述目标数据存储至所述第一集群的第一补偿表中,在所述目标数据未成功存储至所述第二集群的情况下,将所述目标数据存储至所述第二集群的第二补偿表中。2.根据权利要求1所述的存储方法,其特征在于,根据所述第一回执指令和所述第二回执指令,确定所述目标数据是否成功存储至所述第一集群和所述第二集群,包括:所述第一回执指令中包含所述第一集群标识且所述第一执行结果标识为成功的情况下,确定所述目标数据成功存储至所述第一集群,所述第二回执指令中包含所述第二集群标识且所述第二执行结果标识为成功的情况下,确定所述目标数据成功存储至所述第二集群;所述第一回执指令中包含所述第一集群标识且所述第一执行结果标识为失败的情况下,确定所述目标数据未成功存储至所述第一集群,所述第二回执指令中包含所述第二集群标识且所述第二执行结果标识为失败的情况下,确定所述目标数据未成功存储至所述第二集群。3.根据权利要求1所述的存储方法,其特征在于,将所述目标数据存储至所述第一集群的第一补偿表中之后,所述方法还包括:将所述目标数据存储至所述第一集群的第一补偿表中,生成第三回执指令;根据第三回执指令确定目标数据是否成功存储至所述第一集群的第一补偿表中,在所述目标数据未成功存储至所述第一集群的第一补偿表中的情况下,将所述目标数据存储至第一集群的第三补偿表中;将所述目标数据存储至所述第二集群的第二补偿表中之后,所述方法还包括:将所述目标数据存储至所述第二集群的第二补偿表中,生成第四回执指令;根据第四回执指令确定目标数据是否成功存储至所述第二集群的第二补偿表中,在所述目标数据未成功存储至所述第二集群的第二补偿表中的情况下,将所述目标数据存储至第二集群的第四补偿表中。4.根据权利要求3所述的存储方法,其特征在于,根据第三回执指令确定目标数据是否成功存储至所述第一集群的第一补偿表中,包括:所述第三回执指令中包含所述第一集群标识且第三执行结果标识为成功的情况下,确定所述目标数据成功存储至所述第一集群的第一补偿表中,所述第三回执指令中包含所述
第一集群标识且所述第三执行结果标识为失败的情况下,确定所述目标数据未成功存储至所述第一集群的第一补偿表中;根据第四回执指令确定目标数据是否成功存储至所述第二集群的第二补偿表中,包括:所述第四回执指令中包含所述第二集群标识且第四执行结果标识为成功的情况下,确定所述目标数据成功存储至所述第二集群的第二补偿表中,所述第四回执指令中包含所述第二集群标识且所述第四执行结果标识为失败的情况下,确定所述目标数据未成功存储至所述第二集群的第二补偿表中。5.根据权利要求3所述的存储方法,其特征在于,将所述目标数据存储至第一集群的第三补偿表中之后,所述方法还包括:将所述目标数...

【专利技术属性】
技术研发人员:关东胡瑞娟李晖邓箫笛王建超董丽娟
申请(专利权)人:中国邮政储蓄银行股份有限公司
类型:发明
国别省市:

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

1