数据处理方法、装置、计算机可读存储介质和处理器制造方法及图纸

技术编号:37721242 阅读:11 留言:0更新日期:2023-06-02 00:20
本申请提供了一种数据处理方法、装置、计算机可读存储介质和处理器。该方法包括:接收目标数据和目标数据的操作信息,操作信息用于表征对数据的操作的类型;根据目标数据的操作信息,确定目标数据的操作;在目标数据的操作为更新操作的情况下,至少根据目标数据的版本号和数据库的版本号,确定是否将目标数据的更新操作更改为插入操作;在更新操作更改为插入操作的情况下,执行插入操作。该方法可以解决由于网络延迟造成的数据乱序到达的技术问题。由于网络延迟造成的数据乱序到达的技术问题。由于网络延迟造成的数据乱序到达的技术问题。

【技术实现步骤摘要】
数据处理方法、装置、计算机可读存储介质和处理器


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

技术介绍

[0002]在实时数据处理实时数据流时,由于流消息的无限性以及在传输过程中受到网络延迟、消息中间件等影响,到达实时处理系统的消息会出现乱序,即先发生的消息后到达。后到达的消息如果不经处理直接入库,会导致已经落库的数据发生错误。

技术实现思路

[0003]本申请的主要目的在于提供一种数据处理方法、装置、计算机可读存储介质和处理器,以至少解决现有技术中由于网络延迟造成的数据乱序到达的技术问题。
[0004]为了实现上述目的,根据本申请的一个方面,提供了一种数据处理方法,包括:接收目标数据和所述目标数据的操作信息,所述操作信息用于表征对所述数据的操作的类型;根据所述目标数据的操作信息,确定所述目标数据的操作;在所述目标数据的操作为更新操作的情况下,至少根据所述目标数据的版本号和数据库的版本号,确定是否将所述目标数据的更新操作更改为插入操作;在所述更新操作更改为所述插入操作的情况下,执行所述插入操作。
[0005]可选地,至少根据所述目标数据的版本号和数据库的版本号,确定是否将所述目标数据的更新操作更改为插入操作,包括:在所述目标数据的版本号大于等于所述数据库的版本号,且所述数据库的数据量为零的情况下,确定将所述目标数据的更新操作更改为插入操作。
[0006]可选地,至少根据所述目标数据的版本号和数据库的版本号,确定是否将所述目标数据的更新操作更改为插入操作,还包括:在所述目标数据的版本号小于所述数据库的版本号的情况下,或在所述目标数据的版本号大于等于所述数据库的版本号,且所述数据库的数据量不为零的情况下,确定所述目标数据的更新操作被执行。
[0007]可选地,所述方法还包括:在所述目标数据的操作为插入操作的情况下,执行所述插入操作。
[0008]可选地,所述方法还包括:在所述目标数据的操作为删除操作的情况下,将所述删除操作更改为更新操作;执行所述更新操作,并将更新得到的数据的状态标记为失效数据。
[0009]可选地,采用Flink对所述目标数据进行处理。
[0010]可选地,所述目标数据的版本号为乐观锁版本号。
[0011]为了实现上述目的,根据本申请的一个方面,提供了一种数据处理装置,包括:接收单元,用于接收目标数据和所述目标数据的操作信息,所述操作信息用于表征对所述数据的操作的类型;第一确定单元,用于根据所述目标数据的操作信息,确定所述目标数据的操作;第二确定单元,用于在所述目标数据的操作为更新操作的情况下,至少根据所述目标
数据的版本号和数据库的版本号,确定是否将所述目标数据的更新操作更改为插入操作;执行单元,用于在所述更新操作更改为所述插入操作的情况下,执行所述插入操作。
[0012]根据本申请的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行任意一种所述的方法。
[0013]根据本申请的再一方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行任意一种所述的方法。
[0014]应用本申请的技术方案,首先,接收目标数据和所述目标数据的操作信息;再根据所述目标数据的操作信息,确定所述目标数据的操作;然后在所述目标数据的操作为更新操作的情况下,至少根据所述目标数据的版本号和数据库的版本号,确定是否将所述目标数据的更新操作更改为插入操作;最后,在所述更新操作更改为所述插入操作的情况下,执行所述插入操作。采用将目标数据的更新操作更改为插入操作的方式,通过执行所述插入操作,达到了即使所述更新操作发生乱序也可以保证数据库的准确性的目的,进而解决了由于网络延迟造成的数据乱序到达的技术问题。
附图说明
[0015]构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0016]图1示出了根据本申请的实施例中提供的一种执行数据处理方法的移动终端的硬件结构框图;
[0017]图2示出了根据本申请的实施例提供的一种数据处理方法的流程示意图;
[0018]图3示出了根据本申请的实施例提供的更新操作的流程示意图;
[0019]图4示出了根据本申请的实施例提供的一种数据处理装置的结构框图。
[0020]其中,上述附图包括以下附图标记:
[0021]102、处理器;104、存储器;106、传输设备;108、输入输出设备。
具体实施方式
[0022]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
[0023]为了使本
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
[0024]需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清
楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0025]为了便于描述,以下对本申请实施例涉及的部分名词或术语进行说明:
[0026]Flink:Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。此外,Flink的运行时本身也支持迭代算法的执行。
[0027]乐观锁:乐观锁是一种并发控制的方法。它假设多用户并发的事务在处理时不会彼此互相影响,各事务能够在不产生锁的情况下处理各自影响的那部分数据。在提交数据更新之前,每个事务会先检查在该事务读取数据后,有没有其他事务又修改了该数据。如果其他事务有更新的话,正在提交的事务会进行回滚。
[0028]乐观锁版本:在使用乐观锁时,一般会在数据表中加上一个数据版本号字段,表示数据被修改的次数,当数据被修改时,版本号值会加一。当线程A要更新数据值时,在读取数据的同时也会读取版本号值,在提交更新时,若刚才读取到的版本号值为当前数据库中的版本号值相等时才更新。...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:接收目标数据和所述目标数据的操作信息,所述操作信息用于表征对所述数据的操作的类型;根据所述目标数据的操作信息,确定所述目标数据的操作;在所述目标数据的操作为更新操作的情况下,至少根据所述目标数据的版本号和数据库的版本号,确定是否将所述目标数据的更新操作更改为插入操作;在所述更新操作更改为所述插入操作的情况下,执行所述插入操作。2.根据权利要求1所述的方法,其特征在于,至少根据所述目标数据的版本号和数据库的版本号,确定是否将所述目标数据的更新操作更改为插入操作,包括:在所述目标数据的版本号大于等于所述数据库的版本号,且所述数据库的数据量为零的情况下,确定将所述目标数据的更新操作更改为插入操作。3.根据权利要求1所述的方法,其特征在于,至少根据所述目标数据的版本号和数据库的版本号,确定是否将所述目标数据的更新操作更改为插入操作,还包括:在所述目标数据的版本号小于所述数据库的版本号的情况下,或在所述目标数据的版本号大于等于所述数据库的版本号,且所述数据库的数据量不为零的情况下,确定所述目标数据的更新操作被执行。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述目标数据的操作为插入操作的情况下,执行所述插入操作。5...

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

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

1