CN107391755A - 一种数据分布调节、查询的方法和装置 - Google Patents

一种数据分布调节、查询的方法和装置 Download PDF

Info

Publication number
CN107391755A
CN107391755A CN201710718696.5A CN201710718696A CN107391755A CN 107391755 A CN107391755 A CN 107391755A CN 201710718696 A CN201710718696 A CN 201710718696A CN 107391755 A CN107391755 A CN 107391755A
Authority
CN
China
Prior art keywords
data
migrated
group
groups
tables
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
Application number
CN201710718696.5A
Other languages
English (en)
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.)
China Unionpay Co Ltd
Original Assignee
China Unionpay Co 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 China Unionpay Co Ltd filed Critical China Unionpay Co Ltd
Priority to CN201710718696.5A priority Critical patent/CN107391755A/zh
Publication of CN107391755A publication Critical patent/CN107391755A/zh
Pending legal-status Critical Current

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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • 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
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Fuzzy Systems (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例涉及分布式数据库领域,尤其涉及一种数据分布调节、查询的方法和装置,用于实现降低数据分布调节对客户端访问分布式数据库系统的影响。根据第二分布规则从至少一个第一数据表中确定出N组待迁移数据;针对N组待迁移数据中每组待迁移数据,根据第二分布规则确定该组待迁移数据对应的第二数据表;并在第二数据表中生成该组待迁移数据的副本待迁移数据;若确定生成N组待迁移数据中每组待迁移数据的副本待迁移数据,则从至少一个第一数据表中删除N组待迁移数据。本发明实施例数据分布调节对象是主键标识的一组待迁移数据,同步数据量小,可以缩短中断访问的时间,进而降低数据分布调节对于客户端访问分布式数据库系统的影响。

Description

一种数据分布调节、查询的方法和装置
技术领域
本发明实施例涉及分布式数据库领域,尤其涉及一种数据分布调节、查询的方法和装置。
背景技术
随着互联网的飞速发展,单个数据库中的数据量和访问量快速增长,分布式数据库能够有效解决海量的数据存储和并发数据访问的问题。现有技术中的分布式数据库系统中包括至少一个数据库,每个数据库包括至少一个数据表;数据按照一定的分布规则存储于分布式数据库系统中,在分布式数据库系统存在数据库扩容、缩容及数据分布不均衡等情况下,需要对系统中的数据进行分布调节,以便达到性能扩容、资源回收、负载均衡等效果。
现有技术中对分布式数据库系统进行的数据分布调节时,一般是将一个数据库中的整个数据表中存储的数据全部同步至另一个数据库中。举个例子,比如分布式数据库系统中存在两个数据库:数据库A和数据库B,数据库A中的数据表一中存储15行数据;数据库B中的数据表一存储10行数据,数据表二存储了12行数据;当系统中新增了一个数据库C时,为了实现分布式数据库系统负载均衡,数据分布调节过程为:将数据库B中的两个数据表中的一个同步至新增的数据库C中,比如,将数据库B中的数据表二中的所有数据同步至数据库C中,并将数据库B中的数据表二中的数据删除。这种数据分布调节方式存在以下问题:数据同步时间长;而且,为了避免客户端访问到的数据出错,在数据同步过程中不允许客户端对分布式数据库系统中存储的数据进行访问;因此,现有技术中的这种数据分布调节方式导致客户端对分布式数据库系统的访问中断时间长。
因此,亟需一种数据分布调节、查询的方法,实现降低数据分布调节过程对于客户端访问分布式数据库系统的影响。
发明内容
本发明实施例提供一种数据分布调节、查询的方法和装置,实现降低数据分布调节对于客户端访问分布式数据库系统的影响。
本发明实施例提供一种数据分布调节方法,包括:根据第二分布规则从至少一个第一数据表中确定出N组待迁移数据;其中,所述N组待迁移数据中的每组待迁移数据根据第一分布规则存储至该组待迁移数据对应的第一数据表中,且每组待迁移数据对应一个主键;所述N为正整数;针对所述N组待迁移数据中的每组待迁移数据,根据所述第二分布规则确定该组待迁移数据对应的第二数据表;并在所述第二数据表中生成该组待迁移数据的副本待迁移数据;若确定生成所述N组待迁移数据中每组待迁移数据的副本待迁移数据,则从所述至少一个第一数据表中删除所述N组待迁移数据。
本发明实施例提供一种数据查询的方法,所述数据根据上述任一实施例提供的方法进行数据分布调节;数据查询的方法包括:接收到查询请求,所述查询请求中包括待查询数据的主键;根据所述主键关联的M个分布规则,确定出所述主键对应的待查询数据;所述M为正整数。
本发明实施例提供一种数据分布调节装置,包括:确定单元,用于根据第二分布规则从至少一个第一数据表中确定出N组待迁移数据;针对所述N组待迁移数据中的每组待迁移数据,根据所述第二分布规则确定该组待迁移数据对应的第二数据表;其中,所述N组待迁移数据中的每组待迁移数据根据第一分布规则存储至该组待迁移数据对应的第一数据表中,且每组待迁移数据对应一个主键;所述N为正整数;数据同步单元,用于在所述第二数据表中生成该组待迁移数据的副本待迁移数据;若确定生成所述N组待迁移数据中每组待迁移数据的副本待迁移数据,则从所述至少一个第一数据表中删除所述N组待迁移数据。
本发明实施例提供一种用于数据查询的装置,数据根据上述实施例中的数据分布调节装置进行数据分布调节;所述用于数据查询的装置包括:接收单元,用于接收到查询请求,所述查询请求中包括待查询数据的主键;确定单元,用于根据所述主键关联的M个分布规则,确定出所述主键对应的待查询数据;所述M为正整数。
本发明实施例提供一种计算机设备,所述计算机设备包括处理器和存储器;所述存储器用于存储指令,所述处理器用于执行所述存储器存储的指令,当所述处理器执行所述存储器存储的指令时,所述计算机设备用于执行上述任一实施例所述的方法。
本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述任一实施例所述的方法。
本发明实施例中,根据第二分布规则从至少一个第一数据表中确定出N组待迁移数据;其中,N组待迁移数据中的每组待迁移数据根据第一分布规则存储至该组待迁移数据对应的第一数据表中,且每组待迁移数据对应一个主键;N 为正整数;针对N组待迁移数据中的每组待迁移数据,根据第二分布规则确定该组待迁移数据对应的第二数据表;并在第二数据表中生成该组待迁移数据的副本待迁移数据;若确定生成N组待迁移数据中每组待迁移数据的副本待迁移数据,则从至少一个第一数据表中删除N组待迁移数据。可见,本发明实施例进行数据分布调节时,调节对象为待迁移数据,并不像现有技术中的每次调节对象至少是一个数据表中存储的所有数据;如此,本发明实施例中只需要调节待迁移数据,与调节整个数据表相比需要进行数据分布调节的数据量较小,也就是说,相较于现有技术中调节整个数据表的访问中断时间,本发明实施例可以缩短数据分布调节过程访问中断的时间,进而降低数据分布调节对于客户端访问分布式数据库系统的影响。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍。
图1为本发明实施例提供的一种数据分布调节系统架构示意图;
图2为本发明实施例提供的一种数据分布调节方法流程示意图;
图3为本发明实施例提供的扩容场景下按照第一分布规则存储数据的示例;
图3a为本发明实施例提供的扩容场景下待迁移数据同步过程的示意图;
图3b为本发明实施例提供的扩容场景下待迁移数据全部同步完成后的数据分布示意图;
图3c为本发明实施例提供的扩容场景下源数据库中的待迁移数据删除后的数据分布示意图;
图4为本发明实施例提供的纯粹的数据分布调节场景下按照第一分布规则存储数据的示例;
图4a为本发明实施例提供的纯粹的数据分布调节场景下待迁移数据同步过程的示意图;
图4b为本发明实施例提供的纯粹的数据分布调节场景下待迁移数据全部同步完成后的数据分布示意图;
图4c为本发明实施例提供的纯粹的数据分布调节场景下源数据库中的待迁移数据删除后的数据分布示意图;
图5为本发明实施例提供的缩容场景下示例性示出了按照第一分布规则存储数据的示例;
图5a为本发明实施例提供的缩容场景下待迁移数据同步过程的示意图;
图5b为本发明实施例提供的缩容场景下待迁移数据全部同步完成后的数据分布示意图;
图5c为本发明实施例提供的缩容场景下源数据库中的待迁移数据删除后的数据分布示意图;
图6为本发明实施例提供的另一种数据分布调节方法示意图;
图7为本发明实施例提供的数据查询的方法示意图;
图8为本发明实施例提供的一种数据分布调节装置结构示意图;
图9为本发明实施例提供的一种用于数据查询的装置结构示意图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。
图1示例性示出了本发明实施例适用的数据分布调节系统架构示意图。
本发明实施例适用的数据分布调节系统包括至少一个客户端和分布式数据库系统,其中,分布式数据库系统包括至少一个代理和至少一个物理节点,其中,至少一个物理节点中每个物理节点对应一个数据库,每个数据库存储至少一个主键对应的一组数据;如图1所示,该数据分布调节系统100包括客户端 101、客户端102、客户端103、代理104、物理节点105、物理节点106、物理节点107、数据分布调节装置108和数据查询节装置109;一方面,代理104分别连接客户端101、客户端102、客户端103;另一方面,代理104分别连接物理节点105、物理节点106、物理节点107;数据分布调节装置108和数据查询节装置109可以设置在代理104中,也可以设置于在代理104、物理节点105、物理节点106、物理节点107之外的独立装置;在数据分布调节装置108和数据查询节装置109为独立装置的情况下,数据分布调节装置108和数据查询节装置109均连接代理104,通过代理104访问物理节点105、物理节点106和物理节点107中存储的数据。
本发明实施例中,客户端101、客户端102、客户端103可以通过代理104 访问分布式数据库系统中存储的数据;在数据查询节装置109为独立装置的情况下,数据查询节装置109连接客户端101、客户端102、客户端103,此时,客户端101、客户端102、客户端103通过数据查询节装置109查询分布式数据库系统中存储的数据。具体的,分布式数据库系统包括物理节点105、物理节点 106、物理节点107;分布式数据库系统可以在扩容、缩容和分布规则切换的情况下,对分布式数据库系统中存储的数据进行数据分布调节。
需要说明的是,本发明实施例中的扩容为分布式数据库系统中新增至少一个物理节点;缩容为分布式数据库系统中存在物理节点失效;数据分布规则改变为:分布式数据库系统中物理节点不存在增加或减少,仅是分布式数据库系统的使用的数据分布规则发生改变;举个例子,比如,第一时间段对应的第一分布规则为:主键1-10标识的数据存储于数据库A中,主键11-20标识的数据存储于数据B中;第二时间段对应的第二分布规则为:主键1-15标识的数据存储于数据库A中,主键16-30标识的数据存储于数据库B中;分布式数据库系统由第一分布规则改变为第二分布规则改变导致的数据分布调节过程为:确定出待迁移数据为主键11-15标识的数据;将存储于数据库B的主键11-15标识的数据同步至数据库A中,同时将数据库B中的主键11-15标识的数据删除;进行数据分布调节之后,分布式数据库系统中的数据库A存储的数据为主键1-15 标识的数据,数据库B存储的数据为主键16-20标识的数据。
基于图1所示的系统架构,图2示例性示出了本发明实施例提供的一种数据分布调节方法流程示意图。本发明实施例提供的数据分布调节方法由数据分布调节装置执行;如图2所示,该方法包括以下步骤:
步骤201:根据第二分布规则从至少一个第一数据表中确定出N组待迁移数据;其中,N组待迁移数据中的每组待迁移数据根据第一分布规则存储至该组待迁移数据对应的第一数据表中,且每组待迁移数据对应一个主键;N为正整数;
步骤202:针对N组待迁移数据中的每组待迁移数据,根据第二分布规则确定该组待迁移数据对应的第二数据表;并在第二数据表中生成该组待迁移数据的副本待迁移数据;
步骤203:若确定生成N组待迁移数据中每组待迁移数据的副本待迁移数据,则从至少一个第一数据表中删除N组待迁移数据。
本发明实施例进行数据分布调节时,调节对象为N组待迁移数据,并不像现有技术中的每次调节对象至少是一个数据表中存储的所有数据;如此,本发明实施例中只需要调节待迁移数据,与调节整个数据表相比需要进行数据分布调节的数据量较小,也就是说,相较于现有技术中调节整个数据表的访问中断时间,本发明实施例可以缩短数据分布调节过程访问中断的时间,进而降低数据分布调节对于客户端访问分布式数据库系统的影响。
本发明实施例中,至少一个第一数据表为进行数据分布调节之前分布式数据库系统中包括的所有数据表,也是每组待迁移数据根据第一分布规则存储的源位置。第二数据表为每组待迁移数据根据第二分布规则存储的目标位置,数据分布调节至少包括:将待迁移数据从源位置调节至目标位置。上述步骤202 中的副本待迁移数据与待迁移数据的数据内容相同,名称的差别只是为了区分数据调节前后该组数据的位置,待迁移数据在数据分布调节前存储于第一数据表中,在数据分布调节之后存储于第二数据表中。
第一数据表中包括按照第一分布规则存储的至少一个主键标识的至少一组数据;至少一个主键中的每个主键标识一组数据;第一分布规则包括:若一组数据包括的预设字段对应的值在第一集合中的一个第一预设范围内,则将该组数据存储在该第一预设范围对应的位置;其中,第一集合中包括至少一个第一预设范围。
具体实施中,分布式数据库系统中每个数据库可以包括一个数据表,也可以包括多个数据表;第一集合中的任两个第一预设范围对应的位置可以为不同数据库,也可以为同一个数据库中的不同数据表。下面以分布式数据库系统中每个数据库仅包括一个数据表为例,介绍第一集合中的任两个第一预设范围对应的位置为不同数据库时的数据按照第一分布规则存储的示例。
举个例子,比如需要存储在分布式数据库系统中的5组数据,5组数据分别采用主键1、2、3、5、7标识;表1示例性示出了5组数据对应的字段的示例。
表1 5组数据对应的字段的示例
如表1所示,用于标识5组数据的主键分别为1、2、3、5、7;每个主键标识的数据包括字段:年龄和时间;其中,主键1标识的数据包括的字段:年龄5、时间1月20日;主键2标识的数据包括的字段:年龄8、时间12月15日;主键3标识的数据包括的字段:年龄20、时间2月22日;主键5标识的数据包括的字段:年龄18、时间9月1日;主键7标识的数据包括的字段:年龄11、时间5月6日。
为了更清楚的介绍数据如何按照第一分布规则存储,本发明实施例中以表1 中5组数据为例进行介绍。
本发明实施例中,比如预设字段为年龄,第一集合包括:第一预设范围1-10 和第一预设范围11-20;假设第一分布规则为:预设字段(年龄)在第一预设范围1-10内,则年龄在1-10内的每组数据存储于数据库A中;预设字段(年龄) 在第一预设范围11-20内,则年龄在11-20内的每组数据存储于数据库B中。表 2示例性示出了根据表1所示的5组数据以年龄为预设字段按照第一分布规则进行存储的示例。
由表2可知,主键1、2、3、5、7标识的5组数据中,根据第一分布规则,预设字段为年龄,主键1标识的数据中包括的年龄对应的值为5,在第一预设范围1-10内,该组数据存储于数据库A中;主键2标识的数据中包括的年龄对应的值为8,在第一预设范围1-10内,该组数据存储于数据库A中;主键3标识的数据中包括的年龄对应的值为20,在第一预设范围11-20内,该组数据存储于数据库B中;主键5标识的数据中包括的年龄对应的值为18,在第一预设范围11-20内,该组数据存储于数据库B中;主键7标识的数据中包括的年龄对应的值为11,在第一预设范围11-20内,该组数据存储于数据库B中。
表2 5组数据按照第一分布规则进行存储的示例
基于上述步骤201,根据第二分布规则从至少一个第一数据表中确定出N 组待迁移数据之前,还包括:确定分布式数据库系统中的数据分布规则需要更新,比如从第一分布规则更新为第二分布规则;其中,第二分布规则包括:若一组数据包括的预设字段对应的值在第二集合中的一个第二预设范围内,则将该组数据存储在该第二预设范围对应的位置;第二集合中包括至少一个第二预设范围。
下面对如何确定N组待迁移数据进行介绍。
针对第一数据表中包括的至少一组数据中的每组数据,执行:确定该组数据按照第二分布规则存储的位置;若所述主键标识的该组数据按照第一分布规则存储的位置与该组数据按照第二分布规则存储的位置不相同,则该组数据为一组待迁移数据。如此,根据每组数据按照第一分布规则和按照第二分布规则存储的位置,确定出数据分布规则更新之后的待迁移数据,进而对待迁移数据进行数据调节。
现有技术中的分布式数据库中第一分布规则和第二分布规则基于相同数据分布算法,比如,第一分布规则和第二分布规则采用相同的预设字段,例如均采用年龄;再比如,第一分布规则和第二分布规则根据预设字段的哈希值映射到数据库,不能修改原有分布规则的预设字段,灵活性很低。而本发明实施例中,分布式数据库中第一分布规则和第二分布规则可以基于相同数据分布算法,也可以基于不同的数据分布算法;举个例子,第二分布规则中的预设字段和第一分布规则中的预设字段可以相同,也可以不相同;如此,本发明实施例中的方案相较于现有技术中的数据分布调节的灵活性更高。
下面对第一分布规则和第二分布规则中的预设字段分两种情形进行说明。
情形一,第一分布规则和第二分布规则中的预设字段相同,比如,预设字段均为年龄;
情形二,第一分布规则和第二分布规则中的预设字段不相同,比如,第一分布规则中的预设字段为年龄,第二分布规则中的预设字段为时间。
为了更清楚的介绍情形一数据按照第二分布规则存储的位置,本发明实施例中以表1中的5组数据为例进行介绍。
本发明实施例中,假设第二分布规则的预设字段为年龄,第二集合包括:第二预设范围1-15和第二预设范围16-30;第二分布规则为:预设字段(年龄) 在第二预设范围1-15内,则年龄在1-15内的每组数据存储于数据库A中;预设字段(年龄)在第二预设范围16-30内,则年龄在16-30内的每组数据存储于数据库B中。表3示例性示出了根据表1所示的5组数据以年龄为预设字段按照第二分布规则进行存储的示例。
根据表1以及第二分布规则的预设字段为年龄,得到表3。根据第二分布规则可知:主键1、主键2和主键7标识的三组数据,按照第二分布规则存储于数据库A;主键3、主键5标识的两组数据,按照第二分布规则存储于数据库B。
在情形一(两个分布规则的预设字段相同)下,针对主键1、2、3、5、7标识的5组数据,将表2中每组数据按照第一分布规则存储的位置和表3中每组数据按照第二分布规则存储的位置进行对比,可以看出:主键7标识的一组数据按照第一分布规则存储在数据库A中,按照第二分布规则存储在数据库B中,该组数据为一组待迁移数据。
表3 5组数据按照第二分布规则进行存储的示例
为了更清楚的介绍情形二中数据按照第二分布规则存储的位置,本发明实施例中以表1中的5组数据为例进行介绍。
本发明实施例中,假设第二分布规则的预设字段为时间,第二集合包括:第二预设范围1月1日至6月30日和第二预设范围7月1日至12月31日;第二分布规则为:预设字段(时间)在第二预设范围1月1日至6月30日内,则时间在1月1日至6月30日内的每组数据存储于数据库A中;预设字段(时间) 在第二预设范围7月1日至12月31日内,则时间在7月1日至12月31日内的每组数据存储于数据库B中。表4示例性示出了根据表1所示的5组数据以时间为预设字段按照第二分布规则进行存储的示例。
根据表1以及第二分布规则的预设字段为时间,得到表4。根据第二分布规则可知:主键1、2、3、5、7标识的5组数据中,主键1、主键3和主键5标识的三组数据,按照第二分布规则存储于数据库A;主键2和主键5标识的两组数据,按照第二分布规则存储于数据库B。
在情形二(两个分布规则的预设字段不同)下,针对主键1、2、3、5、7 标识的5组数据,将表2中每组数据按照第一分布规则存储的位置和表4中每组数据按照第二分布规则存储的位置进行对比,可以看出:主键2标识的一组数据按照第一分布规则存储在数据库A中,按照第二分布规则存储在数据库B 中;主键3和主键7标识的两组数据按照第一分布规则存储在数据库B中,按照第二分布规则存储在数据库A中;所以,主键2、3和7标识的3组数据为三组待迁移数据。
表4 5组数据按照第二分布规则进行存储的示例
需要说明的是,确定分布式数据库系统的数据分布规则从第一分布规则更新为第二分布规则包括以下几种应用场景:
第一种场景,扩容,分布数据库系统中的新增至少一个数据库;
第二种场景,缩容,分布数据库系统中的减少至少一个数据库;
第三种场景,对分布数据库系统中的纯粹的数据分布规则更新。
以上三种场景下,分布式数据库系统的数据分布规则都会发生改变。由于现有技术中的数据分布调节方法是在扩容或缩容的场景下,为了负载均衡,将负载较高的数据库中的整个数据表同步至负载较低的数据库中。具体的,在扩容场景下,将分布式数据库系统中负载较高的数据库中的一个或多个数据表同步至新增的数据库中;在缩容的场景下,将分布式数据库系统中减少的数据库中的所有数据表,同步至分布式数据库系统中除减少的数据库之外的负载较低的数据库中,现有技术中这种同步整个数据表中的数据分布调节方式,并不能适用上述第三种场景。本方案中数据分布调节是以一个主键标识的一组待迁移数据为最小单位,可以适用上述三种场景;进一步,本发明实施例中提供的方案可以缩短同步过程访问中断的时间,进而降低数据分布调节对于客户端访问分布式数据库系统的影响。
在确定分布式数据库系统的数据分布规则需要更新之后,需要对分布式数据库系统中存储的数据进行数据分布调节。在实际的数据分布调节过程中,针对分布式数据库系统中存储的至少一个主键标识的数据的存储位置,主要可以分为两种情况:第一种,一组数据按照第一分布规则和第二分布规则存储位置相同,该组数据不需要同步;比如,一组数据按照第一分布规则存储在数据库A 的数据表一,按照第二分布规则仍存储在数据库A的数据表一;第二种,一组数据按照第一分布规则和第二分布规则存储位置变化,该组数据需要同步;比如,一组数据按照第一分布规则存储在数据库A,按照第二分布规则存储在数据库B;再比如,一组数据按照第一分布规则存储在数据库A的数据表一,按照第二分布规则存储在数据库A的数据表二。
基于步骤202,可选的,在第二数据表中生成该组待迁移数据的副本待迁移数据,包括:针对N组待迁移数据中的每组待迁移数据,在第二数据表中生成该组待迁移数据的副本待迁移数据;并在该组待迁移数据对应的第一数据表中为该组待迁移数据添加待删除标记;并在该组待迁移数据对应的第二数据表中为副本待迁移数据添加待生效标记。由于在数据分布调节过程中,若一组数据按照第一分布规则和第二分布规则的存储位置发生变化,那么该组数据有两种状态:一种状态为带有待删除标记,另一种状态为带有待生效标记;若一组数据按照第一分布规则和第二分布规则的存储位置不变,那么为该组数据添加不变标记。如此,本发明实施例中将每组数据进行标记,可以更方便的对调节过程中的数据进行区分,便于客户端对数据的访问操作。
本发明实施例中,不变标记、待删除标记和待生效标记有多种表示方式,可选地,待生效标记用于指示第二分布规则的标识。发明实施例提供一种可选的表示方式:将待删除标记设置为-1,将待生效标记设置为第二分布规则的数据分布规则的最大版本号,不变标记保持不变;具体实施如下:比如,第一分布规则的版本号为3,第二分布规则的版本号为4,那么将待生效标记设置为4。
下面对分布式数据库系统使用的数据分布规则更新的数据调节过程中的标记进行举例介绍。
第一次数据分布规则改变:第一分布规则为规则一,第二分布规则为规则二;将分布式数据库系统使用的规则一更新为规则二,那么在数据分布调节过程中,将待删除标记设置为-1,待生效标记设置为1,不变标记设置为0;在数据分布调节完成之后,使用规则二的分布式数据库系统中包括带有待生效标记 1、和不变标记0的数据;
第二次数据分布规则改变:第一分布规则为规则二,第二分布规则为规则三;若将分布式数据库系统使用的规则二更新为规则三,在数据分布调节过程中需要重新确定出待迁移数据,将待删除标记设置为-1,待生效标记设置为2,存储位置不变的数据仍旧保持第一次数据分布规则改变时的标记对应的值,比如采用0和1。
具体地,不变标记用来标记一组数据按照第二分布规则存储的位置和按照第三规则存储的位置不变,举个例子:比如,在第一次数据分布规则改变之后,一组数据带有的标记为1,在第二次数据分布规则改变过程中,该组数据的存储位置不变,那么该组数据的不变标记的值为1;再比如,在第一次数据分布规则改变之后,一组数据带有的标记为0,在第二次数据分布规则改变过程中,该组数据的存储位置不变,那么该组数据的不变标记的值为0;又比如,在第一次数据分布规则改变之后,存在新增的主键标识的数据,在第二次数据分布规则改变时,该新增的主键标识的数据的存储位置不变,那么将该位置不变的新增的主键标识的数据添加不变标记0。
基于步骤203,从至少一个第一数据表中删除N组待迁移数据,包括:针对至少一个第一数据表中的每个第一数据表,将第一数据表中添加有待删除标记的每组待迁移数据删除。此时,数据分布调节结束,分布式数据库系统中的数据包括待生效标记的数据和不变标记的数据。
本发明实施例中,数据分布调节除了调节待迁移数据,还包括对分布规则的更新。在数据分布调节之前,分布式数据库系统中所有数据按照第一分布规则存储。在数据分布调节过程中,基于步骤203,从至少一个第一数据表中删除 N组待迁移数据之前,还包括:若确定需要根据第二分布规则对N组待迁移数据进行迁移,则针对N组待迁移数据中的每组待迁移数据,将该组待迁移数据的分布规则更新为第一分布规则和第二分布规则。在完成数据分布调节之前,系统中存在按照第一分布规则存储的待迁移数据和按照第二分布规则存储的副本待迁移数据,如此,可以避免数据调节过程中出错导致的数据无法访问的问题。
在数据分布调节完成时,分布式数据库系统中存在一个分布规则。基于步骤203,从至少一个第一数据表中删除N组待迁移数据之后,还包括:针对N 组待迁移数据中的每组待迁移数据,将该组待迁移数据的分布规则更新为第二分布规则。在完成数据分布调节之后,可以直接按照第二分布规则访问数据,访问方便。
本发明实施例中在所述第二数据表中生成该组待迁移数据的副本待迁移数据的实现方式可以为:从第一数据表中将待迁移数据同步至第二数据表中,在第二数据表中称为副本待迁移数据。下面针对待迁移数据同步至第二数据表的过程中,如何实现降低对访问的影响进行介绍。
第一种实现方式中,若在N个主键标识的N组待迁移数据中的任一组待迁移数据开始同步之后,且在N个主键标识的N组待迁移数据全部同步至目标位置之前,接收到客户端的数据查询请求,则允许客户端访问分布式数据库系统中带有待删除标记和不变标记的数据。由于在N组待迁移数据未全部同步之前,带有待生效标记的待迁移数据并没有N组,也就是说,如果访问待生效标记的待迁移数据,有可能会出现访问数据出错或者未访问到数据的情况;本发明实施例中经过对同步过程中的所有数据进行标记,允许客户端访问带有不变标记和待删除标记的待迁移数据,也就是说,客户端可以访问到所有的位置不变的数据和N组待迁移数据中的任一组数据,不需要在数据同步过程中断客户端的访问,即对客户端的访问不造成影响;并不像现有技术中在数据同步过程中断访问分布式数据库系统中的数据。
第二种实现方式中,若在N个主键标识的N组待迁移数据全部同步至目标位置之后,接收到客户端的数据查询请求,则允许客户端访问分布式数据库系统中带有待生效标记和不变标记的数据。也就是说,在N组待迁移数据全部同步至目标位置之后,分布式数据库系统中的数据包括位置不变的数据、带有待生效标记和待删除标记的数据,其中,带有待生效标记的N组待迁移数据和带有待删除标记的N组待迁移数据相同,为避免数据重复访问,允许访问带有待生效标记和不变标记的数据;如此,客户端可以访问到所有的位置不变的数据和N组待迁移数据中的任一组数据,而不需要既访问带有待生效标记的N组待迁移数据,又访问带有待删除标记的N组待迁移数据,进而达到提高访问效率的效果。
可选的,在N个主键标识的N组待迁移数据全部同步至目标位置之后,还包括:针对N个主键的每个主键,若源数据库中的主键标识的待迁移数据生成了新的操作记录,则:将主键对应的新的操作记录同步至主键对应的目标位置;在将主键对应的新的操作记录同步至主键对应的目标位置之前,停止数据写入。如此,除了该主键将待迁移数据同步至目标位置,还将该主键对应的新的操作记录同步至目标位置,保证了数据调节之后每个主键标识的待迁移数据的完整性。
需要说明的是,预设时长可根据新的数据记录同步至所述主键对应的目标位置所需的时间确定,为秒级。如此,只需要等待新的操作记录的同步时间,也就是说,停止写入的时间很短,相比较于现有技术中的数据调节过程中断访问的时间(大约几分钟),本发明实施例中的中断访问时间很短,降低了数据分布调节过程对于客户端访问分布式数据库系统的影响。
为了更清楚的介绍上述实施例的方法适用的多种场景,比如扩容、缩容、纯粹的数据分布规则改变,本发明实施例提供以下示例。
场景一、扩容,即分布式数据库增加一个数据库。
例如,分布式数据库系统中包括2个数据库,数据分布规则为第一分布规则:年龄(age)小于等于23的数据放在数据库A中,年龄(age)大于23的数据放在数据库B中;现需要增加一个数据库C,将数据分布规则更新为版本号为1的第二分布规则:年龄(age)小于等于19的数据放在数据库A中,年龄(age)大于25的数据放在数据库B中;其它数据放在数据库C中。
图3示例性示出了扩容场景下按照第一分布规则存储数据的示例。如图3 所示,分布式数据库系统包括数据库A311和数据库B312;分布式数据库系统使用第一分布规则:年龄(age)小于等于23的数据放在数据库A中,年龄(age) 大于23的数据放在数据库B中;主键(ID)1至9标识的9组数据,其中,主键1、2、3、5、7标识的5组数据存储在数据库A311中,主键1标识的数据包括的字段年龄(Age)为5;主键2标识的数据包括的字段年龄(Age)为6;主键3标识的数据包括的字段年龄(Age)为11;主键5标识的数据包括的字段年龄(Age)为21;主键7标识的数据包括的字段年龄(Age)为23;主键6、8、 9、4标识的4组数据存储在数据库B312中;主键6标识的数据包括的字段年龄 (Age)为27;主键8标识的数据包括的字段年龄(Age)为28;主键9标识的数据包括的字段年龄(Age)为24;主键4标识的数据包括的字段年龄(Age) 为26;将9组数据标记move_st设为0。
图3a示例性示出了扩容场景下待迁移数据同步过程的示意图。基于图3,分布式数据库系统新增了数据库C,确定第二分布规则:年龄(age)小于等于 19的数据放在数据库A中,年龄(age)大于25的数据放在数据库B中;其它数据放在数据库C中;由第二分布规则确定出主键(ID)1至9标识的9组数据存储的位置为:主键1、2、3标识的3组数据存储在数据库A中,主键4、6、 8标识的3组数据存储在数据库B中;主键5、7、9标识的3组数据存储在数据库C中;因此,确定出主键5、7、9标识的3组数据为待迁移数据。
如图3a所示,分布式数据库系统包括数据库A311、数据库B312和数据库 C313;其中,主键1、2、3、5、7标识的5组数据存储在数据库A311中,主键 6、8、9、4标识的4组数据存储在数据库B312中;将数据库A311中主键5、主键7,以及数据库B312中主键9标识的待迁移数据同步至数据库C313中,生成3组副本待迁移数据;将数据库A311中主键5、主键7标识的待迁移数据标记(move_st)为-1;将数据库B312中主键9标识的待迁移数据标记(move_st)为-1;将同步至数据库C313中的主键5、主键7和主键9标识的副本待迁移数据标记(move_st)为1。
图3b示例性示出了扩容场景下待迁移数据全部同步完成后的数据分布示意图。基于图3和图3a,在将数据库A311中主键5、主键7标识的待迁移数据同步至数据库C313,将数据库B312中主键9标识的待迁移数据同步至数据库C313 之后,如图3b所示,分布式数据库系统包括数据库A311、数据库B312和数据库C313;数据库A311中包括主键1、2、3、5、7标识的5组数据,数据库B312 中包括主键6、8、9、4标识的4组数据;数据库C313中包括主键5、7、9标识的3组副本待迁移数据。
图3c示例性示出了扩容场景下源数据库中的待迁移数据删除后的数据分布示意图。
基于图3、图3a和图3b,在将数据库A311中主键5、主键7标识的待迁移数据和数据库B312中主键9标识的待迁移数据删除之后,分布式数据库中的9 组数据按照第二分布规则分布:年龄(age)小于等于19的数据放在数据库A 中,年龄(age)大于25的数据放在数据库B中;如图3c所示,数据库A311 中包括主键1、2、3标识的3组数据,数据库B312中包括主键6、8、4标识的 3组数据;数据库C313中包括主键5、7、9标识的3组数据。
场景二、纯粹的数据分布调节,即不增加数据库,也不减少一个数据库。
例如,分布式数据库系统中包括3个数据库,数据分布规则为版本号为1 的第一分布规则:年龄(age)小于等于10的数据放在数据库A中,年龄(age) 大于10且小于20的数据存储在数据库B中;年龄(age)大于20的数据放在数据库C中;现将数据分布规则更新为版本号为2的第二分布规则:年龄(age) 小于等于20的数据放在数据库A中,年龄(age)大于20且小于等于25的数据存储在数据库B中;年龄(age)大于25的数据放在数据库C中。
图4示例性示出了纯粹的数据分布调节场景下按照第一分布规则存储数据的示例。如图4所示,分布式数据库系统包括数据库A411、数据库B412和数据库C413;根据分布式数据库系统使用版本号为1的第一分布规则:年龄(age) 小于等于10的数据放在数据库A411中,年龄(age)大于10且小于等于20的数据存储在数据库B412中,年龄(age)大于20的数据放在数据库C413;主键(ID)1至9标识的9组数据存储的位置为:主键1、2标识的2组数据存储在数据库A411中,主键3标识的1组数据存储在数据库B412中;主键4、5、 6、7、8、9标识的6组数据存储在数据库C413中;将9组数据标记move_st 设为0。根据版本号为2的第二分布规则,确定出主键(ID)1至9标识的9组数据存储的位置为:主键1、2、3标识的3组数据存储在数据库A411中,主键 5、7、9标识的3组数据存储在数据库B412中;主键4、6、8标识的3组数据存储在数据库C413中;因此,确定出主键3、5、7、9标识的4组数据为待迁移数据。
图4a示例性示出了纯粹的数据分布调节场景下待迁移数据同步过程的示意图。基于图4,如图4a所示,分布式数据库系统包括数据库A411、数据库B412 和数据库C413;待迁移数据同步过程如下:将数据库B412中的主键3标识的待迁移数据同步至数据库A411中,生成主键3标识的副本待迁移数据,并将数据库B412中的主键3标识的待迁移数据标记为-1,数据库A411中的主键3标识的副本待迁移数据标记为2;将数据库C413中的主键5、7、9标识的待迁移数据同步至数据库B412中,生成主键5、7、9标识的副本待迁移数据;并将数据库C413中的主键5、7、9标识的待迁移数据标记为-1,将数据库B412中的主键5、7、9标识的副本待迁移数据标记为2;其它位置不变的数据包括:主键 1、2、4、6、8标识的数据,标记为0。
图4b示例性示出了纯粹的数据分布调节场景下待迁移数据全部同步完成后的数据分布示意图。基于图4和图4a,在将数据库B412中的主键3标识的待迁移数据同步至数据库A411中,将数据库C413中的主键5、7、9标识的待迁移数据同步至数据库B412中之后,如图4b所示,数据库A411中包括主键1、2、 3标识的3组数据,其中:主键1和主键2标识的两组数据的标记为0、主键3 标识的数据的标记为2;数据库B412中包括主键3、5、7、9标识的四组数据,其中:主键3标识的数据的标记为-1、主键5、主键7和主键9标识的数据的标记为2;数据库C413中包括主键4、5、6、7、8、9标识的六组数据,其中:主键4、主键6和主键8标识的数据的标记为0、主键5、主键7和主键9标识的数据的标记为-1。
图4c示例性示出了纯粹的数据分布调节场景下源数据库中的待迁移数据删除后的数据分布示意图。
基于图4、图4a和图4b,在将图4b中数据库A411、数据库B412和数据库C413中的标记为待删除标记-1的数据删除后,得到如图4c的数据分布示意图。如图4c所示,数据库A411中包括主键1、2、3标识的3组数据,其中:主键1、主键2标识的数据的标记为0、主键3标识的数据的标记为2;数据库 B412中包括主键5、7、9标识的4组数据,其中:主键5、主键7和主键9标识的数据的标记为2;数据库C413中包括主键4、6、8标识的6组数据,其中:主键4、主键6和主键8标识的数据的标记为0。
场景三、缩容,即分布式数据库减少一个数据库。
例如,分布式数据库系统中包括3个数据库,数据分布规则为版本号2的第一分布规则:年龄(age)小于等于20的数据放在数据库A中,年龄(age) 大于20且小于25的数据存储在数据库B中;年龄(age)大于25的数据放在数据库C中;现需要减少一个数据库B,将数据分布规则更新为版本号3的第二分布规则:年龄(age)小于等于21的数据放在数据库A中,年龄(age)大于21的数据放在数据库C中。
图5示例性示出了缩容场景下按照第一分布规则存储数据的示例。如图5 所示,分布式数据库系统包括数据库A511、数据库B512和数据库C513;主键 (ID)1至9标识的9组数据根据版本号为2的第一分布规则,存储在分布式数据库系统中;其中,主键1、2、3标识的3组数据存储在数据库A511中:主键 1标识的数据包括的字段年龄(Age)为5,主键2标识的数据包括的字段年龄 (Age)为6;主键3标识的数据包括的字段年龄(Age)为11;主键5、7、9 标识的3组数据存储在数据库B512中:主键5标识的数据包括的字段年龄(Age) 为21;主键7标识的数据包括的字段年龄(Age)为23;主键9标识的数据包括的字段年龄(Age)为24;主键4、6、8标识的3组数据存储在数据库C513 中:主键4标识的数据包括的字段年龄(Age)为26,主键6标识的数据包括的字段年龄(Age)为27,主键8标识的数据包括的字段年龄(Age)为28;其中,将9组数据中主键3、5、7、9标识的4组数据带有的标记为2,其它5组数据标记为0。根据版本号为3的第二分布规则,确定出主键(ID)1至9标识的9 组数据存储的位置为:主键1、2、3、5标识的4组数据存储在数据库A511中,主键6、4、8、7、9标识的5组数据存储在数据库C513中,可确定出主键5、7、 9标识的3组数据为待迁移数据。
图5a示例性示出了缩容场景下待迁移数据同步过程的示意图。基于图5,如图5a所示,分布式数据库系统包括数据库A511、数据库B512和数据库C513。
待迁移数据同步过程如下:将数据库B512中的主键5标识的待迁移数据同步至数据库A511中,并生成主键5标识的副本待迁移数据,并将数据库B512 中的主键5标识的待迁移数据标记为-1,数据库A511中的主键5标识的副本待迁移数据标记为3;将数据库B512中的主键7、9标识的待迁移数据同步至数据库C513中,生成主键7、9标识的两组副本待迁移数据,并将数据库B512中的主键7、9标识的待迁移数据标记为-1,将数据库C513中的主键7、9标识的两组副本待迁移数据标记为3;其它位置不变的数据包括:主键1、2、3、4、6、 8标识的数据,其中,主键3标识的数据保持标记2不变,主键1、2、4、6、8 标识的数据保持标记0不变。
图5b示例性示出了缩容场景下待迁移数据全部同步完成后的数据分布示意图。基于图5和图5a,在将数据库B512中的主键5标识的待迁移数据同步至数据库A511中,将数据库B512中的主键7、9标识的待迁移数据同步至数据库 C513中之后,如图5b所示,分布式数据库系统包括数据库A511、数据库B512 和数据库C513;数据库A511中包括主键1、2、3、5标识的4组数据,其中:主键1、主键2标识的数据的标记为0、主键3标识的数据的标记为2、主键5 标识的数据的标记为3;数据库B512中包括主键5、7、9标识的3组数据,其中:主键5、7、9标识的数据的标记均为-1;数据库C513中包括主键4、6、7、 8、9标识的5组数据,其中:主键4、主键6和主键8标识的数据的标记为0、主键7和主键9标识的数据的标记为3。
图5c示例性示出了缩容场景下源数据库中的待迁移数据删除后的数据分布示意图。
基于图5、图5a和图5b,在将图5b中数据库A511、数据库B512和数据库C513中的标记为待删除标记-1的数据删除后,得到如图5c的数据分布示意图。如图5c所示,分布式数据库系统包括数据库A511和数据库C513;数据库 A511中包括主键1、2、3、5标识的4组数据,其中:主键1和主键2标识的数据的标记为0、主键3标识的数据的标记为2、主键5标识的数据的标记为3;数据库C513中包括主键4、6、7、8、9标识的5组数据,其中:主键4、主键 6和主键8标识的数据的标记为0、主键7和主键9标识的数据的标记为3。
为了更清楚的介绍上述方法流程,本发明实施例提供以下示例。
图6示例性示出了本发明实施例提供的另一种数据分布调节方法流程示意图,基于图1所示的系统架构,如图6所示,本发明实施例提供的另一种数据分布调节方法由数据分布调节装置执行,该方法包括以下步骤:
步骤601:确定分布式数据库系统的数据分布规则需要从第一分布规则更新为第二分布规则;其中,分布式数据库系统中包括至少一组数据,每组数据按照第一分布规则存储在至少一个第一数据表,每组数据对应一个主键;
步骤602:针对每组数据,确定该组数据按照第二分布规则存储的位置;
步骤603:该组数据按照第一分布规则存储的位置与该组数据按照第二分布规则存储的位置是否相同,若是,则执行步骤604;若否,则执行步骤610;
步骤604:该组数据为一组待迁移数据;
步骤605:根据第二分布规则从至少一个第一数据表中确定出N组待迁移数据;其中,N组待迁移数据中的每组待迁移数据根据第一分布规则存储至该组待迁移数据对应的第一数据表中,且每组待迁移数据对应一个主键;N为正整数;
步骤606:针对每组待迁移数据,根据第二分布规则确定该组待迁移数据对应的第二数据表;
步骤607:将该组待迁移数据的分布规则更新为第一分布规则和第二分布规则;
步骤608:针对每组待迁移数据,在第二数据表中生成该组待迁移数据的副本待迁移数据;
步骤609:在该组待迁移数据对应的第一数据表中为该组待迁移数据添加待删除标记;并在该组待迁移数据对应的第二数据表中为副本待迁移数据添加待生效标记,之后,执行步骤612;
步骤610:该组数据为位置不变的数据;
步骤611:将至少一个第一数据表中位置不变的每组数据添加不变标记;其中,第一数据表中位置不变的数据即:除N组待迁移数据之外的每组数据;
步骤612:若确定生成N组待迁移数据中每组待迁移数据的副本待迁移数据,则针对至少一个第一数据表中的每个第一数据表,将第一数据表中添加有待删除标记的每组待迁移数据删除;
步骤613:针对N组待迁移数据中的每组待迁移数据,将该组待迁移数据的分布规则更新为第二分布规则。
从上述实施例可以看出:根据第二分布规则从至少一个第一数据表中确定出N组待迁移数据;针对N组待迁移数据中的每组待迁移数据,根据第二分布规则确定该组待迁移数据对应的第二数据表;并在第二数据表中生成该组待迁移数据的副本待迁移数据;若确定生成N组待迁移数据中每组待迁移数据的副本待迁移数据,则从至少一个第一数据表中删除N组待迁移数据。本发明实施例进行数据分布调节时,调节对象为待迁移数据,并不像现有技术中的每次调节对象至少是一个数据表中存储的所有数据;如此,本发明实施例中只需要调节待迁移数据,与调节整个数据表相比需要进行数据分布调节的数据量较小,也就是说,相较于现有技术中调节整个数据表的访问中断时间,本发明实施例可以缩短数据分布调节过程访问中断的时间,进而降低数据分布调节对于客户端访问分布式数据库系统的影响。
基于以上实施例以及相同构思,图7为本发明实施例提供的一种数据查询的方法流程示意图。数据根据上述任一实施例中的方法进行数据分布调节;该数据查询方法由数据查询装置执行,如图7所示,该数据查询方法包括步骤:
步骤701:接收到查询请求,查询请求中包括待查询数据的主键;
步骤702:根据主键关联的M个分布规则,确定出主键对应的待查询数据; M为正整数。
本发明实施例中,根据待查询数据的主键关联的M个分布规则,可以准确的查询到待查询数据,尤其在存在多个分布规则的情况下,现有技术中为了避免查询数据出错,会中断访问;本发明实施例中数据查询方法,不仅可以在存在多个分布规则的情况下查询到待查询数据,而且可以避免访问数据出错或者未访问到数据的情况。
下面对步骤302中的M取值不同时如何查询待查询数据进行介绍。
当M等于1时,存在两种情况:第一种情况,分布式数据库系统中只存在按照第一分布规则存储的待查询数据,那么在至少一个第一数据表中查找出主键对应的待查询数据即可。第二种情况,分布式数据库系统中只存在按照第二分布规则存储的待查询数据,那么在第二数据表中查找出主键对应的待查询数据即可。当M大于1时,在分布式数据库系统中存在按照第一分布规则和第二分布规则存储的待查询数据,其中,按照第一分布规则存储的待查询数据带有待删除标记,按照第二分布规则存储的待查询数据带有待生效标记。
基于步骤302,若M为大于1的整数,则根据主键关联的M个分布规则,确定出主键对应的待查询数据,包括:根据主键关联的M个分布规则,确定出根据M个分布规则存储的主键对应的M组数据,将M组数据中标识有待删除标记的至少一组数据确定为待查询数据。如此,可以避免访问数据出错或者未访问到数据的情况,在数据调节过程中也不需要中断访问。
基于以上实施例以及相同构思,图8示例性示出了本发明实施例提供的一种数据分布调节装置的结构示意图。如图8所示,该数据分布调节装置800可以对应上述图1中的108。该数据分布调节装置800可以实现如上述图2中所示的任一项或任多项对应的方法中数据分布调节装置所执行的方法步骤。该数据分布调节装置800可以包括确定单元801、数据同步单元802;可选地,还包括规则更新单元803;其中:
确定单元801,用于根据第二分布规则从至少一个第一数据表中确定出N 组待迁移数据;针对N组待迁移数据中的每组待迁移数据,根据第二分布规则确定该组待迁移数据对应的第二数据表;其中,N组待迁移数据中的每组待迁移数据根据第一分布规则存储至该组待迁移数据对应的第一数据表中,且每组待迁移数据对应一个主键;N为正整数。
数据同步单元802,用于在第二数据表中生成该组待迁移数据的副本待迁移数据;若确定生成N组待迁移数据中每组待迁移数据的副本待迁移数据,则从至少一个第一数据表中删除N组待迁移数据。
本发明实施例进行数据同步时,同步的对象为主键标识的一组待迁移数据,并不像现有技术中的每次同步至少是一个数据表中存储的所有数据;如此,本发明实施例中只需要同步待迁移数据,与同步整个数据表相比同步的数据量较小,也就是说,可以缩短同步过程访问中断的时间,并不像现有技术中同步整个数据表造成访问中断时间长,进而降低数据分布调节对于客户端访问分布式数据库系统的影响。
可选的,数据同步单元802,用于:针对N组待迁移数据中的每组待迁移数据,在第二数据表中生成该组待迁移数据的副本待迁移数据;并在该组待迁移数据对应的第一数据表中为该组待迁移数据添加待删除标记;并在该组待迁移数据对应的第二数据表中为副本待迁移数据添加待生效标记。
可选的,数据同步单元802,用于:针对至少一个第一数据表中的每个第一数据表,将第一数据表中添加有待删除标记的每组待迁移数据删除。
可选的,规则更新单元803,用于:针对N组待迁移数据中的每组待迁移数据,将该组待迁移数据的分布规则更新为第二分布规则。
可选的,规则更新单元803,用于:若确定需要根据第二分布规则对N组待迁移数据进行迁移,则针对N组待迁移数据中的每组待迁移数据,将该组待迁移数据的分布规则更新为第一分布规则和第二分布规则。
基于以上实施例以及相同构思,图9示例性示出了本发明实施例提供的一种用于数据查询的装置的结构示意图。如图9所示,该用于数据查询的装置900 可以对应上述图1中的109。该数据分布调节装置900可以实现如上述图7中所示的任一项或任多项对应的方法中用于数据查询的装置所执行的方法步骤。其中,数据由上述任一实施例中提供的数据分布调节装置进行数据分布调节;该用于数据查询的装置900可以包括接收单元901和确定单元902。
接收单元901,用于接收到查询请求,查询请求中包括待查询数据的主键;确定单元902,用于根据主键关联的M个分布规则,确定出主键对应的待查询数据;M为正整数。
本发明实施例中,根据待查询数据的主键关联的M个分布规则,可以准确的查询到待查询数据,尤其在存在多个分布规则的情况下,现有技术中为了避免查询数据出错,会中断访问;本发明实施例中数据查询方法,不仅可以在存在多个分布规则的情况下查询到待查询数据,而且可以避免访问数据出错或者未访问到数据的情况。
可选的,确定单元902,用于:若M为大于1的整数,则:根据主键关联的M个分布规则,确定出根据M个分布规则存储的主键对应的M组数据,将 M组数据中标识有待删除标记的至少一组数据确定为待查询数据。
上述装置可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
基于以上实施例以及相同构思,本发明实施例中提供一种计算机设备,所述计算机设备包括处理器和存储器;所述存储器用于存储指令,所述处理器用于执行所述存储器存储的指令,当所述处理器执行所述存储器存储的指令时,所述计算机设备用于执行上述任一实施例所述的方法。
需要说明的是,本发明实施例中对模块的划分是示意性的,仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本发明的实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
本领域内的技术人员应明白,本发明实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (17)

1.一种数据分布调节方法,其特征在于,包括:
根据第二分布规则从至少一个第一数据表中确定出N组待迁移数据;其中,所述N组待迁移数据中的每组待迁移数据根据第一分布规则存储至该组待迁移数据对应的第一数据表中,且每组待迁移数据对应一个主键;所述N为正整数;
针对所述N组待迁移数据中的每组待迁移数据,根据所述第二分布规则确定该组待迁移数据对应的第二数据表;并在所述第二数据表中生成该组待迁移数据的副本待迁移数据;
若确定生成所述N组待迁移数据中每组待迁移数据的副本待迁移数据,则从所述至少一个第一数据表中删除所述N组待迁移数据。
2.如权利要求1所述的方法,其特征在于,所述在所述第二数据表中生成该组待迁移数据的副本待迁移数据,包括:
针对所述N组待迁移数据中的每组待迁移数据,在所述第二数据表中生成该组待迁移数据的副本待迁移数据;并在该组待迁移数据对应的第一数据表中为该组待迁移数据添加待删除标记;并在该组待迁移数据对应的第二数据表中为所述副本待迁移数据添加待生效标记。
3.如权利要求2所述的方法,其特征在于,从所述至少一个第一数据表中删除所述N组待迁移数据,包括:
针对所述至少一个第一数据表中的每个第一数据表,将所述第一数据表中添加有待删除标记的每组待迁移数据删除。
4.如权利要求3所述的方法,其特征在于,所述待生效标记用于指示所述第二分布规则的标识。
5.如权利要求1所述的方法,其特征在于,从所述至少一个第一数据表中删除所述N组待迁移数据之后,还包括:
针对所述N组待迁移数据中的每组待迁移数据,将该组待迁移数据的分布规则更新为所述第二分布规则。
6.如权利要求1所述的方法,其特征在于,从所述至少一个第一数据表中删除所述N组待迁移数据之前,还包括:
若确定需要根据所述第二分布规则对所述N组待迁移数据进行迁移,则针对所述N组待迁移数据中的每组待迁移数据,将该组待迁移数据的分布规则更新为所述第一分布规则和所述第二分布规则。
7.一种数据查询的方法,其特征在于,所述数据根据权利要求1至6中任一权利要求所述的方法进行数据分布调节;所述方法包括:
接收到查询请求,所述查询请求中包括待查询数据的主键;
根据所述主键关联的M个分布规则,确定出所述主键对应的待查询数据;所述M为正整数。
8.如权利要求7所述的方法,其特征在于,若所述M为大于1的整数,则所述根据所述主键关联的M个分布规则,确定出所述主键对应的待查询数据,包括:
根据所述主键关联的M个分布规则,确定出根据所述M个分布规则存储的所述主键对应的M组数据,
将所述M组数据中标识有待删除标记的至少一组数据确定为所述待查询数据。
9.一种数据分布调节装置,其特征在于,包括:
确定单元,用于根据第二分布规则从至少一个第一数据表中确定出N组待迁移数据;针对所述N组待迁移数据中的每组待迁移数据,根据所述第二分布规则确定该组待迁移数据对应的第二数据表;其中,所述N组待迁移数据中的每组待迁移数据根据第一分布规则存储至该组待迁移数据对应的第一数据表中,且每组待迁移数据对应一个主键;所述N为正整数;
数据同步单元,用于在所述第二数据表中生成该组待迁移数据的副本待迁移数据;若确定生成所述N组待迁移数据中每组待迁移数据的副本待迁移数据,则从所述至少一个第一数据表中删除所述N组待迁移数据。
10.如权利要求9所述的装置,其特征在于,所述数据同步单元,用于:
针对所述N组待迁移数据中的每组待迁移数据,在所述第二数据表中生成该组待迁移数据的副本待迁移数据;并在该组待迁移数据对应的第一数据表中为该组待迁移数据添加待删除标记;并在该组待迁移数据对应的第二数据表中为所述副本待迁移数据添加待生效标记。
11.如权利要求10所述的装置,其特征在于,所述数据同步单元,用于:
针对所述至少一个第一数据表中的每个第一数据表,将所述第一数据表中添加有待删除标记的每组待迁移数据删除。
12.如权利要求9所述的装置,其特征在于,还包括规则更新单元,用于:
针对所述N组待迁移数据中的每组待迁移数据,将该组待迁移数据的分布规则更新为所述第二分布规则。
13.如权利要求9所述的装置,其特征在于,还包括规则更新单元,用于:
若确定需要根据所述第二分布规则对所述N组待迁移数据进行迁移,则针对所述N组待迁移数据中的每组待迁移数据,将该组待迁移数据的分布规则更新为所述第一分布规则和所述第二分布规则。
14.一种用于数据查询的装置,其特征在于,所述数据由权利要求9至13中任一权利要求所述的数据分布调节装置进行数据分布调节;所述用于数据查询的装置包括:
接收单元,用于接收到查询请求,所述查询请求中包括待查询数据的主键;
确定单元,用于根据所述主键关联的M个分布规则,确定出所述主键对应的待查询数据;所述M为正整数。
15.如权利要求14所述的方法,其特征在于,所述确定单元,用于:
若所述M为大于1的整数,则:
根据所述主键关联的M个分布规则,确定出根据所述M个分布规则存储的所述主键对应的M组数据,
将所述M组数据中标识有待删除标记的至少一组数据确定为所述待查询数据。
16.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器;
所述存储器用于存储指令,所述处理器用于执行所述存储器存储的指令,当所述处理器执行所述存储器存储的指令时,所述计算机设备用于执行如权利要求1至8任一权利要求所述的方法。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行权利要求1至8任一权利要求所述的方法。
CN201710718696.5A 2017-08-21 2017-08-21 一种数据分布调节、查询的方法和装置 Pending CN107391755A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710718696.5A CN107391755A (zh) 2017-08-21 2017-08-21 一种数据分布调节、查询的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710718696.5A CN107391755A (zh) 2017-08-21 2017-08-21 一种数据分布调节、查询的方法和装置

Publications (1)

Publication Number Publication Date
CN107391755A true CN107391755A (zh) 2017-11-24

Family

ID=60353635

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710718696.5A Pending CN107391755A (zh) 2017-08-21 2017-08-21 一种数据分布调节、查询的方法和装置

Country Status (1)

Country Link
CN (1) CN107391755A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108280148A (zh) * 2018-01-02 2018-07-13 中国民生银行股份有限公司 一种数据迁移方法和数据迁移服务器
CN112416903A (zh) * 2020-11-23 2021-02-26 中国工商银行股份有限公司 一种数据库的扩容方法、缩容方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102331993A (zh) * 2011-06-23 2012-01-25 北京新媒传信科技有限公司 分布式数据库的数据迁移方法和分布式数据库迁移系统
CN102955845A (zh) * 2012-10-23 2013-03-06 北京亿赞普网络技术有限公司 数据访问方法、装置与分布式数据库系统
CN104765794A (zh) * 2015-03-25 2015-07-08 深圳市创梦天地科技有限公司 一种数据库分区方法及装置
US20160350292A1 (en) * 2015-05-27 2016-12-01 Alibaba Group Holding Limited Method and apparatus for real-time data migration

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102331993A (zh) * 2011-06-23 2012-01-25 北京新媒传信科技有限公司 分布式数据库的数据迁移方法和分布式数据库迁移系统
CN102955845A (zh) * 2012-10-23 2013-03-06 北京亿赞普网络技术有限公司 数据访问方法、装置与分布式数据库系统
CN104765794A (zh) * 2015-03-25 2015-07-08 深圳市创梦天地科技有限公司 一种数据库分区方法及装置
US20160350292A1 (en) * 2015-05-27 2016-12-01 Alibaba Group Holding Limited Method and apparatus for real-time data migration
CN106294440A (zh) * 2015-05-27 2017-01-04 阿里巴巴集团控股有限公司 数据实时迁移的方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108280148A (zh) * 2018-01-02 2018-07-13 中国民生银行股份有限公司 一种数据迁移方法和数据迁移服务器
CN112416903A (zh) * 2020-11-23 2021-02-26 中国工商银行股份有限公司 一种数据库的扩容方法、缩容方法及装置

Similar Documents

Publication Publication Date Title
US11797498B2 (en) Systems and methods of database tenant migration
US10019294B2 (en) Method of achieving intra-machine workload balance for distributed graph-processing systems
US11341139B2 (en) Incremental and collocated redistribution for expansion of online shared nothing database
US11550667B2 (en) Pluggable database archive
EP3365807A1 (en) Application containers for container databases
WO2017070572A1 (en) Application containers for container databases
US20090157762A1 (en) Dynamic Data Reorganization to Accommodate Growth Across Replicated Databases
EP2406736A2 (en) Composite hash and list partitioning of database tables
US10528580B2 (en) Method and mechanism for efficient re-distribution of in-memory columnar units in a clustered RDBMS on topology change
WO2016101751A1 (zh) 一种分布式存储系统中的主从平衡方法和装置
CN109271408A (zh) 一种分布式数据连接处理方法、装置、设备及存储介质
CN107391755A (zh) 一种数据分布调节、查询的方法和装置
US10846015B2 (en) Early IO control techniques for a remote data facility
CN113656384B (zh) 数据处理方法、分布式数据库系统、电子设备及存储介质
CN107153680A (zh) 一种分布式内存数据库在线扩展节点的方法及系统
US20220391411A1 (en) Dynamic adaptive partition splitting
WO2013096447A1 (en) A multiphase approach to data availability
WO2017188929A1 (en) Method and apparatus for replicating data between storage systems
CN113641686B (zh) 数据处理方法、装置、电子设备、存储介质及程序产品
JP2012234354A (ja) データベース増設方法、及びデータベース減設方法
US9063773B2 (en) Automatic parallelism tuning for apply processes
US10353920B2 (en) Efficient mirror data re-sync
CN112000671A (zh) 基于区块链的数据库表处理方法、装置及系统
US10621198B1 (en) System and method for secure database replication
US20230325407A1 (en) Blockchain Blocks Storage Management

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20171124