CN113297232B - 一种基于数据库分区的数据更新方法、装置及系统 - Google Patents

一种基于数据库分区的数据更新方法、装置及系统 Download PDF

Info

Publication number
CN113297232B
CN113297232B CN202010762855.3A CN202010762855A CN113297232B CN 113297232 B CN113297232 B CN 113297232B CN 202010762855 A CN202010762855 A CN 202010762855A CN 113297232 B CN113297232 B CN 113297232B
Authority
CN
China
Prior art keywords
data
partition
updated
updating
update
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.)
Active
Application number
CN202010762855.3A
Other languages
English (en)
Other versions
CN113297232A (zh
Inventor
张浩然
潘岳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN202010762855.3A priority Critical patent/CN113297232B/zh
Publication of CN113297232A publication Critical patent/CN113297232A/zh
Application granted granted Critical
Publication of CN113297232B publication Critical patent/CN113297232B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2315Optimistic concurrency control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书公开一种基于数据库分区的数据更新方法、装置及系统,该方法应用于包括数据接收单元和数据更新单元的系统,方法包括:数据接收单元,持续性接收待更新数据,将接收到的待更新数据写入临时存储位置,并确定每条待更新数据所对应的更新目标分区;数据更新单元,针对任一更新目标分区,在预设的更新时间点执行以下操作:确定对应于该分区的待更新数据量;判断待更新数据量是否达到对应于该分区的预设阈值;若待更新数据量达到预设阈值,则在当前时间点执行针对该分区的数据更新操作。

Description

一种基于数据库分区的数据更新方法、装置及系统
技术领域
本说明书涉及数据库分区技术领域,尤其涉及一种基于数据库分区的数据更新方法、装置及系统。
背景技术
数据库分区是一种数据库设计技术,按照预定义的规则将数据存储在不同的物理位置,例如不同文件、不同硬盘等等。目的是减少查询数据的时所需要读取的数据总量以提高查询效率。举例而言,一个包含十年发票记录的表可以被分区为十个不同的分区,每个分区包含的是其中一年的记录。在查询时,可以直接在某个分区中进行查询,而非对整张表进行查询,减少了读取数据的数据量,因此提高了查询效率。
现有技术中,对分区中存储的数据更新过程如下:在接收到数据后,会确定接收到的数据各自所属的分区,并且在预设的周期性时间点,对各分区的数据进行全量读取,读取完成后与缓存中的数据进行合并,得到更新后数据,以更新后的数据替换该分区中原有的数据。
以上述方式对分区中的数据进行更新,在需要更新的数据较少时,仍需要读取该分区中的全量数据,更新的性价比较低,且对于数据库而言,每个周期需要读取大量分区中的数据,因此每个周期更新效率较低,资源消耗量较大。
发明内容
针对上述技术问题,本说明书提供一种基于数据库分区的数据更新方法及系统,技术方案如下:
根据本说明书的第一方面,提供一种基于数据库分区的数据更新方法,应用于包括数据接收单元和数据更新单元的系统,该方法包括:
数据接收单元,持续性接收待更新数据,将接收到的待更新数据写入临时存储位置,并确定每条待更新数据所对应的更新目标分区;
数据更新单元,针对任一更新目标分区,在预设的更新时间点执行以下操作:
确定对应于该分区的待更新数据量;
判断所述待更新数据量是否达到对应于该分区的预设阈值;
若待更新数据量达到预设阈值,则在当前时间点执行针对该分区的数据更新操作。
根据本说明书的第二方面,提供一种基于数据库分区的数据更新装置,包括:
数据接收单元,用于持续性接收待更新数据,将接收到的待更新数据写入临时存储位置,并确定每条待更新数据所对应的更新目标分区;
数据更新单元,用于针对任一更新目标分区,在预设的更新时间点执行以下操作:
确定对应于该分区的待更新数据量;
判断所述待更新数据量是否达到对应于该分区的预设阈值;
在待更新数据量达到预设阈值的情况下,在当前时间点执行针对该分区的数据更新操作。
根据本说明书的第三方面,提供一种基于数据库分区的数据更新系统,包括:数据接收单元、数据更新单元、临时存储位置以及至少两个数据库分区;
所述数据接收单元,用于持续性接收待更新数据,将接收到的待更新数据写入临时存储位置,并确定每条待更新数据所对应的更新目标分区;
所述数据更新单元,用于针对任一更新目标分区,在预设的更新时间点执行以下操作:
确定对应于该分区的待更新数据量;
判断所述待更新数据量是否达到对应于该分区的预设阈值;
在待更新数据量达到预设阈值的情况下,在当前时间点执行针对该分区的数据更新操作。
本说明书所提供的技术方案,数据接收单元持续性将接收的数据写入临时存储位置,并确定每条待更新数据所对应的更新目标分区,数据更新单元,针对每一分区,在更新时间点先基于需要更新的数据量判断本次是否需要进行更新,在达到阈值情况下才进行读取分区中的全量数据并进行更新,在不满足时,本次不执行更新操作即不需要读取分区中的全量数据,故在更新时间点需要读取的数据量大大较少,降低了系统的资源消耗。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本说明书实施例的一种分区数据更新场景示意图;
图2a是本说明书实施例的一种基于数据库分区的数据更新装置结构示意图;
图2b是本说明书实施例的一种基于数据库分区的数据更新系统结构示意图;
图3是本说明书实施例的另一种分区数据更新场景示意图;
图4是本说明书实施例的一种数据更新单元执行方法的流程示意图;
图5是本说明书实施例的另一种数据更新单元执行方法的流程示意图;
图6是本说明书实施例的又一种分区数据更新场景示意图;
图7是本说明书实施例的又一种数据更新单元执行方法的流程示意图;
图8是本说明书实施例的一种基于数据库分区的数据更新方法图形示意图;
图9是用于配置本说明书实施例装置的一种设备的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
数据库分区是一种数据库设计技术,按照预定义的规则将数据存储在不同的物理位置,例如不同文件、不同硬盘等等。目的是减少查询数据的时所需要读取的数据总量以提高查询效率。
举例而言,一个包含十年发票记录的表可以被分区为十个不同的分区,每个分区包含的是其中一年的记录。在查询时,可以直接在某个分区中进行查询,而非对整张表进行查询,减少了读取数据的数据量,因此提高了查询效率。
如图1所示,目前,对分区中存储的数据更新过程常常如下:
数据库在接收到数据后,会确定接收到的数据各自所属的分区,如图1中,假设确定1000条数据为需要更新到分区A的数据,5条数据为需要写入到分区B的数据,在到达更新周期时,会分别读取分区A中的全量数据和分区B中的全量数据,并利用存储的1000条数据对读取出的分区A中的全量数据进行更新,利用更新后的数据替换掉原本存储在分区A中的数据,即完成了分区A中存储数据的更新过程。对于分区B来说更新过程与分区A过程相同。
可见,在每一个更新周期需要对所有需要更新的分区进行更新,而每个分区的全量数据通常来说数据量巨大,可能存在几十万甚至几百万条数据。因此每次更新的读取过程需要消耗大量的处理资源,上述图1中的例子仅存在两个分区,而在实际应用中通常存在几十个分区需要同时进行更新的场景,可以预见在每个更新周期消耗资源的巨大。同时,对于待更新数据较少的分区来说,如上例中的分区B,实际上只要将待更新的5条数据,更新至分区B中,而需要读取分区B中原本存储的几十万条全量数据,可见当前周期对分区B的更新性价比很低,即消耗了大量的处理资源仅更新了少量的数据。
针对上述技术问题,本说明书提供的方案是:
配置两个数据处理单元:数据接收单元与数据更新单元。数据接收单元持续性接收待更新数据,将接收到的待更新数据写入临时存储位置,并确定每条待更新数据所对应的更新目标分区;数据更新单元针对任一更新目标分区,在预设的更新时间点确定对应于该分区的待更新数据量;判断所述待更新数据量是否达到对应于该分区的预设阈值;若待更新数据量达到预设阈值,则在当前执行该分区的数据更新操作,若所述待更新数据量未达到预设阈值,则在当前时间点不执行该分区的数据更新操作。
如图2a所示,本说明书实施例提出一种基于数据库分区的数据更新装置,包括数据接收单元210与数据更新单元220,其中数据接收单元210与数据更新单元220相互独立,执行各自的操作。
如图2b所示,为本说明书实施例提出的一种基于数据库分区的数据更新系统示意图;
如图所示,数据接收单元主要用于持续性接收待更新数据并写入到临时存储位置,而数据更新单元主要用于在更新时间点,对临时存储位置中存储的待更新数据进行检查和读取,并利用临时存储位置中的数据对分区中的数据进行更新。
基于以上说明,本说明书实施例提出一种基于数据库分区的数据更新方法:
其中数据接收单元210执行的操作包括:
持续性接收待更新数据,将接收到的待更新数据写入临时存储位置,并确定每条待更新数据所对应的更新目标分区;
数据接收单元持续接收待更新数据并且将接收到的数据写入到临时存储位置,其中临时存储位置可以是缓存、硬盘、文件等,为了提高读写效率,优选的该临时存储位置为缓存。
将接收到的待更新数据写入到临时存储位置后,可以确定临时存储位置中的各个数据所对应的更新目标分区。由于接收到的待更新数据均需要更新到对应的分区中,例如,当分区是按照时间分区的,则携带不同时间标识的待更新数据需要被写入到不同的时间分区中,当分区是按照用户分区的,则携带不同用户标识的待更新数据需要被写入到不同的分区中。数据接收单元可以根据待更新数据的标识,确定其对应的更新目标区域。如图3所示,可以确定有些数据是对应分区A的,有些数据是对应分区B的等等。
以上为数据接收单元主要执行的方法,下面介绍数据更新单元主要执行的方法:
如图4所示,为数据更新单元220针对任一更新目标分区,在预设的更新时间点执行的操作流程图:
S401,确定对应于该分区的待更新数据量;
结合图3,数据更新单元,可以确定临时存储位置中存在需要写入分区A、分区B与分区C的数据,因此可以确定存在更新需求的更新目标分区为分区A、分区B与分区C。
以更新目标分区A为例,在到达更新目标分区A的预设更新时间点时,数据更新单元,并不直接利用临时存储位置中对应于分区A的待更新数据直接对分区A进行更新。而是先确定临时存储位置中对应于分区A的待更新数据的数据量,例如可以是通过统计数据条目确定数据量。
S402,判断所述待更新数据量是否达到对应于该分区的预设阈值;
结合上述S401中的例子,在确定了对应于分区A的待更新数据量后,可以进一步判断确定的数据量是否达到了对应于分区A的预设阈值。
例如,当以数据条目数作为数据量的标准时,假设对应于分区A的预设阈值为2000条数据,而临时存储位置中对应于分区A的待更新数据量为10000条,则可以确定达到了预设阈值,反之没有达到预设阈值,例如,当确定临时存储位置中对应于分区A的待更新数据量为200条时,则确定未达到预设阈值。
S403,若待更新数据量达到预设阈值,则读取该分区内的全量数据,利用对应于该分区的待更新数据对读取到的全量数据进行更新,得到更新结果;将更新结果以替换方式写入该分区;删除临时存储位置中对应于该分区的待更新数据;
结合上述例子,在确定达到了预设阈值的情况下,可以读取分区A中的全量数据,并且利用临时存储位置中对应于分区A的数据对这些全量数据进行更新,其中,存储位置中对应于分区A的数据可以是新增的数据,可以是删除的数据、也可以是替换后的数据,在更新后得到更新结果,并将更新结果以替换方式写入分区A。至此,完成了对分区A中数据的更新,在更新完成后,将临时存储位置中对应用于分区A的数据进行删除。
在本步骤中,可以为每个数据分区都配置一个数据位图用来记录数据是否被删除,从而利用数据位图完成对分区中数据的更新,具体实现可以参照相关技术,这里不进行详述。
S404,若所述待更新数据量未达到预设阈值,则在当前时间点不执行针对该分区的数据更新操作。
在确定未达到预设阈值的情况下,则在当前时间点不执行针对该分区的数据更新操作,即不执行读取分区A中的全量数据,并利用对应于该分区A的待更新数据对读取到的全量数据进行更新的操作。
采用上述方式,数据接收单元以及数据更新单元执行的方法,在更新时间点需要读取的数据量大大较少,降低了系统的资源消耗。并且在数据量较小的情况下暂时不将数据更新到对应的分区中,可以等待下一更新时间点的到来,再重新进行判断,在需要查询分区中的数据时,可以将临时存储位置中的少量数据与分区中的数据进行合并,确定查询结果,由于临时存储位置中的数据量并不大,因此并不会影响到数据查询的效率。
在上述数据更新单元执行的S402-404中,需要判断待更新数据量是否达到对应于该分区的预设阈值,则达到预设阈值的时候,才执行更新操作,在未达到时不执行更新操作。其基本理念为不希望因为较少的待更新数据量而去读取分区中大量的全量数据。因此,需要预先为每一分区都配置预设阈值。
其中,可以预先为每个分区都配置统一的预设阈值,例如为每个分区配置的预设阈值均为1000条,即某一分区的待更新数据量达到1000条,才对该区进行更新,未达到就不更新。配置的同一预设阈值的具体数值可以根据全部分区的实际情况进行设定,本说明书对此不做限定。
除了为每个分区都配置统一的预设阈值外,也可以是针对不同的分区个性化配置预设阈值:
一种方案为:考虑到一般会为数据量大的数据分配更大的分区存储空间,结合上述图3,例如,由于需要存储至分区C的整体数据量最大,因此分区C的存储空间最大,需要存储至分区A的整体数据量最小,因此分区A的存储空间最小。
结合上述分区存储空间的分配理念,可以为不同分区根据其存储空间大小配置相应的预设阈值,具体为分区存储空间越大,则为其配置的预设阈值越大。
另一种方案为:数据更新单元可以针对任一分区,根据该分区中全量数据的数据量动态调整对应于该分区预设阈值。
结合上述图3,对于每个分区在每次更新后,数据更新单元都可以得知该分区中当前存在的数据量。
以分区A为例,数据更新单元确定其当前该分区内存储了10万条数据,则可以根据分区A当前存储数据量确定对应于分区A的预设阈值,例如可以设置为分区A的全量数据的10%,即1万条。当然也可以是他方式根据分区A当前存储数据量确定对应于分区A的预设阈值,只要预设阈值与分区A的全量数据成正比关系即可。
当分区A中的全量数据发生变化时,动态更新该分区A对应的预设阈值。结合上述例子,经过某次更新后,分区A中的数据量达到了20万条,则可以将分区A的预设阈值设置为2万条数据。
采用本方式,以各个分区实际存储的数据量作为依据配置对应于各个分区的预设阈值,可以将预设阈值与各个分区的实际全量数据进行关联,以尽可能的避免因为较少的待更新数据量而去读取分区中大量的全量数据。
考虑到临时存储位置的存储资源有限而分区数量过多,如果长时间将对应于多个数据分区的数据均存储在临时存储位置,无疑会对临时存储位置造成一定的负担。
基于上述问题,如图5所示,本说明书提出了数据更新单元执行的另一种数据更新方法:
其中S501-S503与前述图4中的S401-S403相同,这里不再赘述。
本实施例中,在S504中在待更新数据量未达到预设阈值的情况下,还可以进一步确定临时存储位置中,对应于该分区的待更新数据存储时长是否超时;在超时的情况下执行S505,即在当前时间点执行针对该分区的数据更新操作,在不超时的情况下,执行S506,即在当前时间点不执行数据更新操作。
其中,S504具体判断过程可以如下:
例如,可以为每个分区对应的待更新数据设置允许存储在临时存储位置的存储时长,例如为20min。即针对每个分区,只允许其对应的待更新数据,在临时存储位置临时存储10min,而不允许在临时存储位置一直存储下去。
以上述S401-403中的例子为例,在确定对应于分区A的待更新数据未达到预设阈值的情况下本步骤中需要进一步确定对应于分区A的待更新数据在临时存储位置存储的时间是否超时。由于存储在临时存储位置对应于分区A的待更新数据可能是多条数据,其中每条待更新数据到达临时存储位置的时间均不相同,如表1所示,为对应于分区A的不同待更新数据在临时存储位置的存储时长。
表1
由于对应于分区A的多条待更新数据存储在临时存储位置的存储时长不同,因此在判断对应于分区A的待更新数据存储时长是否超时的时候,需要综合考虑当前每条对应于分区A的待更新数据的在临时存储位置的存储时长。
其中,可以是确定对应于分区A的待更新数据在临时存储位置的平均时长,以平均时长作为对应于分区A的待更新数据的存储时长,判断平均时长是否超时。结合上述表1的例子,若当前共存在4条数据即数据1、数据2、数据3、数据4。则可以确定这四条数据的平均存储时长为6min,如果允许存储时长为10min,此时可以确定未超时,执行S506。
另外,也可以确定存储时间最长的待更新数据所对应的存储时长,以该时长作为对应于分区A的待更新数据的存储时长。结合上述表1,可以看出存储时长最长的为数据3为20min,如果允许存储时长为10min,此时可以确定超时,执行S505。
当然,还可以以其他方式确定对应于各分区的待更新数据的存储时长,本说明书对此不作限定。
采用本实施例的方案,可以避免将待更新数据长时间存储在临时存储位置,以减少对临时存储位置的存储压力。
上述S401的执行触发条件为:到达分区更新的更新时间点,因此数据更新单元需要预先配置更新时间点。
在一个实施例中,数据更新单元,可以为不同的分区配置统一的更新时间点、或者为不同的分区分别配置更新时间点。
结合上述图3,数据更新单元可以为所有分区都配置统一的更新时间点,例如,为每个分区都配置为每整分钟进行更新。
例如,在每日00:00:00确定到达每个分区的更新时间点,下次更新时间为00:01:00,因此类推。当然,本方式中配置的统一更新时间点可以根据实际需求进行设置,例如每整分钟,每整小时等,本说明书对此不作限定。
另外,考虑到每个分区的存储更新需求不同,例如,整体上,有的分区待更新数据的数据量比较多,有的分区数据待更新数据量比较少,因此可以为不同的分区分别配置更新时间点。
结合图3,例如分区A的数据更新需求比较强,对应于分区A的待更新数据量整体上比较大,且对应于分区A的待更新数据到达临时存储位置的频率比较高。分区B的数据更新需求比较弱,即对应于分区A的待更新数据量整体上比较小,且对应于分区B的待更新数据到达临时存储位置的频率比较低。
则可以将分区A的更新时间点,配置的比较密集,将分区B的更新时间点配置的比较稀疏。例如,如果是配置为周期性的更新时间点,则可以将分区A配置为每10S到达一次更新时间点。将分区B配置为每2min到达一次更新时间点。
当然,针对每一分区也可以配置为非周期性的更新时间点,例如由于白天更新数据一般比较多(AM8:00-PM8:00),夜晚比较少(PM8:00-AM8:00),则可以在白天配置为每10S到达一次更新时间点,在夜晚配置PM8:00-AM8:00之间配置共两个更新时间点,例如AM03:00更新一次,AM8:00更新一次。
采用本方式,更新时间点可以根据每个分区的实际更新需求进行配置,如此,会减少数据更新单元同时对多个分区进行更新的情况,减轻了数据更新单元的处理负担。
在为不同的分区配置统一的、更新时间点的情况下,数据更新单元虽然可能需要同时判断多个目标更新分区是否需要更新,但是也有可能仅存在少数目标更新分区。以图6所示为例,虽然将分区A至分区N都配置统一的更新时间点,但是在当前更新时间点,临时存储位置中仅存在对应于分区A的待更新数据,那么当前更新时间点则仅存在一个目标更新分区即目标更新分区A。如果此时经过初步判断,即针对目标更新分区A判断待更新数据量是否到了其对应的预设阈值,判断结果为未达到,如果执行S404,则本更新周期并不会对任何分区进行更新。然而,此时因为不涉及到对其他分区进行更新,所以即使将临时存储位置中对应于分区A的待更新数据进行处理,也并不会消耗大量的处理资源,并且如果此时不对分区A进行更新,可能会导致当分区A需要更新时,会与其他很多分区一起更新,彼时数据更新单元会同时处理多个分区的更新,因此会增加数据更新单元的负担。
基于上述问题,如图7所示,本说明书提出了数据更新单元执行的另一种数据更新方法:
结合上部分说明,在为不同的分区配置统一的更新时间点的情况下,即需要在同一更新时间点,同时判断多个目标更新分区是否需要更新的情况下,数据更新单元可以执行如图7所示的方法。
S701-S703与上述S401-S403相同,这里不再做赘述。
S704,所述数据更新单元,在待更新数据量未达到预设阈值的情况下,进一步确定当前时间点需要读取的分区数量是否达到预设数量;
例如,可以将预设数量设置为3个,判断当前时间点需要读取的分区数量是否达到3个;
在达到预设数量的情况下,执行S706,即不执行数据更新操作。
在未达到预设数量的情况下,执行S705,即在当前时间点执行针对该分区的数据更新操作。
采用本实施例的方案,数据更新单元,在待更新数据量未达到预设阈值的情况下,进一步确定当前时间点需要读取的分区数量是否达到预设数量,在未达到预设数量的情况下,在当前时间点执行针对该分区的数据更新操作,可以充分利用每个更新时间点的处理资源,同时可以避免数据更新单元在同一时间处理多个分区的更新。
下面以一个具体的实施例对说明书所公开的方案进行描述:
如图8所示,系统中所有分区都配置为同一更新时间点,所有的数据分区都包含一个数据位图用来记录数据是否被删除。
数据接收单元在接收到待更新数据后,将所有待更新数据都存储在临时存储位置,确定其中存在对应于分区0的数据和对应于分区1的数据。
在到达更新时间点时,数据更新单元确定目标更新分区为分区0和分区1,分别针对分区0和分区1进行判断,确定是否需要进行更新。由图中可以看出临时存储位置中对应于分区0的数据较多,对应于分区1的数据较少。
经过判断,确定对应于分区0的待更新数据量达到了分区0的预设阈值,对应于分区1的待更新数据量未达到了分区1的预设阈值。
因此,本次更新时间点的更新结果为仅对分区0中的数据进行了更新,并未对分区1中的数据进行更新,将对应于分区1中的待更新数据继续存储在临时存储区域中,等待下次更新时间点再进行判断。
结合图2a,与前述一种基于数据库分区的数据更新方法相对应,本说明书还提供了一种基于数据库分区的数据更新装置,包括
数据接收单元210,用于持续性接收待更新数据,将接收到的待更新数据写入临时存储位置,并确定每条待更新数据所对应的更新目标分区;
数据更新单元220,用于针对任一更新目标分区,在预设的更新时间点执行以下操作:
确定对应于该分区的待更新数据量;
判断所述待更新数据量是否达到对应于该分区的预设阈值;
若待更新数据量达到预设阈值,则在当前时间点执行针对该分区的数据更新操作。
在一个实施例中,所述数据更新单元,具体用于在待更新数据量达到预设阈值的情况下,读取该分区内的全量数据,利用对应于该分区的待更新数据对读取到的全量数据进行更新,得到更新结果;将更新结果以替换方式写入该分区;删除临时存储位置中对应于该分区的待更新数据。
在一个实施例中,所述数据更新单元,还用于在待更新数据量未达到预设阈值的情况下,在当前时间点不执行针对该分区的数据更新操作。
在一个实施例中,所述数据更新单元,还用于针对任一分区,根据该分区中全量数据的数据量动态调整对应于该分区预设阈值。
在一个实施例中,所述数据更新单元,还用于在待更新数据量未达到预设阈值的情况下,进一步确定临时存储位置中,对应于该分区的待更新数据存储时长是否超时;在确定超时的情况下,在当前时间点执行针对该分区的数据更新操作。
在一个实施例中,所述数据更新单元,还用于为不同的分区配置统一的更新时间点、或者为不同的分区分别配置更新时间点。
在一个实施例中,所述数据更新单元,还用于在为不同的分区配置统一的更新时间点的情况下,在待更新数据量未达到预设阈值时,进一步确定当前时间点需要读取的分区数量是否达到预设数量;
在未达到预设数量的情况下,则在当前时间点执行针对该分区的数据更新操作。
结合图2b,与前述一种基于数据库分区的数据更新方法相对应,本说明书还提供了一种基于数据库分区的数据更新系统,包括:数据接收单元、数据更新单元、临时存储位置以及至少两个数据库分区;
所述数据接收单元,用于持续性接收待更新数据,将接收到的待更新数据写入临时存储位置,并确定每条待更新数据所对应的更新目标分区;
所述数据更新单元,用于针对任一更新目标分区,在预设的更新时间点执行以下操作:
确定对应于该分区的待更新数据量;
判断所述待更新数据量是否达到对应于该分区的预设阈值;
在待更新数据量达到预设阈值的情况下,在当前时间点执行针对该分区的数据更新操作。
上述系统中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于系统实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述的方法。该方法至少包括:该方法至少包括前述数据接收单元和数据更新单元所执行的步骤。
图9示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的方法。该方法至少包括前述数据接收单元和数据更新单元所执行的步骤。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。

Claims (9)

1.一种基于数据库分区的数据更新方法,应用于包括数据接收单元和数据更新单元的系统,所述方法包括:
数据接收单元,持续性接收待更新数据,将接收到的待更新数据写入临时存储位置,并确定每条待更新数据所对应的更新目标分区;
数据更新单元,针对任一更新目标分区,在预设的更新时间点执行以下操作:
确定对应于该分区的待更新数据量;
判断所述待更新数据量是否达到对应于该分区的预设阈值;
若待更新数据量达到预设阈值,则在当前时间点执行针对该分区的数据更新操作;
其中,所述针对该分区的数据更新操作,包括:读取该分区内的全量数据,利用对应于该分区的待更新数据对读取到的全量数据进行更新,得到更新结果;将更新结果以替换方式写入该分区;删除临时存储位置中对应于该分区的待更新数据;
其中,所述数据更新单元,为不同的分区配置统一的更新时间点;在为不同的分区配置统一的更新时间点的情况下,所述方法还包括:所述数据更新单元,在待更新数据量未达到预设阈值的情况下,进一步确定当前时间点需要读取的分区数量是否达到预设数量;在未达到预设数量的情况下,则在当前时间点执行针对该分区的数据更新操作。
2.根据权利要求1所述的方法,还包括:
所述数据更新单元,针对任一分区,根据该分区中全量数据的数据量动态调整对应于该分区预设阈值。
3.根据权利要求1所述的方法,还包括:
所述数据更新单元,在待更新数据量未达到预设阈值的情况下,进一步确定临时存储位置中,对应于该分区的待更新数据存储时长是否超时;
在确定超时的情况下,在当前时间点执行针对该分区的数据更新操作。
4.一种基于数据库分区的数据更新装置,包括:
数据接收单元,用于持续性接收待更新数据,将接收到的待更新数据写入临时存储位置,并确定每条待更新数据所对应的更新目标分区;
数据更新单元,用于针对任一更新目标分区,在预设的更新时间点执行以下操作:
确定对应于该分区的待更新数据量;
判断所述待更新数据量是否达到对应于该分区的预设阈值;
在待更新数据量达到预设阈值的情况下,在当前时间点执行针对该分区的数据更新操作;
其中,所述数据更新单元,具体用于在待更新数据量达到预设阈值的情况下,读取该分区内的全量数据,利用对应于该分区的待更新数据对读取到的全量数据进行更新,得到更新结果;将更新结果以替换方式写入该分区;删除临时存储位置中对应于该分区的待更新数据;
其中,所述数据更新单元,还用于为不同的分区配置统一的更新时间点;所述数据更新单元,还用于在为不同的分区配置统一的更新时间点的情况下,在待更新数据量未达到预设阈值时,进一步确定当前时间点需要读取的分区数量是否达到预设数量;在未达到预设数量的情况下,在当前时间点执行针对该分区的数据更新操作。
5.根据权利要求4所述的装置,
所述数据更新单元,还用于针对任一分区,根据该分区中全量数据的数据量动态调整对应于该分区预设阈值。
6.根据权利要求4所述的装置,
所述数据更新单元,还用于在待更新数据量未达到预设阈值的情况下,进一步确定临时存储位置中,对应于该分区的待更新数据存储时长是否超时;
在确定超时的情况下,在当前时间点执行针对该分区的数据更新操作。
7.一种基于数据库分区的数据更新系统,包括:数据接收单元、数据更新单元、临时存储位置以及至少两个数据库分区;
所述数据接收单元,用于持续性接收待更新数据,将接收到的待更新数据写入临时存储位置,并确定每条待更新数据所对应的更新目标分区;
所述数据更新单元,用于针对任一更新目标分区,在预设的更新时间点执行以下操作:
确定对应于该分区的待更新数据量;
判断所述待更新数据量是否达到对应于该分区的预设阈值;
在待更新数据量达到预设阈值的情况下,在当前时间点执行针对该分区的数据更新操作;
其中,所述数据更新单元,具体用于在待更新数据量达到预设阈值的情况下,读取该分区内的全量数据,利用对应于该分区的待更新数据对读取到的全量数据进行更新,得到更新结果;将更新结果以替换方式写入该分区;删除临时存储位置中对应于该分区的待更新数据;
其中,所述数据更新单元,还用于为不同的分区配置统一的更新时间点;所述数据更新单元,还用于在为不同的分区配置统一的更新时间点的情况下,在待更新数据量未达到预设阈值时,进一步确定当前时间点需要读取的分区数量是否达到预设数量;在未达到预设数量的情况下,在当前时间点执行针对该分区的数据更新操作。
8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1至3任一项所述的方法。
9.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1至3任一项所述的方法。
CN202010762855.3A 2020-07-31 2020-07-31 一种基于数据库分区的数据更新方法、装置及系统 Active CN113297232B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010762855.3A CN113297232B (zh) 2020-07-31 2020-07-31 一种基于数据库分区的数据更新方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010762855.3A CN113297232B (zh) 2020-07-31 2020-07-31 一种基于数据库分区的数据更新方法、装置及系统

Publications (2)

Publication Number Publication Date
CN113297232A CN113297232A (zh) 2021-08-24
CN113297232B true CN113297232B (zh) 2024-03-01

Family

ID=77318136

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010762855.3A Active CN113297232B (zh) 2020-07-31 2020-07-31 一种基于数据库分区的数据更新方法、装置及系统

Country Status (1)

Country Link
CN (1) CN113297232B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102938001A (zh) * 2012-12-10 2013-02-20 曙光信息产业(北京)有限公司 数据加载装置和数据加载方法
CN104615594A (zh) * 2013-11-01 2015-05-13 阿里巴巴集团控股有限公司 一种数据更新方法及装置
CN107545021A (zh) * 2017-05-10 2018-01-05 新华三信息安全技术有限公司 一种数据存储方法及装置
CN109359118A (zh) * 2018-08-31 2019-02-19 阿里巴巴集团控股有限公司 一种数据写入方法及装置
CN109597818A (zh) * 2018-11-28 2019-04-09 优刻得科技股份有限公司 数据更新方法、装置、存储介质和设备
CN110019210A (zh) * 2017-11-24 2019-07-16 阿里巴巴集团控股有限公司 数据写入方法及设备
CN111090705A (zh) * 2018-10-23 2020-05-01 杭州海康威视数字技术股份有限公司 一种多维数据处理方法、装置及设备、存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10877992B2 (en) * 2017-11-30 2020-12-29 International Business Machines Corporation Updating a database
CN108932338B (zh) * 2018-07-11 2021-08-10 北京百度网讯科技有限公司 数据更新方法、装置、设备和介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102938001A (zh) * 2012-12-10 2013-02-20 曙光信息产业(北京)有限公司 数据加载装置和数据加载方法
CN104615594A (zh) * 2013-11-01 2015-05-13 阿里巴巴集团控股有限公司 一种数据更新方法及装置
CN107545021A (zh) * 2017-05-10 2018-01-05 新华三信息安全技术有限公司 一种数据存储方法及装置
CN110019210A (zh) * 2017-11-24 2019-07-16 阿里巴巴集团控股有限公司 数据写入方法及设备
CN109359118A (zh) * 2018-08-31 2019-02-19 阿里巴巴集团控股有限公司 一种数据写入方法及装置
CN111090705A (zh) * 2018-10-23 2020-05-01 杭州海康威视数字技术股份有限公司 一种多维数据处理方法、装置及设备、存储介质
CN109597818A (zh) * 2018-11-28 2019-04-09 优刻得科技股份有限公司 数据更新方法、装置、存储介质和设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GPS定位监控系统数据库的分区优化及其实现;徐述书;叶桦;仰燕兰;;东南大学学报(自然科学版)(S1);全文 *
一种网络编码分布式存储系统中的数据更新策略;刘冰星;邓玉辉;;小型微型计算机系统(03);全文 *

Also Published As

Publication number Publication date
CN113297232A (zh) 2021-08-24

Similar Documents

Publication Publication Date Title
CN106802932B (zh) 一种数据库的路由方法、装置及数据库系统
CN110018998B (zh) 一种文件管理方法、系统及电子设备和存储介质
CN109388657B (zh) 数据处理方法、装置、计算机设备及存储介质
CN105095393A (zh) 一种数据存储方法及装置
CN108932286B (zh) 一种数据查询方法及装置
CN103544153A (zh) 一种基于数据库的数据更新方法和系统
JP2014528127A (ja) 使用状態ビットマップを備えた記憶装置への効率的なアクセス
CN109150642B (zh) 应用内存错误检测方法、检测装置及存储介质
CN113535721A (zh) 一种数据写入方法及装置
CN111506580B (zh) 一种基于中心化块链式账本的交易存储方法
CN110851474A (zh) 数据查询方法、数据库中间件、数据查询设备及存储介质
CN114996173B (zh) 一种管理存储设备写操作的方法和装置
CN111400334A (zh) 数据处理方法、装置、存储介质及电子装置
CN110347497B (zh) 一种将多个存储设备划分设备组的方法及装置
CN114020193A (zh) 跨页勾选确定方法、装置、电子设备及存储介质
CN109947667B (zh) 数据访问预测方法和装置
CN111666184B (zh) 固态驱动器ssd硬盘测试方法、装置及电子设备
CN113297232B (zh) 一种基于数据库分区的数据更新方法、装置及系统
CN111930363A (zh) 区块接口代码生成方法、及装置
CN117112941A (zh) 字典获取方法、装置、计算机设备、存储介质和程序产品
CN110688070B (zh) 固态硬盘数据表的管理方法、装置、存储介质及电子设备
CN116841794A (zh) 一种数据的校验方法、装置以及存储介质
CN111752919A (zh) 一种数据写入方法、数据读取方法及装置
CN113010514A (zh) 热加载方法及装置
CN107436918B (zh) 数据库实现方法、装置和设备

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40058638

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant