数据库更新方法、装置、设备及介质与流程

专利查询8月前  62

1.本技术涉及人工智能
技术领域
:,尤其涉及一种数据库更新方法、装置、设备及介质。
背景技术
::2.目前,在需要对数据库中的数据进行查找修改或增删的情境下,用户会向数据库发送更新任务,以使数据库根据更新任务对存储的数据进行查找并执行修改或增删的操作。3.但当数据库的数据量较大时且多个数据之间存在着函数关系时,在数据库中查找数据进行更新操作需要占用较长的时间,对于短时间内接收到的多个有序的更新任务,数据库无法同时执行且需要等待数据库执行完当前的更新任务才能执行下一更新任务,因此后续的更新任务等待时间过长,降低了数据库数据更新的效率。技术实现要素:4.本技术实施例提供一种数据库更新方法、装置、设备及介质,旨在对数据库进行快速准确的更新,提升更新效率。5.第一方面,本技术实施例提供了一种数据库更新方法,包括:6.为数据库中每一数据分区创建对应的分区字符串,其中,分区字符串包括用于表征数据分区的锁定状态信息的锁定字符串与用于表征数据分区的版本状态信息的版本字符串;7.获取多个有序的更新任务,并解析更新任务获取对应的更新目标以及对应的更新操作;8.根据更新任务创建对应的多个任务线程,并根据更新任务的顺序为多个任务线程分配顺序字符串;9.通过任一任务线程,在数据库中抓取版本字符串与顺序字符串匹配的数据分区作为第一待更新分区;10.当根据锁定字符串确定第一待更新分区处于非锁定状态时,锁定第一待更新分区,并根据更新目标在第一待更新分区中查找目标更新数据以对目标更新数据执行更新操作;11.更新第一待更新分区的锁定字符串与版本字符串,并将更新后的第一待更新分区释放至数据库。12.第二方面,本技术实施例还提供了一种数据库更新装置,包括:13.字符创建模块,用于为数据库中每一数据分区创建对应的分区字符串,其中,分区字符串包括用于表征数据分区的锁定状态信息的锁定字符串与用于表征数据分区的版本状态信息的版本字符串;14.任务获取模块,用于获取多个有序的更新任务,并解析更新任务获取对应的更新目标以及对应的更新操作;15.线程创建模块,用于根据更新任务创建对应的多个任务线程,并根据更新任务的顺序为多个任务线程分配顺序字符串;16.分区抓取模块,用于通过任一任务线程,在数据库中抓取版本字符串与顺序字符串匹配的数据分区作为第一待更新分区;17.更新操作模块,用于当根据锁定字符串确定第一待更新分区处于非锁定状态时,锁定第一待更新分区,并根据更新目标在第一待更新分区中查找目标更新数据以对目标更新数据执行更新操作;18.分区释放模块,用于更新第一待更新分区的锁定字符串与版本字符串,并将更新后的第一待更新分区释放至数据库。19.第三方面,本技术实施例还提供了一种计算机设备,包括存储器和处理器;20.存储器,用于存储计算机程序;21.处理器,用于执行的计算机程序并在执行的计算机程序时实现上述的数据库更新方法。22.第四方面,本技术实施例还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时使处理器实现上述的数据库更新方法。23.本技术实施例提供了一种数据库更新方法、装置、设备及介质,其中,数据库更新方法包括:为数据库中每一数据分区创建对应的分区字符串,其中,分区字符串包括用于表征数据分区的锁定状态信息的锁定字符串与用于表征数据分区的版本状态信息的版本字符串,获取多个有序的更新任务,并解析更新任务获取对应的更新目标以及对应的更新操作,根据更新任务创建对应的多个任务线程,并根据更新任务的顺序为多个任务线程分配顺序字符串,通过任一任务线程,在数据库中抓取版本字符串与顺序字符串匹配的数据分区作为第一待更新分区,当根据锁定字符串确定第一待更新分区处于非锁定状态时,锁定第一待更新分区,并根据更新目标在第一待更新分区中查找目标更新数据以对目标更新数据执行更新操作,更新第一待更新分区的锁定字符串与版本字符串,并将更新后的第一待更新分区释放至数据库,确保多个更新任务能有序进行,可以对数据库进行快速准确的更新,提升更新效率。附图说明24.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。25.图1是本技术一实施例提供的一种数据库更新方法的步骤示意流程图;26.图2是图1数据库更新方法中任务线程创建步骤流程图;27.图3是本技术一实施例提供的一种数据库更新方法对应的数据库结构示意框图;28.图4是图1数据库更新方法中目标更新数据查找步骤流程图;29.图5为本技术实施例提供的一种数据库更新装置的模块结构示意图;30.图6为本技术实施例提供的一种计算机设备的结构示意框图。具体实施方式31.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。32.附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。33.应当理解,在此本技术说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本技术。如在本技术说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”ꢀ及“该”意在包括复数形式。34.还应当进理解,在本技术说明书和所附权利要求书中使用的术语“和/或”ꢀ是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。35.本技术实施例提供一种数据库更新方法、装置、设备及介质。其中,该数据库更新方法可应用于数据库或与数据库连接的数据库管理装置中,其中,数据库管理装置可以是计算机、智能机器人、独立的服务器或服务器集群等电子设备,在此不做限定。36.本实施例中,以该数据库更新方法应用于独立的服务器为例进行说明,但不局限于数据库更新方法仅可以用于独立的服务器。37.下面结合附图,对本技术的一些实施方式作详细说明,在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。38.请参阅图1,图1为本技术实施例提供的一种数据库更新方法的步骤示意流程图,该方法具体包括以下步骤s1-s6。39.步骤s1、为数据库中每一数据分区创建对应的分区字符串,其中,分区字符串包括用于表征数据分区的锁定状态信息的锁定字符串与用于表征数据分区的版本状态信息的版本字符串。40.执行本方法的服务器为每一数据分区创建对应的分区字符串,分区字符串包括锁定字符串与版本字符串,其中,锁定字符串用于表征数据分区的锁定状态信息,锁定状态信息包括锁定与非锁定。41.具体地,在任务线程中对数据分区执行更新时将任务线程切换至已锁定的状态,更新完成后将任务线程切换至非锁定的状态。而版本字符串用于表征数据分区的更新版本,以使在后续开启的任务线程中根据版本字符串抓取匹配的第一待更新分区。42.示例性地,设定锁定字符串为四位二进制的数字串,例如以“0000”表示数据分区的锁定状态信息为非锁定,以“1111”表示数据分区的锁定状态信息为已锁定,并设定版本字符串为四位二进制的数字串,以版本字符串表征数据分区的版本状态,拼合以上的锁定字符串与版本字符串便可得到分区字符串。例如,在分区字符串“00000011”中,锁定字符串“0000”表示数据分区非锁定,版本字符串“0011”表示数据分区的版本为“0011”版本。43.在一些实施方式中,步骤s1之前还具体包括:44.在数据库中创建多个初始分区,其中,每一初始分区包括多个具有预设函数关系的数据;45.获取初始分区中多个数据的第一数据特征以及数据库中多个数据的第二数据特征;46.根据第一数据特征与第二数据特征的相似度,将数据库中的数据分配到对应的初始分区,得到多个数据分区。47.执行本方法的服务器在数据库中创建多个初始数据分区,多个初始数据分区之间不存在交集,其中,每一初始分区包括多个具有预设函数关系的数据。可以理解的是,数据库中的多个数据之间往往存在着函数关系,对数据分组中的某一数据进行更改时,与该数据存在函数关系的其他数据可能会发生变化,又或,对多个数据之间的函数关系进行限定、解除限定或更改,该数据存在函数关系的其他数据也可能会发生变化。48.例如,a地区的人口a增加了,那么包括a地区的b地区的总人口b也随之增加,此时可认为a地区的人口a与b地区的人口b之间有着函数关系,把具有函数关系的数据a与数据b划分到同一个数据分区,方便后续对具有函数关系的多个数据进行同步更新。49.创建数据分区后,获取初始分区中多个数据的第一数据特征以及数据库中多个数据的第二数据特征,第一数据特征与第二数据特征为同一类型的数据特征。例如,第一数据特征与第二数据特征可以是数据库中单个数据对应的位置区域特征、最后修改时间特征、或其它的预设分类特征。根据第一数据特征与第二数据特征的相似度,将数据库中的数据分配到对应的初始分区,得到多个数据分区。例如,当第一数据特征与第二数据特征为对应的区域位置特征,可根据区域位置特征计算欧氏距离(euclideanmetric),并根据欧氏距离确定初始分区中数据的第一数据特征与数据库中数据的第二数据特征相似度以把多个数据库中的数据分配到对应的初始分区,就得到了多个数据分区。50.在另一些实施方式中,为数据库中每一数据分区创建对应的分区字符串之前,还包括:获取数据库分组指标,根据数据库分组指标将数据库分为多个数据分区。具体地,数据库分组指标可以是数据特性,比如数据的创建时间(年、月、日)、修改时间(年、月、日)、区域、分类、或占用的存储空间等等数据特性,根据数据库分组指标将数据库分为多个数据分区。51.在还有的一些实施方式中,数据库可以是具有区块数据分布存储特性的数据库,比如oracle数据库,oracle数据库包括表空间(tablespace),段(segment),区(extend)以及数据块(block)的总共四级结构,即具有区块数据分布存储特性的数据库中预先就设置有多个数据分区。52.在此之后,对于已确定数据分区的数据库,为每一数据分区创建对应的分区字符串,通过把具有函数关系的多个数据划分到同一个数据分区,方便后续对数据分区中的数据进行同步更新。53.步骤s2、获取多个有序的更新任务,并解析更新任务获取对应的更新目标以及对应的更新操作。54.在一些实施方式中,获取多个有序的更新任务可以是获取一个更新任务合集,且更新任务合集中包括了多个更新任务,多个更新任务之间具有预设的顺序关系,而每一更新任务中都包括了对应的更新目标与更新操作。执行本方法的服务器解析更新任务合集获取多个更新任务,并解析每一更新任务获取对应的更新目标以及对应的更新操作。其中,更新任务对应的更新操作可以是增加某个数据、对某个数据进行删改,或是对多个数据之间的函数关系进行限定、解除限定或更改。55.在一些实施方式中,步骤s2中更新任务包括目标数据特征,解析更新任务获取对应的更新目标,包括:解析更新任务获取更新目标的目标数据特征,根据目标数据特征确定对应的更新目标,其中,更新目标可以是数据库中多个数据、或数据库中多个存储位置。56.在另一些实施方式中,执行本方法的处理器中设置有计时器,获取多个有序的更新任务包括:获取更新任务并记录获取更新任务的触发时间,根据触发时间为多个更新任务分配顺序得到多个有序的更新任务。获取多个有序的更新任务后,对每一更新任务进行解析以获取对应的更新目标以及对应的更新操作。57.通过记录获取更新任务的触发时间并根据触发时间分配顺序,使多个更新任务执行的先后顺序与触发时间的顺序对应,保证了执行多个任务的有序程度。58.步骤s3、根据更新任务创建对应的多个任务线程,并根据更新任务的顺序为多个任务线程分配顺序字符串。59.可以理解的是,当数据分组中的多个数据之间存在着函数关系时,对数据分组中的某一数据进行更改时,与该数据存在函数关系的其他数据也可能会发生变化,又或,对多个数据之间的函数关系进行限定、解除限定或更改可能会使得某些数据发生改变。例如,a地区的人口a增加了,那么包括a地区的b地区的总人口b也随之增加。因此当存在多个有序的更新任务时,如果数据分组中在更新任务时出现单个更新任务的重复执行,会造成更新错误而且浪费线程资源;如果出现多个更新任务执行的顺序错误时,对数据分组的更新就可能会出现错误,降低数据库运行的准确率。60.示例性地,顺序字符串为四位二进制的数字,如顺序字符串“0011”表示更新任务的执行顺序为“0011”的任务线程,如顺序字符串“0100”表示更新任务的执行顺序为“0100”的任务线程,以上顺序字符串不同的任务线程可在数据库中抓取对应的数据分组以执行后续的更新。可以理解的是,同一更新任务对应的多个任务线程具有相同的顺序字符串。61.根据每一更新任务创建多个任务线程,并根据更新任务的顺序为多个任务线程分配顺序字符串,以通过顺序字符串与版本字符串之间的匹配关系在数据库中抓取版本字符串匹配的数据分区作为第一待更新分区,避免了多个更新任务执行顺序错误导致的运行错误。62.如图2所示,在一些实施方式中,根据更新任务创建对应的多个任务线程具体包括步骤s31-步骤s34:63.步骤s31:根据更新目标与更新操作计算更新任务的任务工作量;64.步骤s32:获取单个任务线程的指标工作量;65.步骤s33:根据任务工作量与指标工作量确定待创建任务线程数量;66.步骤s34:创建与任务线程数量对应的多个任务线程。67.基于解析更新任务获得的更新目标与更新操作计算得到更新任务的任务工作量,其中,更新任务的任务工作量即为对整个数据库执行该更新任务的总工作量,总工作量可以用执行更新任务所需占用的cpu资源进行表征,也可以用单位cpu执行更新任务所需的总时间进行表征。68.计算更新任务的任务工作量后,获取单个任务线程对应的指标工作量,即单个任务线程在预设的指标时间内能完成的的指标工作量。具体地,单个任务线程可由执行本方法的服务器下属的一个子服务器执行,其中,单个任务线程对应的指标工作量为对应子服务器额定进行的工作量,可以为预先设定的数值。对应子服务器额定进行的工作量可以用该子服务器额定占用的cpu资源进行表征,也可以用该子服务器的cpu执行更新所需的总时间进行表征,通过对应子服务器额定进行的工作量可以确定单个任务线程的指标工作量。69.在一些实施方式中,步骤s32具体包括:70.获取任务线程对应的内存空间与磁盘空间;71.根据内存空间与磁盘空间计算任务线程的任务处理速度;72.根据任务处理速度计算任务线程在预设的指标时间内能完成的的指标工作量。73.执行本方法的服务器首先获取任务线程对应的硬件配置,硬件配置包括但不限于对应硬件的内存空间与磁盘空间,根据内存空间与磁盘空间计算任务线程的任务处理速度,即单个任务线程在单位时间内执行的任务量,然后根据任务处理速度计算任务线程在预设的指标时间内能完成的的指标工作量。74.在此之后,根据任务工作量与指标工作量确定待创建的任务线程数量,并创建与任务线程数量对应的多个任务线程以满足执行更新任务所需的硬件资源需求。75.示例性地,对于某一更新任务,计算使用工作量单位cpu执行该计算所需的总时间为2h,单个任务线程对应子服务器的cpu执行更新所需的总时间为4h,基于1/2h=1/4h*2,可确定线程数量为2,因此根据确定的线程数量开启至少2个任务线程。76.通过结合任务线程的任务处理速度以及预先设置的指标时间计算单个任务线程的指标工作量,以确定待开启的任务线程数量,确保了每一任务线程的任务负荷不会超载且可调节,也使得多个任务线程共同对数据分区执行更新所需的时间不会过长,提升更新效率。77.在另一些实施方式中,待开启的多个任务线程具有不同的指标工作量,且具有不同的优先级,则步骤s3具体包括:计算更新任务的任务工作量;根据多个任务线程的优先级顺序启动多个任务线程,并计算已启动的多个任务线程的指标工作量之和,使多个任务线程的指标工作量之和大于或等于更新任务的任务工作量。通过根据优先级顺序依次开启多个任务线程,可以优先启动指定子服务器对应的任务线程。78.步骤s4、通过任一任务线程,在数据库中抓取版本字符串与顺序字符串匹配的数据分区作为第一待更新分区。79.同一更新任务对应的多个任务线程具有相同的顺序字符串,多个任务线程都在数据库中抓取版本字符串与顺序字符串匹配的数据分区作为第一待更新分区,以对第一待更新分区进行后续的更新任务。80.从其中的任意一个任务线程出发,在数据库中抓取数据分区中抓取版本字符串与顺序字符串匹配的数据分区作为第一待更新分区,示例性地,顺序字符串为“0011”的任务线程抓取版本字符串为“0011”的数据分区作为第一待更新分区,如分区字符串为“00000011”、“11110011”的字符分区。81.如图3所示,数据库l1中包括数据分区m1、m2、m3、m4、m5,各数据分区的分区字符串分别是:82.数据分区m1,“00000010”;83.数据分区m2,“00000011”;84.数据分区m3,“00000011”;85.数据分区m4,“11110011”;86.数据分区m5,“00000100”。87.对于顺序字符串为“0011”的任务线程,在数据库l1中抓取版本字符串为“0011”的数据分区m2、数据分区m3、数据分区m4中的任一者作为第一待更新分区,而版本字符串为“0010”的数据分区m1与版本字符串为“0100”ꢀ的数据分区m5则不会被抓取,避免了因为错误地抓取到版本字符串不匹配的数据分区,导致更新任务顺序错误或任务漏缺。88.步骤s5、当根据锁定字符串确定第一待更新分区处于非锁定状态时,锁定第一待更新分区,并根据更新目标在第一待更新分区中查找目标更新数据以对目标更新数据执行更新操作。89.锁定字符串用于表征数据分区的锁定状态信息,执行本方法的服务器在抓取第一待更新分区后,识别上述第一待更新分区的锁定字符串以确定对应第一待更新分区的锁定状态信息,当根据锁定字符串确定第一待更新分区处于非锁定状态时,首先更新第一待更新分区的锁定状态信息以锁定第一待更新分区。将第一待更新分区锁定后,执行本方法的处理在线程中对该第一待更新分区执行更新,具体为根据更新目标在第一待更新分区中查找目标更新数据,并对目标更新数据执行对应的更新操作。可以理解的是,通过更新第一待更新分区的锁定状态信息以锁定第一待更新分区,可以告知同一更新任务对应的其它任务线程该第一待更新分区正处于由本任务线程锁定并执行编辑的过程中,避免重复执行同一更新任务,浪费线程资源且影响更新效率。90.如图3所示,以数据分区m2、数据分区m3、数据分区m4中任一者为第一待更新分区,通过任务线程识别待更新的锁定字符串,选取锁定字符串为ꢀ“0000”的数据分区m2或m3执行更新任务。以在任务线程中选取数据分区m2执行更新任务为例,首先将数据分区m2的锁定字符串由“0000”更改为ꢀ“1111”时,然后再在数据分区m2中查找目标更新数据以对目标更新数据执行更新操作,避免了同一更新任务对应的其它任务线程对该数据分区进行重复更新。91.如图4所示,在一些实施方式中,步骤s5根据更新目标在第一待更新分区中查找目标更新数据,具体包括步骤s51-步骤s52:92.步骤s51:将更新目标输入预设神经网络进行特征向量提取,以获取与更新目标对应的目标特征向量;93.步骤s52:根据目标特征向量在第一待更新分区中查找目标更新数据。94.首先将更新目标输入预设神经网络进行特征向量提取,以获取与更新目标对应的目标特征向量,然后根据目标特征向量在第一待更新分区中查找目标更新数据。其中,预设神经网络可以采用cnn(convolutionneuralnetwork,卷积神经网络),也可以采用rnn(residualneuralnetwork,残差神经网络)。预设神经网络用于对更新目标进行特征提取,并根据提取的特征来获得目标特征向量,以表征第一待更新分区中单个数据的数据特征。95.在另一些实施方式中,更新目标中包括与执行本方法的服务器目标更新数据对务,因此释放数据分区m4,然后继续在数据库中抓取第二待更新分区,其中,第一待更新分区与第二待更新分区为不相同的数据分区,如数据分区m2或m3中任一者。抓取第二待更新分区后再次进行锁定字符串的识别,当识别得到第二待更新分区的锁定字符串为“0000”时,在第二待更新分区中查找目标更新数据以对目标更新数据执行更新操作,直至确定数据分区中暂无版本字符串与任务线程的顺序字符串匹配的数据分区。109.在一些实施方式中,本数据库更新方法步骤s1之前包括:在数据库中创建多个初始分区,其中,每一初始分区包括多个具有预设函数关系的数据,获取初始分区中多个数据的第一数据特征以及数据库中多个数据的第二数据特征,根据第一数据特征与第二数据特征的相似度,将数据库中的数据分配到对应的初始分区,得到多个数据分区。110.则步骤s5中根据更新目标在第一待更新分区中查找目标更新数据以对目标更新数据执行更新操作,具体包括:111.根据更新目标在第一待更新分区中查找目标更新数据;112.当判断目标更新数据在初始分区时,读取初始分区中的数据以及对应的预设函数关系;113.对目标更新数据执行更新操作;114.根据预设函数关系检校初始分区中的数据;115.当检校初始分区中的数据有误时,还原更新操作并生成报错信息。116.基于初始分区中的多个数据之间存在着函数关系,对数据分组中的某一数据进行更改时,与该数据存在函数关系的其他数据可能会发生变化,例如,a地区的人口a增加了,那么包括a地区的b地区的总人口b也随之增加。因此首先根据更新目标在第一待更新分区中查找目标更新数据,当判断目标更新数据在初始分区时,读取初始分区中的数据以及对应的预设函数关系,然后对目标更新数据执行更新操作,在此之后,根据预设函数关系检校初始分区中的数据,当检校初始分区中的数据有误时,还原更新操作并生成报错信息,进一步地可将该报错信息存储在更新日志中或直接发送给用户。117.可以理解的是,对于初始分区中的多个存在着函数关系的数据,本数据更新方法通过获取对应的函数关系以检验更新操作是否出现错误,当检校得到更新后的数据有误时,还原更新操作并生成报错信息,提升了更新任务执行更新的准确率。118.步骤s6、更新第一待更新分区的锁定字符串与版本字符串,并将更新后的第一待更新分区释放至数据库。119.在任务线程对第一待更新分区执行的更新任务完毕后,更新第一待更新分区的锁定字符串与版本字符串,以解除该第一待更新分区的锁定状态,即是该任务线程对该第一待更新分区的更新任务已经完成,得到了更新完毕的数据分区。将数据分区释放至数据库,解除锁定的数据分区可被顺序字符串匹配的其它任务线程抓取并对更新目标执行对应的更新操作,且更新版本字符串避免了数据分区被同一更新任务对应的不同线程重复执行。120.如图3所示,以某一顺序字符串为“0011”的任务线程抓取并锁定数据分区m4以进行更新为例:更新时,数据分区m4的分区字符串为“11110011”,表征数据分区的锁定状态信息为已锁定且版本状态信息为处于“0011”版本的状态。顺序字符串为“0011”的任务线程再对数据分区m4的更新完成后,将数据分区m4的锁定字符串更新为“0000”以解除锁定,并将版本字符串更新为“0100”,则数据分区m4当前的分区字符串为“00000100”,然后将数据分区m4重新释放到数据库l1中,此时数据分区m4、m5的版本字符串都为ꢀ“0100”,即数据分区m4、m5可被顺序字符串为“0100”的任务线程抓取并识别锁定字符串以进行进一步的更新或释放。121.通过循环执行上述步骤可依照更新任务的顺序对每一任务分区执行更新,避免多个更新任务的执行顺序错误或某个更新任务的缺失,提高数据库更新任务执行的准确率与效率。122.综上,本方案可执行在与数据库连接的服务器中,以对数据库的数据进行更新与管理,以提升数据库数据更新的效率。在本方案中,为数据库中每一数据分区创建对应的分区字符串,其中,分区字符串包括用于表征数据分区的锁定状态信息的锁定字符串与用于表征数据分区的版本状态信息的版本字符串,获取多个有序的更新任务,并解析更新任务获取对应的更新目标以及对应的更新操作,根据更新任务创建对应的多个任务线程,并根据更新任务的顺序为多个任务线程分配顺序字符串,通过任一任务线程,在数据库中抓取版本字符串与顺序字符串匹配的数据分区作为第一待更新分区,当根据锁定字符串确定第一待更新分区处于非锁定状态时,锁定第一待更新分区,并根据更新目标在第一待更新分区中查找目标更新数据以对目标更新数据执行更新操作,更新第一待更新分区的锁定字符串与版本字符串,并将更新后的第一待更新分区释放至数据库,确保多个更新任务能有序进行,可以对数据库进行快速准确的更新,提升更新效率。123.通过本方案提供的方法根据连续有序的多个更新任务建立与更新任务顺序对应的多个批次的任务线程,以确保每一数据分区根据预设的顺序完成多个更新任务的执行。124.图5为本技术实施例提供的一种数据库更新装置的模块结构示意图,如图5所示,数据库更新装置100包括:125.字符创建模块101,用于为数据库中每一数据分区创建对应的分区字符串,其中,分区字符串包括用于表征数据分区的锁定状态信息的锁定字符串与用于表征数据分区的版本状态信息的版本字符串;126.任务获取模块102,用于获取多个有序的更新任务,并解析更新任务获取对应的更新目标以及对应的更新操作;127.线程创建模块103,用于根据更新任务创建对应的多个任务线程,并根据更新任务的顺序为多个任务线程分配顺序字符串;128.分区抓取模块104,用于通过任一任务线程,在数据库中抓取版本字符串与顺序字符串匹配的数据分区作为第一待更新分区;129.更新操作模块105,用于当根据锁定字符串确定第一待更新分区处于非锁定状态时,锁定第一待更新分区,并根据更新目标在第一待更新分区中查找目标更新数据以对目标更新数据执行更新操作;130.分区释放模块106,用于更新第一待更新分区的锁定字符串与版本字符串,并将更新后的第一待更新分区释放至数据库。131.在一实施方式中,字符创建模块101为数据库中每一数据分区创建对应的分区字符串之前,还具体包括:132.在数据库中创建多个初始分区,其中,每一初始分区包括多个具有预设函数关系的数据;133.获取初始分区中多个数据的第一数据特征以及数据库中多个数据的第二数据特征;134.根据第一数据特征与第二数据特征的相似度,将数据库中的数据分配到对应的初始分区,得到多个数据分区。135.在一实施方式中,识别模块105根据更新目标在第一待更新分区中查找目标更新数据以对目标更新数据执行更新操作,具体包括:136.根据更新目标在第一待更新分区中查找目标更新数据;137.当判断目标更新数据在初始分区时,读取初始分区中的数据以及对应的预设函数关系;138.对目标更新数据执行更新操作;139.根据预设函数关系检校初始分区中的数据;140.当检校初始分区中的数据有误时,还原更新操作并生成报错信息。141.在一实施方式中,线程创建模块103根据更新目标与更新操作计算更新任务的任务工作量,具体包括:142.获取单个任务线程的指标工作量;143.根据任务工作量与指标工作量确定待开启的任务线程数量;144.创建与任务线程数量对应的多个任务线程。145.在一实施方式中,线程创建模块103获取单个任务线程的指标工作量,具体包括:146.获取任务线程对应的内存空间与磁盘空间;147.根据内存空间与磁盘空间计算任务线程的任务处理速度;148.根据任务处理速度计算任务线程在预设的指标时间内能完成的的指标工作量。149.在一实施方式中,更新操作模块105根据更新目标在第一待更新分区中查找目标更新数据,具体包括:150.将更新目标输入预设神经网络进行特征向量提取,以获取与更新目标对应的目标特征向量;151.根据目标特征向量在第一待更新分区中查找目标更新数据。152.在一实施方式中,更新操作模块105还具体包括:153.当根据锁定字符串确定第一待更新分区处于锁定状态时,释放第一待更新分区,并根据顺序字符串与版本字符串在数据库中抓取第二待更新分区,其中,第一待更新分区与第二待更新分区为不相同的数据分区;154.当根据锁定字符串确定第二待更新分区处于非锁定状态时,锁定第二待更新分区,并在第二待更新分区中查找目标更新数据以对目标更新数据执行更新操作。155.请参阅图6,图6为本技术实施例提供的一种计算机设备的结构示意性框图。156.如图6所示,计算机设备200包括处理器201和存储器202,处理器201和存储器202通过总线203连接,该总线比如为i2c(inter-integratedcircuit)总线。157.具体地,处理器201用于提供计算和控制能力,支撑整个计算机设备的运行。处理器201可以是中央处理单元(centralprocessingunit,cpu),该处理器201还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。158.具体地,存储器202可以是flash芯片、只读存储器(rom,read-onlymemory)磁盘、光盘、u盘或移动硬盘等。159.本领域技术人员可以理解,图6中示出的结构,仅仅是与本技术实施例方案相关的部分结构的框图,并不构成对本技术实施例方案所应用于计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。160.其中,所述处理器用于运行存储在存储器中的计算机程序,并在执行所述计算机程序时实现本技术实施例提供的任意一种所述的数据库更新方法。161.在一实施方式中,处理器201用于运行存储在存储器202中的计算机程序,并在执行所述计算机程序时实现如下步骤:162.为数据库中每一数据分区创建对应的分区字符串,其中,分区字符串包括用于表征数据分区的锁定状态信息的锁定字符串与用于表征数据分区的版本状态信息的版本字符串;163.获取多个有序的更新任务,并解析更新任务获取对应的更新目标以及对应的更新操作;164.根据更新任务创建对应的多个任务线程,并根据更新任务的顺序为多个任务线程分配顺序字符串;165.通过任一任务线程,在数据库中抓取版本字符串与顺序字符串匹配的数据分区作为第一待更新分区;166.当根据锁定字符串确定第一待更新分区处于非锁定状态时,锁定第一待更新分区,并根据更新目标在第一待更新分区中查找目标更新数据以对目标更新数据执行更新操作;167.更新第一待更新分区的锁定字符串与版本字符串,并将更新后的第一待更新分区释放至数据库。168.在一实施方式中,处理器201在为数据库中每一数据分区创建对应的分区字符串之前,还包括:169.在数据库中创建多个初始分区,其中,每一初始分区包括多个具有预设函数关系的数据;170.获取初始分区中多个数据的第一数据特征以及数据库中多个数据的第二数据特征;171.根据第一数据特征与第二数据特征的相似度,将数据库中的数据分配到对应的初始分区,得到多个数据分区。172.在一实施方式中,处理器201在根据更新目标在第一待更新分区中查找目标更新数据以对目标更新数据执行更新操作时,包括:173.根据更新目标在第一待更新分区中查找目标更新数据;174.当判断目标更新数据在初始分区时,读取初始分区中的数据以及对应的预设函数关系;175.对目标更新数据执行更新操作;176.根据预设函数关系检校初始分区中的数据;177.当检校初始分区中的数据有误时,还原更新操作并生成报错信息。178.在一实施方式中,处理器201在根据更新目标与更新操作计算更新任务的任务工作量时,包括:179.获取单个任务线程的指标工作量;180.根据任务工作量与指标工作量确定待开启的任务线程数量;181.创建与任务线程数量对应的多个任务线程。182.在一实施方式中,处理器201在获取单个任务线程的指标工作量时,包括:183.获取任务线程对应的内存空间与磁盘空间;184.根据内存空间与磁盘空间计算任务线程的任务处理速度;185.根据任务处理速度计算任务线程在预设的指标时间内能完成的的指标工作量。186.在一实施方式中,处理器201在根据更新目标在第一待更新分区中查找目标更新数据时,包括:187.将更新目标输入预设神经网络进行特征向量提取,以获取与更新目标对应的目标特征向量;188.根据目标特征向量在第一待更新分区中查找目标更新数据。189.在一实施方式中,处理器201在执行本数据库更新方法时,还包括:190.当根据锁定字符串确定第一待更新分区处于锁定状态时,释放第一待更新分区,并根据顺序字符串与版本字符串在数据库中抓取第二待更新分区,其中,第一待更新分区与第二待更新分区为不相同的数据分区;191.当根据锁定字符串确定第二待更新分区处于非锁定状态时,锁定第二待更新分区,并在第二待更新分区中查找目标更新数据以对目标更新数据执行更新操作。192.需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的计算机设备的具体工作过程,可以参考前述动物识别方法实施例中的对应过程,在此不再赘述。193.本技术实施例还提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序可被一个或者多个处理器执行,以实现如本技术实施例说明书提供的任一项数据库更新方法的步骤。194.其中,所述存储介质可以是前述实施例所述的计算机设备的内部存储单元,例如所述计算机设备的硬盘或内存。所述存储介质也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。195.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施例中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。196.应当理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。197.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。以上所述,仅为本技术的具体实施例,但本技术的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。当前第1页12当前第1页12
技术特征:
1.一种数据库更新方法,其特征在于,所述方法包括:为数据库中每一数据分区创建对应的分区字符串,其中,所述分区字符串包括用于表征所述数据分区的锁定状态信息的锁定字符串与用于表征所述数据分区的版本状态信息的版本字符串;获取多个有序的更新任务,并解析所述更新任务获取对应的更新目标以及对应的更新操作;根据所述更新任务创建对应的多个任务线程,并根据所述更新任务的顺序为多个所述任务线程分配顺序字符串;通过任一所述任务线程,在所述数据库中抓取所述版本字符串与所述顺序字符串匹配的所述数据分区作为第一待更新分区;当根据所述锁定字符串确定所述第一待更新分区处于非锁定状态时,锁定所述第一待更新分区,并根据所述更新目标在所述第一待更新分区中查找目标更新数据以对所述目标更新数据执行所述更新操作;更新所述第一待更新分区的所述锁定字符串与所述版本字符串,并将更新后的所述第一待更新分区释放至所述数据库。2.根据权利要求1所述的方法,其特征在于,所述为数据库中每一数据分区创建对应的分区字符串之前,还包括:在所述数据库中创建多个初始分区,其中,每一所述初始分区包括多个具有预设函数关系的数据;获取所述初始分区中多个数据的第一数据特征以及所述数据库中多个数据的第二数据特征;根据所述第一数据特征与所述第二数据特征的相似度,将所述数据库中的数据分配到对应的所述初始分区,得到多个数据分区。3.根据权利要求2所述的方法,其特征在于,所述根据所述更新目标在所述第一待更新分区中查找目标更新数据以对所述目标更新数据执行所述更新操作,包括:根据所述更新目标在所述第一待更新分区中查找目标更新数据;当判断所述目标更新数据在所述初始分区时,读取所述初始分区中的数据以及对应的预设函数关系;对所述目标更新数据执行所述更新操作;根据所述预设函数关系检校所述初始分区中的数据;当检校所述初始分区中的数据有误时,还原所述更新操作并生成报错信息。4.根据权利要求1所述的方法,其特征在于,所述根据所述更新任务创建对应的多个任务线程,包括:根据所述更新目标与所述更新操作计算所述更新任务的任务工作量;获取单个所述任务线程的指标工作量;根据所述任务工作量与所述指标工作量确定待开启的任务线程数量;创建与所述任务线程数量对应的多个所述任务线程。5.根据权利要求4所述的方法,其特征在于,所述获取单个所述任务线程的指标工作量,包括;
获取所述任务线程对应的内存空间与磁盘空间;根据所述内存空间与所述磁盘空间计算所述任务线程的任务处理速度;根据所述任务处理速度计算所述任务线程在预设的指标时间内能完成的的指标工作量。6.根据权利要求1所述的方法,其特征在于,所述根据所述更新目标在所述第一待更新分区中查找目标更新数据,包括:将所述更新目标输入预设神经网络进行特征向量提取,以获取与所述更新目标对应的目标特征向量;根据所述目标特征向量在所述第一待更新分区中查找所述目标更新数据。7.根据权利要求1-6中任一项所述的方法,其特征在于,所述方法还包括:当根据所述锁定字符串确定所述第一待更新分区处于锁定状态时,释放所述第一待更新分区,并根据所述顺序字符串与所述版本字符串在所述数据库中抓取第二待更新分区,其中,所述第一待更新分区与所述第二待更新分区为不相同的所述数据分区;当根据所述锁定字符串确定所述第二待更新分区处于非锁定状态时,锁定所述第二待更新分区,并在所述第二待更新分区中查找所述目标更新数据以对所述目标更新数据执行所述更新操作。8.一种数据库更新装置,其特征在于,包括:字符创建模块,用于为数据库中每一数据分区创建对应的分区字符串,其中,所述分区字符串包括用于表征所述数据分区的锁定状态信息的锁定字符串与用于表征所述数据分区的版本状态信息的版本字符串;任务获取模块,用于获取多个有序的更新任务,并解析所述更新任务获取对应的更新目标以及对应的更新操作;线程创建模块,用于根据所述更新任务创建对应的多个任务线程,并根据所述更新任务的顺序为多个所述任务线程分配顺序字符串;分区抓取模块,用于通过任一所述任务线程,在所述数据库中抓取所述版本字符串与所述顺序字符串匹配的数据分区作为第一待更新分区;更新操作模块,用于当根据所述锁定字符串确定所述第一待更新分区处于非锁定状态时,锁定所述第一待更新分区,并根据所述更新目标在所述第一待更新分区中查找目标更新数据以对所述目标更新数据执行所述更新操作;分区释放模块,用于更新所述第一待更新分区的所述锁定字符串与所述版本字符串,并将更新后的所述第一待更新分区释放至所述数据库。9.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器;所述存储器,用于存储计算机程序;所述处理器,用于执行所述的计算机程序并在执行所述的计算机程序时实现如权利要求1至7中任一项所述的数据库更新方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如权利要求1至7中任一项所述的数据库更新方法。

技术总结
本申请涉及人工智能技术,公开了一种数据库更新方法、装置、设备及介质,方法包括:为数据库中每一数据分区创建分区字符串,分区字符串包括锁定字符串与版本字符串;获取多个有序的更新任务,解析更新任务获取更新目标与更新操作;根据更新任务创建多个任务线程,并根据更新任务的顺序为多个任务线程分配顺序字符串;通过任务线程抓取版本字符串与顺序字符串匹配的数据分区作为第一待更新分区;当根据锁定字符串确定第一待更新分区非锁定,锁定第一待更新分区,根据更新目标查找目标更新数据并执行更新操作;更新锁定字符串与版本字符串并将更新后的第一待更新分区释放至数据库。本方法可以对数据库进行快速准确的更新,提升更新效率。效率。效率。


技术研发人员:李盛凡
受保护的技术使用者:中国平安财产保险股份有限公司
技术研发日:2021.12.13
技术公布日:2022/3/8

最新回复(0)