CN117407402A - 数据更新方法、装置、电子设备及计算机存储介质 - Google Patents
数据更新方法、装置、电子设备及计算机存储介质 Download PDFInfo
- Publication number
- CN117407402A CN117407402A CN202311157353.8A CN202311157353A CN117407402A CN 117407402 A CN117407402 A CN 117407402A CN 202311157353 A CN202311157353 A CN 202311157353A CN 117407402 A CN117407402 A CN 117407402A
- Authority
- CN
- China
- Prior art keywords
- distributed node
- data
- local table
- distributed
- full
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000012795 verification Methods 0.000 claims description 60
- 238000004590 computer program Methods 0.000 claims description 22
- 238000012545 processing Methods 0.000 claims description 13
- 238000012216 screening Methods 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 230000009286 beneficial effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 229920001971 elastomer Polymers 0.000 description 1
- 239000000806 elastomer Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Abstract
本申请实施例公开了一种数据更新方法、装置、电子设备及计算机存储介质;在本申请实施例中,获取需存储至分布式数据库的全量数据,并对所述全量数据进行切片处理,得到所述分布式数据库中的各个分布式节点对应的子全量数据;将所述分布式节点对应的子全量数据,发送至所述分布式节点;触发所述分布式节点创临时本地表,并将所述分布式节点对应的子全量数据存储至所述临时本地表中;触发所述分布式节点在目标时间,删除所述分布式节点中的正式本地表,并将所述临时本地表重命名为所述正式本地表的名称,以完成所述分布式节点中数据的更新。本申请实施例可以减少分布式数据库的不可用时间。
Description
技术领域
本申请涉及数据处理技术领域,具体涉及一种数据更新方法、装置、电子设备及计算机存储介质。
背景技术
ClickHouse分布式数据库是一个用于联机分析处理(Online AnalysisProcessing,OLAP)的开源列式数据库,由于其功能完善、性能强悍,因此,其在各个领域被广泛应用。
但是,ClickHouse分布式数据库不支持事务操作,导致ClickHouse数分布式据库的各个节点进行数据更新时,ClickHouse分布式数据库不可用的时间较长。
发明内容
本申请实施例提供一种数据更新方法、装置、电子设备及计算机存储介质,可以解决ClickHouse分布式数据库不可用的时间较长的技术问题。
本申请实施例提供一种数据更新方法,包括:
获取需存储至分布式数据库的全量数据,并对上述全量数据进行切片处理,得到上述分布式数据库中的各个分布式节点对应的子全量数据;
将上述分布式节点对应的子全量数据,发送至上述分布式节点;
触发上述分布式节点创临时本地表,并将上述分布式节点对应的子全量数据存储至上述临时本地表中;
触发上述分布式节点在目标时间,删除上述分布式节点中的正式本地表,并将上述临时本地表重命名为上述正式本地表的名称,以完成上述分布式节点中数据的更新。
相应地,本申请实施例提供一种数据更新装置,包括:
获取模块,用于获取需存储至分布式数据库的全量数据,并对上述全量数据进行切片处理,得到上述分布式数据库中的各个分布式节点对应的子全量数据;
发送模块,用于将上述分布式节点对应的子全量数据,发送至上述分布式节点;
存储模块,用于触发上述分布式节点创临时本地表,并将上述分布式节点对应的子全量数据存储至上述临时本地表中;
命名模块,用于触发上述分布式节点在目标时间,删除上述分布式节点中的正式本地表,并将上述临时本地表重命名为上述正式本地表的名称,以完成上述分布式节点中数据的更新。
此外,本申请实施例还提供一种电子设备,包括处理器和存储器,上述存储器存储有计算机程序,上述处理器用于运行上述存储器内的计算机程序实现本申请实施例提供的数据更新方法。
此外,本申请实施例还提供一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序适于处理器进行加载,以执行本申请实施例所提供的任一种数据更新方法。
此外,本申请实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现本申请实施例所提供的任一种数据更新方法。
在本申请实施例中,获取需存储至分布式数据库的全量数据,并对全量数据进行切片处理,得到分布式数据库中的各个分布式节点对应的子全量数据;将分布式节点对应的子全量数据,发送至分布式节点;触发分布式节点创临时本地表,并将分布式节点对应的子全量数据存储至临时本地表中;触发分布式节点在目标时间,删除分布式节点中的正式本地表,并将临时本地表重命名为正式本地表的名称,以完成分布式节点中数据的更新,实现各个分布式节点均在目标时间删除分布式节点中的正式本地表,并将临时本地表重命名为正式本地表的名称,减少分布式数据库的不可用时间。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的数据更新过程的流程示意图;
图2是本申请实施例提供的分布式数据库的不可用时间的示意图;
图3是本申请实施例提供的分布式数据库的另一种不可用时间的示意图;
图4是本申请实施例提供的另一种数据更新方法的流程示意图;
图5是本申请实施例提供的数据更新装置的结构示意图;
图6是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种数据更新方法、装置、电子设备及计算机存储介质。该数据更新装置可以集成在电子设备中,该电子设备可以是服务器,也可以是终端等设备。
其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、网络加速服务(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
另外,本申请实施例中的“多个”指两个或两个以上。本申请实施例中的“第一”和“第二”等用于区分描述,而不能理解为暗示相对重要性。
以下分别进行详细说明。需要说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
在本实施例中,将从数据更新装置的角度进行描述,为了方便对本申请的数据更新方法进行说明,以下将以数据更新装置集成在服务器中进行详细说明,即以服务器作为执行主体进行详细说明,本申请实施例中的服务器可以理解为分布式数据库的中心节点。
请参阅图1,图1是本申请一实施例提供的数据更新方法的流程示意图。该数据更新方法可以包括:
S101、获取需存储至分布式数据库的全量数据,并对全量数据进行切片处理,得到分布式数据库中的各个分布式节点对应的子全量数据。
全量数据指需要存储至分布式数据库的全量数据。全量数据指源数据库中全部的数据。分布式数据库的类型可以根据实际情况进行选择,比如,分布式数据库可以为ClickHouse数据库或Elasticsearch数据库,本申请实施例在此不做限定。
分布式数据库中的各个分布式节点,可以理解为存储分布式数据库中的数据的服务器。分布式节点对应的子全量数据,指需要存储至该分布式节点的数据。
对全量数据进行切片处理,得到分布式数据库中的各个分布式节点对应的子全量数据的方法可以根据实际情况进行选择,比如,可以通过Round-Robin、Range、List、哈希算法或剩余法,对全量数据进行切片处理,得到分布式数据库中的各个分布式节点对应的子全量数据,本申请实施例在此不做限定。
当通过哈希算法对全量数据进行切片处理,得到分布式数据库中的各个分布式节点对应的子全量数据时,全量数据存储在数据表中,对全量数据进行切片处理,得到分布式数据库中的各个分布式节点对应的子全量数据的过程可以为:
从数据表中筛选出目标字段;
对目标字段进行哈希运算,得到目标字段对应的哈希值;
获取分布式数据库包括的分布式节点的个数;
根据哈希值和个数,对全量数据进行切片处理,得到分布式数据库中的各个分布式节点对应的子全量数据。
其中,目标字段可以为数据表中的至少一个字段。可选地,为了简化哈希运算的运算量,可以从目标字段中筛选出预设数量的目标字符,然后再对目标字符进行哈希运算,得到目标字段对应的哈希值。
预设数量少于目标字段包括的全部字符的数量。如果目标字段包括数据表中的至少两个字段,则可以将目标字段中每个字段的目标字符进行拼接处理,得到拼接后字符,再对拼接后字符进行哈希运算,得到目标字符对应的哈希值。
可选地,根据哈希值和个数,对全量数据进行切片处理,得到分布式数据库中的各个分布式节点对应的子全量数据,包括:
将哈希值和个数进行取余处理,得到哈希值和个数对应的余数;
将余数对应的节点标识对应的分布式节点,作为存储目标字段对应的数据的分布式节点,目标字段对应的数据为分布式节点对应的子全量数据。
比如,余数为3,则将节点标识为3的分布式节点,作为存储目标字段对应的数据的分布式节点。
当通过剩余法对全量数据进行切片处理,得到分布式数据库中的各个分布式节点对应的子全量数据时,对全量数据进行切片处理,得到分布式数据库中的各个分布式节点对应的子全量数据的过程可以为:
获取分布式数据库中的各个分布式节点的剩余存储空间的大小;
根据剩余存储空间的大小,对全量数据进行切片处理,得到分布式数据库中的各个分布式节点对应的子全量数据。
其中,剩余存储空间的大小越大的分布式节点,其对应的子全量数据越多,剩余存储空间的大小越小的分布式节点,其对应的子全量数据越少。
比如,分布式节点包括分布式节点n1、分布式节点n2以及分布式节点n3,分布式节点n1的剩余存储空间的大小为M1,分布式节点n2的剩余存储空间的大小为M2以及分布式节点n3的剩余存储空间的大小为M3,M1大于M2,M2大于M3,则根据M1、M2以及M3对全量数据进行分片处理之后,分布式节点n1对应的子全量数据多于分布式节点n2对应的子全量数据,分布式节点n2对应的子全量数据多于分布式节点n3的子全量数据。
在一些实施例中,对全量数据进行切片处理,得到分布式数据库中的各个分布式节点对应的子全量数据,包括:
确定全量数据的大小以及分布式数据库中各个分布式节点的总存储空间大小;
若全量数据的大小小于或等于总存储空间大小,则对全量数据进行切片处理,得到分布式数据库中的各个分布式节点对应的子全量数据。
如果全量数据的大小大于总存储空间大小,则先对分布式数据库进行扩容处理,以增加分布式数据库包括的分布式节点的数量,从而增加分布式数据库中各个分布式节点的总存储空间大小,进而使得全量数据的大小小于或等于总存储空间大小,然后再对全量数据进行切片处理,得到分布式数据库中的各个分布式节点对应的子全量数据。
S102、将分布式节点对应的子全量数据,发送至分布式节点。
服务器在得到各个分布式节点对应的子全量数据之后,可以将每个分布式节点对应的子全量数据,发送至每个分布式节点。
在一些实施例中,将分布式节点对应的子全量数据,发送至分布式节点的过程可以为:
衡量各个分布式节点的网络状态;
若各个分布式节点的网络状态均满足预设网络状态,则将分布式节点对应的子全量数据,发送至分布式节点。
在本申请实施例中,先衡量各个分布式节点的网络状态;若各个分布式节点的网络状态均满足预设网络状态,则将分布式节点对应的子全量数据,发送至分布式节点,使得各个分布式节点接收到对应的子全量数据的时间尽量相同,从而使得各个分布式节点在获取到对应的子全量数据之后,立即创临时本地表,并将分布式节点对应的子全量数据存储至临时本地表中时,各个分布式节点创临时本地表,并将分布式节点对应的子全量数据存储至临时本地表中的时间尽量相同,减少分布式数据库中将数据导入临时本地表的时间。
在另一些实施例中,当每个分布式节点存储的子全量数据的大小不相同时,将分布式节点对应的子全量数据,发送至分布式节点的过程可以为:
衡量各个分布式节点的网络状态;
根据分布式节点的网络状态和分布式节点对应的子全量数据的大小,预测分布式节点对应的子全量数据的传输时间长度;
根据分布式节点对应的子全量数据的传输时间长度,确定分布式节点对应的子全量数据的开始传输时刻,以使各个分布式节点在获取到对应的子全量数据的时间相同。
比如,分布式节点包括分布式节点n1、分布式节点n2、以及分布式节点n3,分布式节点n1对应的子全量数据的传输时间长度为t1时间长度,分布式节点n2对应的子全量数据的传输时间长度为t2时间长度,分布式节点n3对应的子全量数据的传输时间长度为t3时间长度,t1大于t2,t2大于t3,则服务器可以在T1时刻,开始传输分布式节点n1对应的子全量数据,在T2时刻开始传输分布式节点n2对应的子全量数据,在T3时刻开始传输分布式节点n3对应的子全量数据,使得分布式节点n1、分布式节点n2以及分布式节点n3均在T4时刻获取到其对应的子全量数据,T1时刻先于T2时刻,T2时刻先于T3时刻。
在本申请实施例中,衡量各个分布式节点的网络状态;根据分布式节点的网络状态和分布式节点对应的子全量数据的大小,预测分布式节点对应的子全量数据的传输时间长度;根据分布式节点对应的子全量数据的传输时间长度,确定分布式节点对应的子全量数据的开始传输时刻,以使各个分布式节点在获取到对应的子全量数据的时间相同,从而使得各个分布式节点在获取到对应的子全量数据之后,立即创临时本地表,并将分布式节点对应的子全量数据存储至临时本地表中时,各个分布式节点创临时本地表,并将分布式节点对应的子全量数据存储至临时本地表中的时间尽量相同,减少分布式数据库中将数据导入临时本地表的时间。
S103、触发分布式节点创临时本地表,并将分布式节点对应的子全量数据存储至临时本地表中。
分布式节点在获取到子全量数据之后,可以立即创建临时本地表,并将分布式节点对应的子全量数据存储至临时本地表中。
由于每个分布式节点获取到子全量数据的时间不同,如果分布式节点在获取到子全量数据之后,立即创建临时本地表,并将分布式节点对应的子全量数据存储至临时本地表中,会导致分布式数据库中将数据导入临时本地表的时间较长。
因此,在一些实施例中,分布式节点在获取到子全量数据之后,不立即创建临时本地表,并将分布式节点对应的子全量数据存储至临时本地表中,而是在获取到服务器的创建指令之后,再根据创建指令创建临时本地表,并将分布式节点对应的子全量数据存储至临时本地表中,此时,触发分布式节点创临时本地表,并将分布式节点对应的子全量数据存储至临时本地表中的过程可以为:
接收各个分布式节点返回的数据已获取完成指令;
根据数据已获取完成指令,生成创建指令;
同时将创建指令发送至各个分布式节点,触发各个分布式节点,根据创建指令创建临时本地表,并将分布式节点对应的子全量数据存储至临时本地表。
在本申请实施例中,接收各个分布式节点返回的数据已获取完成指令;根据数据已获取完成指令,生成创建指令;同时将创建指令发送至各个分布式节点,触发各个分布式节点,根据创建指令创建临时本地表,并将分布式节点对应的子全量数据存储至临时本地表,使得各个分布式节点同时创建临时本地表,并将分布式节点对应的子全量数据存储至临时本地表,减少分布式数据库中将数据导入临时本地表的时间。
在另一些实施例中,触发分布式节点创临时本地表,并将分布式节点对应的子全量数据存储至临时本地表中,包括:
触发分布式节点在第一目标时间创临时本地表,并将分布式节点对应的子全量数据存储至临时本地表中。
其中,服务器可以在将分布式节点对应的子全量数据发送至分布式节点的同时,将第一目标时间发送至分布式节点,或者,服务器也可以在将分布式节点对应的子全量数据发送至分布式节点之后,再将第一目标时间发送至分布式节点。第一目标时间与将分布式节点对应的子全量数据发送至分布式节点的时间之间存在预设时间间隔且第一目标时间在将分布式节点对应的子全量数据发送至分布式节点的时间之后。
由于创建指令到达各个分布式节点可能也存在时间差,因此,为了保证各个分布式节点同时创建临时本地表,在本申请实施例中,触发分布式节点在第一目标时间创临时本地表,并将分布式节点对应的子全量数据存储至临时本地表中,使得各个分布式节点同时创建临时本地表,并将分布式节点对应的子全量数据存储至临时本地表,减少分布式数据库中将数据导入临时本地表的时间。
S104、触发分布式节点在目标时间,删除分布式节点中的正式本地表,并将临时本地表重命名为正式本地表的名称,以完成分布式节点中数据的更新。
服务器可以先将分布式节点对应的子全量数据发送至分布式节点,然后再将目标时间发送至分布式节点,或者,服务器也可以在将分布式节点对应的子全量数据发送至分布式节点的同时,将目标时间发送至分布式节点。
目标时间与将分布式节点对应的子全量数据发送至分布式节点的时间之间存在第一预设时间间隔且目标时间在将分布式节点对应的子全量数据发送至分布式节点的时间之后。
相关技术中,分布式节点在将其对应的子全量数据存储至临时本地表之后,立即删除正式本地表,并将临时本地重命名为正式本地表,使得各个分布式节点删除正式本地表,并将临时本地重命名为正式本地表的时间不同,导致分布式数据库的不可用时间较长。比如,如图2所示。
在本申请实施例中,获取需存储至分布式数据库的全量数据,并对全量数据进行切片处理,得到分布式数据库中的各个分布式节点对应的子全量数据;将分布式节点对应的子全量数据,发送至分布式节点;触发分布式节点创临时本地表,并将分布式节点对应的子全量数据存储至临时本地表中;触发分布式节点在目标时间,删除分布式节点中的正式本地表,并将临时本地表重命名为正式本地表的名称,使得各个分布式节点同时删除分布式节点中的正式本地表,并将临时本地表重命名为正式本地表的名称,减少分布式数据库的不可用时间。
比如,如图3所示,从图3和图2可用看出,本申请实施例相对于相关技术,分布式数据库的不可用时间明显缩短了。
在一些实施例中,触发分布式节点在目标时间,删除分布式节点中的正式本地表,并将临时本地表重命名为所述正式本地表的名称,以完成分布式节点中数据的更新,包括:
接收分布式节点对临时本地表和正式本地表进行校验得到的校验结果;
若校验结果为校验通过,则触发分布式节点在目标时间,删除分布式节点中的正式本地表,并将临时本地表重命名为正式本地表的名称,以完成分布式节点中数据的更新。
如果校验结果为校验通过,表明该分布式节点已经成功将其对应的子全量数据存储至临时本地表中,如果校验结果为校验不通过,表明该分布式节点没有成功将其对应的子全量数据存储至临时本地表中。
服务器可以触发校验结果为校验通过的分布式节点在目标时间,删除分布式节点中的正式本地表,并将临时本地表重命名为正式本地表的名称,以完成分布式节点中数据的更新。
如果校验结果为校验不通过,服务器可以发出告警信息,以便工作人员获知数据更新的过程存在问题并解决问题。
可选地,在若校验结果为校验通过,则触发分布式节点在目标时间,删除分布式节点中的正式本地表,并将临时本地表重命名为正式本地表的名称之前,还包括:
若校验结果为临时本地表中数据的数量大于正式本地表中数据的数量,则确定校验结果为校验通过;
若校验结果为临时本地表中数据的数量小于或等于正式本地表中数据的数量,则确定校验结果为校验不通过。
其中,分布式节点可以确定临时本地表中数据的数量和正式本地表中数据的数量,并将临时本地表中数据的数量和正式本地表中数据的数量发送至服务器,服务器再将临时本地表中数据的数量和正式本地表中数据的数量进行比较。
或者,分布式节点在确定临时本地表中数据的数量和正式本地表中数据的数量之后,将临时本地表中数据的数量和正式本地表中数据的数量进行比较,并将比较结果发送至服务器。
可选地,为了提高服务器判断校验结果为校验通过还是不通过的便捷度,可以采用第一字符表示校验结果为校验通过,第二字符表示校验结果为校验不通过。
比如,第一字符为0,第二字符为1,分布式节点在将临时本地表中数据的数量和正式本地表中数据的数量进行比较,如果比较结果为临时本地表中数据的数量大于正式本地表中数据的数量,则发送0到服务器,服务器接收到的是0,表示校验结果为校验通过,如果比较结果为临时本地表中数据的数量小于或等于正式本地表中数据的数量,则发送1到服务器,服务器接收到的是1,表示校验结果为校验不通过。
可选地,在若校验结果为校验通过,则触发分布式节点在目标时间,删除分布式节点中的正式本地表,并将临时本地表重命名为正式本地表的名称之前,还包括:
若校验结果为数据不相同,则确定校验结果为校验通过;
若校验结果为数据相同,则确定校验结果为校验不通过。
其中,分布式节点可以判断临时本地表中数据和正式本地表中数据是否相同,如果临时本地表中数据和正式本地表中数据相同,则确定校验结果为数据相同,如果临时本地表中数据和正式本地表中数据不相同,则确定校验结果为数据不相同。
在另一些实施例中,在触发分布式节点在目标时间,删除分布式节点中的正式本地表,并将临时本地表重命名为正式本地表的名称,以完成分布式节点中数据的更新之前,还包括:
获取每个分布式节点创建临时本地表,并将分布式节点对应的子全量数据存储至临时本地表所耗费的历史时间长度;
从历史时间长度中筛选出满足预设长度条件的历史时间长度,得到目标历史时间长度;
根据目标历史时间长度,确定目标时间。
其中,预设长度条件可以根据实际情况设置,比如,预设长度条件可以为最长的历史时间长度或第二长的历史时间长度。
比如,目标历史时间长度为t5时间长度,初始时间为T1时刻,则将(T1+t5)作为目标时间,初始时间可以为当前时间、触发分布式节点创临时本地表,并将分布式节点对应的子全量数据存储至临时本地表中的时间或者将分布式节点对应的子全量数据,发送至分布式节点的时间。
在本申请实施例中,获取每个分布式节点创建临时本地表,并将分布式节点对应的子全量数据存储至临时本地表所耗费的历史时间长度;从历史时间长度中筛选出满足预设长度条件的历史时间长度,得到目标历史时间长度;根据目标历史时间长度,确定目标时间,以便减少分布式数据库的数据更新时间。
可选地,分布式节点在目标时间,删除分布式节点中的正式本地表,并将临时本地表重命名为正式本地表的名称的过程中,可以对正式本地表进行备份,使得在将临时本地表重命名为正式本地表的名称的过程中出现错误时,可以采用备份的正式本地表。
由以上可知,在本申请实施例中,获取需存储至分布式数据库的全量数据,并对全量数据进行切片处理,得到分布式数据库中的各个分布式节点对应的子全量数据;将分布式节点对应的子全量数据,发送至分布式节点;触发分布式节点创临时本地表,并将分布式节点对应的子全量数据存储至临时本地表中;触发分布式节点在目标时间,删除分布式节点中的正式本地表,并将临时本地表重命名为正式本地表的名称,以完成分布式节点中数据的更新,实现各个分布式节点均在目标时间删除分布式节点中的正式本地表,并将临时本地表重命名为正式本地表的名称,减少分布式数据库的不可用时间。
下面根据图4,对本申请实施例提供的数据更新方法进行进一步说明。
服务器对全量数据进行切片处理,得到分布式数据库中的各个分布式节点对应的子全量数据,并将分布式节点对应的子全量数据和第一目标时间,发送至分布式节点。
各个分布式节点在第一目标时间创建临时本地表,并将其对应的子全量数据存储至临时本地表中。
各个分布式节点对临时本地表中数据的数量和正式本地表中数据的数量进行校验,并将校验结果返回至服务器。
服务器触发校验结果为校验通过的分布式节点在目标时间,删除分布式节点中的正式本地表,并将临时本地表重命名为所述正式本地表的名称,以完成分布式节点中数据的更新。
如果校验结果为校验不通过,服务器则发出告警信息。
本实施例的具体实现方式以及对应的有益效果,具体可以参照上述数据更新方法实施例,本实施例在此不再赘述。
为便于更好的实施本申请实施例提供的数据更新方法,本申请实施例还提供一种基于上述数据更新方法的装置。其中名词的含义与上述数据更新方法中相同,具体实现细节可以参考方法实施例中的说明。
例如,如图5所示,该数据更新装置可以包括:
获取模块501,用于获取需存储至分布式数据库的全量数据,并对全量数据进行切片处理,得到分布式数据库中的各个分布式节点对应的子全量数据。
发送模块502,用于将分布式节点对应的子全量数据,发送至分布式节点。
存储模块503,用于触发分布式节点创临时本地表,并将分布式节点对应的子全量数据存储至临时本地表中。
命名模块504,用于触发分布式节点在目标时间,删除分布式节点中的正式本地表,并将临时本地表重命名为正式本地表的名称,以完成分布式节点中数据的更新。
可选地,命名模块504具体用于执行:
接收分布式节点对临时本地表和正式本地表进行校验得到的校验结果;
若校验结果为校验通过,则触发分布式节点在目标时间,删除分布式节点中的正式本地表,并将临时本地表重命名为正式本地表的名称,以完成分布式节点中数据的更新。
可选地,命名模块504还用于执行:
若校验结果为临时本地表中数据的数量大于正式本地表中数据的数量,则确定校验结果为校验通过;
若校验结果为临时本地表中数据的数量小于或等于正式本地表中数据的数量,则确定校验结果为校验不通过。
可选地,存储模块503具体用于执行:
触发分布式节点在第一目标时间创临时本地表,并将分布式节点对应的子全量数据存储至临时本地表中。
可选地,全量数据存储在数据表中,获取模块501具体用于执行:
从数据表中筛选出目标字段;
对目标字段进行哈希运算,得到目标字段对应的哈希值;
获取分布式数据库包括的分布式节点的个数;
根据哈希值和个数,对全量数据进行切片处理,得到分布式数据库中的各个分布式节点对应的子全量数据。
可选地,获取模块501具体用于执行:
将哈希值和个数进行取余处理,得到哈希值和个数对应的余数;
将余数对应的节点标识对应的分布式节点,作为存储目标字段对应的数据的分布式节点,目标字段对应的数据为分布式节点对应的子全量数据。
可选地,获取模块501具体用于执行:
获取分布式数据库中的各个分布式节点的剩余存储空间的大小;
根据剩余存储空间的大小,对全量数据进行切片处理,得到分布式数据库中的各个分布式节点对应的子全量数据。
具体实施时,以上各个模块可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个模块的具体实施方式以及对应的有益效果可参见前面的方法实施例,在此不再赘述。
本申请实施例还提供一种电子设备,该电子设备可以是服务器或终端等,如图6所示,其示出了本申请实施例所涉及的电子设备的结构示意图,具体来讲:
该电子设备可以包括一个或者一个以上处理核心的处理器601、一个或一个以上计算机可读存储介质的存储器602、电源603和输入单元604等部件。本领域技术人员可以理解,图6中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器601是该电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器602内的计算机程序和/或模块,以及调用存储在存储器602内的数据,执行电子设备的各种功能和处理数据。可选的,处理器601可包括一个或多个处理核心;优选的,处理器601可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器601中。
存储器602可用于存储计算机程序以及模块,处理器601通过运行存储在存储器602的计算机程序以及模块,从而执行各种功能应用以及数据处理。存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的计算机程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器602还可以包括存储器控制器,以提供处理器601对存储器602的访问。
电子设备还包括给各个部件供电的电源603,优选的,电源603可以通过电源管理系统与处理器601逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源603还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该电子设备还可包括输入单元604,该输入单元604可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器601会按照如下的指令,将一个或一个以上的计算机程序的进程对应的可执行文件加载到存储器602中,并由处理器601来运行存储在存储器602中的计算机程序,从而实现各种功能,比如:
获取需存储至分布式数据库的全量数据,并对全量数据进行切片处理,得到分布式数据库中的各个分布式节点对应的子全量数据;
将分布式节点对应的子全量数据,发送至分布式节点;
触发分布式节点创临时本地表,并将分布式节点对应的子全量数据存储至临时本地表中;
触发分布式节点在目标时间,删除分布式节点中的正式本地表,并将临时本地表重命名为正式本地表的名称,以完成分布式节点中数据的更新。
以上各个操作的具体实施方式以及对应的有益效果可参见上文对数据更新方法的详细描述,在此不作赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过计算机程序来完成,或通过计算机程序控制相关的硬件来完成,该计算机程序可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种数据更新方法中的步骤。例如,该计算机程序可以执行如下步骤:
获取需存储至分布式数据库的全量数据,并对全量数据进行切片处理,得到分布式数据库中的各个分布式节点对应的子全量数据;
将分布式节点对应的子全量数据,发送至分布式节点;
触发分布式节点创临时本地表,并将分布式节点对应的子全量数据存储至临时本地表中;
触发分布式节点在目标时间,删除分布式节点中的正式本地表,并将临时本地表重命名为正式本地表的名称,以完成分布式节点中数据的更新。
以上各个操作的具体实施方式以及对应的有益效果可参见前面的实施例,在此不再赘述。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种数据更新方法中的步骤,因此,可以实现本申请实施例所提供的任一种数据更新方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
其中,根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述数据更新方法。
以上对本申请实施例所提供的一种数据更新方法、装置、电子设备及计算机存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种数据更新方法,其特征在于,包括:
获取需存储至分布式数据库的全量数据,并对所述全量数据进行切片处理,得到所述分布式数据库中的各个分布式节点对应的子全量数据;
将所述分布式节点对应的子全量数据,发送至所述分布式节点;
触发所述分布式节点创临时本地表,并将所述分布式节点对应的子全量数据存储至所述临时本地表中;
触发所述分布式节点在目标时间,删除所述分布式节点中的正式本地表,并将所述临时本地表重命名为所述正式本地表的名称,以完成所述分布式节点中数据的更新。
2.根据权利要求1所述的数据更新方法,其特征在于,所述触发所述分布式节点在目标时间,删除所述分布式节点中的正式本地表,并将所述临时本地表重命名为所述正式本地表的名称,以完成所述分布式节点中数据的更新,包括:
接收所述分布式节点对所述临时本地表和所述正式本地表进行校验得到的校验结果;
若所述校验结果为校验通过,则触发所述分布式节点在目标时间,删除所述分布式节点中的正式本地表,并将所述临时本地表重命名为所述正式本地表的名称,以完成所述分布式节点中数据的更新。
3.根据权利要求2所述的数据更新方法,其特征在于,在所述若所述校验结果为校验通过,则触发所述分布式节点在目标时间,删除所述分布式节点中的正式本地表,并将所述临时本地表重命名为所述正式本地表的名称之前,还包括:
若所述校验结果为所述临时本地表中数据的数量大于所述正式本地表中数据的数量,则确定所述校验结果为校验通过;
若所述校验结果为所述临时本地表中数据的数量小于或等于所述正式本地表中数据的数量,则确定所述校验结果为校验不通过。
4.根据权利要求1所述的数据更新方法,其特征在于,所述触发所述分布式节点创临时本地表,并将所述分布式节点对应的子全量数据存储至所述临时本地表中,包括:
触发所述分布式节点在第一目标时间创临时本地表,并将所述分布式节点对应的子全量数据存储至所述临时本地表中。
5.根据权利要求1-4任一项所述的数据更新方法,其特征在于,所述全量数据存储在数据表中;
所述对所述全量数据进行切片处理,得到所述分布式数据库中的各个分布式节点对应的子全量数据,包括:
从所述数据表中筛选出目标字段;
对所述目标字段进行哈希运算,得到所述目标字段对应的哈希值;
获取所述分布式数据库包括的分布式节点的个数;
根据所述哈希值和所述个数,对所述全量数据进行切片处理,得到所述分布式数据库中的各个分布式节点对应的子全量数据。
6.根据权利要求5所述的数据更新方法,其特征在于,所述根据所述哈希值和所述个数,对所述全量数据进行切片处理,得到所述分布式数据库中的各个分布式节点对应的子全量数据,包括:
将所述哈希值和所述个数进行取余处理,得到所述哈希值和所述个数对应的余数;
将所述余数对应的节点标识对应的分布式节点,作为存储所述目标字段对应的数据的分布式节点,所述目标字段对应的数据为所述分布式节点对应的子全量数据。
7.根据权利要求1-4任一项所述的数据更新方法,其特征在于,所述对所述全量数据进行切片处理,得到所述分布式数据库中的各个分布式节点对应的子全量数据,包括:
获取所述分布式数据库中的各个分布式节点的剩余存储空间的大小;
根据所述剩余存储空间的大小,对所述全量数据进行切片处理,得到所述分布式数据库中的各个分布式节点对应的子全量数据。
8.一种数据更新装置,其特征在于,包括:
获取模块,用于获取需存储至分布式数据库的全量数据,并对所述全量数据进行切片处理,得到所述分布式数据库中的各个分布式节点对应的子全量数据;
发送模块,用于将所述分布式节点对应的子全量数据,发送至所述分布式节点;
存储模块,用于触发所述分布式节点创临时本地表,并将所述分布式节点对应的子全量数据存储至所述临时本地表中;
命名模块,用于触发所述分布式节点在目标时间,删除所述分布式节点中的正式本地表,并将所述临时本地表重命名为所述正式本地表的名称,以完成所述分布式节点中数据的更新。
9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有计算机程序,所述处理器用于运行所述存储器内的计算机程序,以执行权利要求1至7任一项所述的数据更新方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行权利要求1至7任一项所述的数据更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311157353.8A CN117407402A (zh) | 2023-09-06 | 2023-09-06 | 数据更新方法、装置、电子设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311157353.8A CN117407402A (zh) | 2023-09-06 | 2023-09-06 | 数据更新方法、装置、电子设备及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117407402A true CN117407402A (zh) | 2024-01-16 |
Family
ID=89493361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311157353.8A Pending CN117407402A (zh) | 2023-09-06 | 2023-09-06 | 数据更新方法、装置、电子设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117407402A (zh) |
-
2023
- 2023-09-06 CN CN202311157353.8A patent/CN117407402A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106802932B (zh) | 一种数据库的路由方法、装置及数据库系统 | |
EP2542980A2 (en) | Automatic synchronization conflict resolution | |
US20130198134A1 (en) | Online verification of a standby database in log shipping physical replication environments | |
CN110858194A (zh) | 一种数据库扩容的方法和装置 | |
US20160321317A1 (en) | Methods and systems for managing distributed concurrent data updates of business objects | |
US11281704B2 (en) | Merging search indexes of a search service | |
US11522975B2 (en) | Double persistence layer using an in-memory map | |
US11567808B2 (en) | Dependency handling for configuration transport | |
US11163793B2 (en) | Ordered list management in a replicated environment | |
US10387887B2 (en) | Bloom filter driven data synchronization | |
US20090100000A1 (en) | Acquisition and expansion of storage area network interoperation relationships | |
CN117407402A (zh) | 数据更新方法、装置、电子设备及计算机存储介质 | |
CN114385657A (zh) | 数据存储方法、装置及存储介质 | |
CN117009430A (zh) | 数据管理方法、装置和存储介质及电子设备 | |
CN115964061A (zh) | 插件更新方法、装置、电子设备和计算机可读存储介质 | |
CN112685474A (zh) | 应用管理方法、装置、设备和存储介质 | |
CN112948494A (zh) | 数据同步方法、装置、电子设备和计算机可读介质 | |
Braun | Semantics-driven optimistic data replication: Towards a framework supporting software architects and developers | |
CN117411915A (zh) | 设备绑定方法、装置、电子设备及计算机存储介质 | |
CN111459931A (zh) | 数据查重方法和数据查重装置 | |
CN115840786B (zh) | 一种数据湖数据同步方法及装置 | |
CN113190463B (zh) | 一种代码测试方法,节点及系统 | |
CN110213314B (zh) | 确定存储节点的方法、装置、服务器 | |
US11836121B1 (en) | Delta merge with location data | |
US20240066218A1 (en) | Location data processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |