CN113641686A - 数据处理方法、装置、电子设备、存储介质及程序产品 - Google Patents
数据处理方法、装置、电子设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN113641686A CN113641686A CN202111217539.9A CN202111217539A CN113641686A CN 113641686 A CN113641686 A CN 113641686A CN 202111217539 A CN202111217539 A CN 202111217539A CN 113641686 A CN113641686 A CN 113641686A
- Authority
- CN
- China
- Prior art keywords
- data storage
- partition
- data
- storage unit
- key
- 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.)
- Granted
Links
- 238000003860 storage Methods 0.000 title claims abstract description 40
- 238000003672 processing method Methods 0.000 title claims abstract description 39
- 238000005192 partition Methods 0.000 claims abstract description 607
- 238000013500 data storage Methods 0.000 claims abstract description 444
- 238000000034 method Methods 0.000 claims abstract description 52
- 238000009826 distribution Methods 0.000 claims abstract description 38
- 238000004590 computer program Methods 0.000 claims abstract description 26
- 230000008569 process Effects 0.000 claims description 23
- 230000004044 response Effects 0.000 claims description 5
- 238000013507 mapping Methods 0.000 claims 1
- 101150117538 Set2 gene Proteins 0.000 description 22
- 238000007726 management method Methods 0.000 description 18
- 230000008520 organization Effects 0.000 description 15
- 101100042371 Caenorhabditis elegans set-3 gene Proteins 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 101150104646 SET4 gene Proteins 0.000 description 12
- 101100421296 Caenorhabditis elegans set-6 gene Proteins 0.000 description 10
- 238000002360 preparation method Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 230000009191 jumping Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 3
- 238000004904 shortening Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 101100421299 Schizosaccharomyces pombe (strain 972 / ATCC 24843) set7 gene Proteins 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- 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
-
- 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
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
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)
- Computing Systems (AREA)
- Software Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种数据处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品,涉及数据处理及数据库技术领域;可以应用于数据存储、数据查询、地图数据处理等场景。该方法包括:获取数据重分布信息;在分区表中增加至少一个分区空间,并采用分区空间记录当前与分区表中对应的数据存储单元的数据存储信息;基于数据重分布信息调整更新各分区空间所记录的数据存储信息以及分区空间与数据存储单元的对应关系;基于更新后分区空间与数据存储单元的对应关系更新分区表的数据分布;数据存储信息包括分区键的取值范围或列表。其中,本申请所涉及的数据可保存于区块链上。本申请的实施可以提高数据重分布的处理效率。
Description
技术领域
本申请涉及数据处理及数据库技术领域,具体而言,本申请涉及一种数据处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品。
背景技术
在分布式数据库中,可以通过分区表将大表的数据分成称为分区的许多小的子集。基于分布数据的方式可以将分区表划分为范围range、列表list和散列hash三种。
针对数据分布规则变化的情况,需要对所存储的数据进行重分布。在现有技术中,一般是通过拷贝一份需要参与重分布的分区表,并在拷贝所得表中基于新的数据分布规则进行数据同步,以完成数据重分布。然而,该方法需要有额外的存储空间来存储一份全量数据,且完成数据重分布的执行时间较长,容易导致业务的阻塞。
发明内容
本申请实施例提供了一种数据处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品,可以解决执行数据重分布所占用存储空间大,且执行时间长导致业务阻塞的问题。所述技术方案如下:
根据本申请实施例的一个方面,提供了一种数据处理方法,该方法包括:
获取数据重分布信息;
在分区表中增加至少一个分区空间,并采用所述分区空间记录当前与所述分区表中对应的数据存储单元的数据存储信息;
基于所述数据重分布信息中至少一个数据存储单元的预定义数据存储信息,更新分区空间与数据存储单元的对应关系;
基于更新后分区空间与数据存储单元的对应关系更新所述分区表的数据分布;
其中,所述分区表包括基于预设分区键进行数据分布的表;所述数据存储信息包括分区键的取值范围和分区键的取值列表中的一种。
在一实施例中,所述在分区表中增加至少一个分区空间,包括:
针对所述分区表中的每一数据存储单元对应增加分区空间;
基于所述数据重分布信息,在所述分区表中新增至少一组具有对应关系的分区空间和空的数据存储单元,该分区空间所记录的数据存储信息基于所述数据重分布信息确定而得。
在一实施例中,还包括:
基于所述分区空间创建分区空间列表,所述分区空间列表用于在数据重分布过程中记录各分区空间记录的数据存储信息、分区空间与数据存储单元的对应关系、各分区空间的名称、分区空间与分区表的对应关系中的至少一种信息。
在一实施例中,所述基于所述数据重分布信息中至少一个数据存储单元的预定义数据存储信息,更新分区空间与数据存储单元的对应关系,包括:
基于所述数据重分布信息确定所述分区表中各数据存储单元的预定义数据存储信息;
基于所述预定义数据存储信息调整所述分区表中所包含的数据存储单元;
基于所述预定义数据存储信息更新各分区空间所记录的数据存储信息;
基于各分区空间更新后记录的数据存储信息,更新分区空间与调整后分区表所包含的数据存储单元的对应关系。
在一实施例中,所述数据存储单元基于分区键的取值范围或键值的大小排序;所述基于所述预定义数据存储信息调整所述分区表中所包含的数据存储单元,包括:
按序针对所述分区表中包含的每一数据存储单元执行下述调整操作:
比对数据存储单元当前的数据存储信息与预定义数据存储信息;
若数据存储单元对应分区键的最大值大于预定义数据存储信息中分区键的最大值,则基于预定义数据存储信息中分区键的最大值分裂该数据存储单元;
若数据存储单元对应分区键的最小值小于预定义数据存储信息中分区键的最小值,则基于预定义数据存储信息中分区键的最小值分裂该数据存储单元。
在一实施例中,所述基于预定义数据存储信息中分区键的最大值分裂该数据存储单元,包括:
基于预定义数据存储信息中分区键的最大值与该数据存储单元对应分区键的最大值,生成一个空的第一数据存储单元;
所述基于预定义数据存储信息中分区键的最小值分裂该数据存储单元,包括:
基于该数据存储单元对应分区键的最小值与预定义数据存储信息中分区键的最小值,生成一个空的第二数据存储单元。
在一实施例中,所述基于预定义数据存储信息中分区键的最大值分裂该数据存储单元,包括:
基于预定义数据存储信息中分区键的最大值在该数据存储单元中标记最大分裂点,并建立该数据存储单元与第一数据存储单元的连接关系;
所述基于预定义数据存储信息中分区键的最小值分裂该数据存储单元,包括:
基于预定义数据存储信息中分区键的最小值在该数据存储单元中标记最小分裂点,并建立该数据存储单元与第二数据存储单元的连接关系。
在一实施例中,所述基于更新后分区空间与数据存储单元的对应关系更新所述分区表的数据分布,包括:
基于更新后分区空间与数据存储单元的对应关系针对需要进行分裂的每一数据存储单元执行以下数据移动操作:
将预定义数据存储信息中分区键的最大值至该数据存储单元对应分区键的最大值之间的分区键所对应的数据移动至相应的第一数据存储单元;
将数据存储单元对应分区键的最小值至预定义数据存储信息中分区键的最小值之间的分区键所对应的数据移动至相应的第二数据存储单元;
删除所述最大分裂点、最小分裂点及各数据存储单元之间的连接关系。
在一实施例中,在完成所述分区表的数据分布更新之前,还包括:
响应于对目标数据的处理操作,确定所述目标数据对应分区键的键值大于任一数据存储单元的最大分裂点对应分区键的键值或小于任一数据存储单元的最小分裂点对应分区键的键值,则在该数据存储单元中查询目标数据;
若查询获得所述目标数据对应的存储位置,则返回针对所述目标数据的处理结果;否则,基于各数据存储单元之间的连接关系,在分裂所得的数据存储单元中确定所述目标数据对应的存储位置并返回所述目标数据的处理结果。
根据本申请实施例的另一个方面,提供了一种数据处理装置,该装置包括:
获取模块,用于获取数据重分布信息;
增加模块,用于在分区表中增加至少一个分区空间,并采用所述分区空间记录当前与所述分区表中对应的数据存储单元的数据存储信息;
更新模块,用于基于所述数据重分布信息中至少一个数据存储单元的预定义数据存储信息,更新分区空间与数据存储单元的对应关系;
分布模块,用于基于更新后分区空间与数据存储单元的对应关系更新所述分区表的数据分布;
其中,所述分区表包括基于预设分区键进行数据存储的表;所述数据存储信息包括分区键的取值范围和分区键的取值列表中的一种。
根据本申请实施例的另一个方面,提供了一种电子设备,该电子设备包括:
一个或多个处理器;
存储器;
一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个计算机程序配置用于:执行上述数据处理方法。
根据本申请实施例的再一个方面,提供了一种计算机可读存储介质,所述计算机存储介质用于存储计算机指令,当所述计算机指令在计算机上运行时,使得计算机可以执行上述数据处理方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品,包括计算机程序或指令,该计算机程序或指令被处理器执行时实现上述数据处理方法的步骤。
本申请实施例提供的技术方案带来的有益效果是:
本申请提供一种数据处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品,具体地,在实施时是针对分区表进行的处理,分区表可以包括基于预设分区键进行数据分布的物理表;获取当前最新的数据重分布信息,该数据重分布信息用于对分区表的数据分布情况进行调整;基于此,可以在分区表中增加至少一个分区空间,该分区空间与分区表中的数据存储单元具有对应关系,且分区空间可以用于存储所对应数据存储单元的数据存储信息,其中数据存储信息包括分区键的取值范围或分区键的取值列表;此时,增加的分区空间可以解耦数据存储单元的数据存储信息与所实际存储数据之间的对应关系;进而,基于数据重分布信息中至少一个数据存储单元的预定义数据存储信息,可以更新当前分区空间与数据存储单元之间的对应关系,在更新两者的对应关系后,可以基于最新得到的分区空间与数据存储单元之间的对应关系更新分区表中的数据分布情况。本申请的实施是通过增加的分区空间实现数据重分布,其无需采用额外的存储空间;另外,本申请的数据重分布无需对分区表的全量数据进行数据同步处理,有利于缩短数据重分布的执行时间,提高处理的效率,减少业务阻塞情况的发生。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为相关技术中针对分区表执行数据重分布的示意图;
图2为本申请实施例提供的一种系统架构示意图;
图3为本申请实施例提供的一种数据处理方法的流程示意图;
图4为本申请实施例提供的一种数据处理方法中针对分区表进行数据重分布的示意图;
图5为本申请实施例提供的一种数据处理方法中针对分区表进行数据重分布的示意图;
图6为本申请实施例提供的一种数据处理方法中任务准备阶段的流程图;
图7为本申请实施例提供的一种数据处理方法中数据移动阶段的流程图;
图8为本申请实施例提供的一种数据处理方法中使用旧版本分区表进行读写操作的流程图;
图9为本申请实施例提供的一种数据处理方法中使用新版本分区表进行读写操作的流程图;
图10a为本申请实施例提供的一种数据处理方法的应用例中执行第一步的示意图;
图10b为本申请实施例提供的一种数据处理方法的应用例中执行第二步的示意图;
图10c为本申请实施例提供的一种数据处理方法的应用例中执行第三步的示意图;
图10d为本申请实施例提供的一种数据处理方法的应用例中执行第四步的示意图;
图10e为本申请实施例提供的一种数据处理方法的应用例中执行第五步的示意图;
图10f为本申请实施例提供的一种数据处理方法的应用例中执行第六步的示意图;
图11为本申请实施例提供的一种数据处理装置的结构示意图;
图12为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或 “耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”指示实现为“A”,或者实现为“A”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面对本申请涉及的术语及相关技术进行说明:
数据库(Database),简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
数据库管理系统(英语:Database Management System,简称DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、XML(Extensible MarkupLanguage,即可扩展标记语言);或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如SQL(结构化查询语言(Structured QueryLanguage)、XQuery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。
分布式数据库:分布式数据库技术,结合了数据库技术与分布式技术。具体是指把那些在地理意义上分散开的各个数据库节点,但在计算机系统逻辑上又是属于同一个系统的数据结合起来的一种数据库技术。既有着数据库间的协调性也有着数据的分布性。这种分布式数据库管理系统并不注重系统的集中控制,而是注重每个数据库节点的自治性。
分区表(partition table):是将大表的数据分成称为分区的许多小的子集。在本申请中,分区表指的是在TDSQL分布式数据库中,用户在建立某一个表需要指定按照某些字段(分区键)进行数据在整个分布式数据库中的数据分布;通常按照这些字段在集群中各节点之间分布数据的方式包括如下几种方式,hash(即按照分区键hash的方式,对表中记录中的分区键进行hash,来分区表的数据),range(按照分区键的范围,来分布数据到不同的集群存储节点中),list(即按照用户指定的值list,对于用户数据进行按照键值分布)。在本申请实施例中,涉及range和list两种方式的数据分布情况。
数据重分布(data rebalance):当用户修改分区表的数据分布规则时,需要按照新的规则对于数据进行重新分布,使得数据的存储符合用户新定义的分布规则。
数据存储单元(set):用来真正存储一定范围数据的最小单元,可以是操作系统的一个文件,用来存储表中一个分区的特定范围的数据。不同数据库中的称呼可能不一样(可以是操作系统的一个文件,或者文件中的一部分范围)。
下面结合图1对相关技术中针对分区表执行数据重分布的技术方案,一般涉及以下步骤:
(1)针对需要进行数据重分布的表T1,创建一个用户重新定义的临时表结构T1’。
(2)开始向表T1’同步数据,同步数据完成后,需要开始追日志。
(3)当日志追到一个比较小的范围,开始锁表,追第二部分剩余的日志。
(4)完成改名,释放锁,此时表T1’已经变为表T1,数据也完成了重分布。
结合上述对相关技术的描述,可见,上述例子中所有分区的数据范围都发生了变化,但是用户在做重分布操作时往往不会涉及所有分区的数据,只会集中在某几个分区当中。因此,上述方案的实施需要有足够大的额外存储空间,来存储一份全量数据(或者存储一份和参与重分布相当的分区存储空间),另还会对应有一个用户能够明显感知的后台拷贝表数据的时间(数据重分布操作执行时间),该执行时间较长,且在重分布过程中,需要锁表处理的时间,这段时间用户业务因为表被锁而处于中断状态,导致用户业务发生阻塞。
针对相关技术中所存在的上述至少一个技术问题或需要改善的地方,本申请提出一种数据处理方法、装置、电子设备、计算机可读存储介质和计算机程序产品;具体地,本申请的实施是通过增加的分区空间实现数据重分布,其无需采用额外的存储空间;另外,本申请的数据重分布无需对分区表的全量数据进行数据同步处理,有利于缩短数据重分布的执行时间,提高处理的效率,减少业务阻塞情况的发生。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
图2为本申请实施例提供可以应用于数据处理方法的系统架构示意图。其中,可以包括终端100、服务器200和数据库300。具体地,用户可以通过终端100发起数据重分布操作和数据的读写操作,终端100可以通过网络连接等方式与服务器200通信,而数据库300支持服务器200的数据服务。可以理解的是,数据库300在分布式数据库中,可以对应于多个处于不同地理空间上的数据库。
本申请实施例中提供了一种数据处理方法,如图3所示,该方法包括以下步骤S101-S104:
步骤S101:获取数据重分布信息。
其中,分区表包括基于预设分区键进行数据分布的表;分区键可以对应于待存储数据的某些字段。可选地,当分区表属于范围分区时,可以依据分区键定义时给出的取值范围(键值范围),根据实际的取值,进行分区的选择,进而在相应分区中存储数据。当分区表属于列表分区时,可以依据分区键定义时给出的取值列表,根据实际的取值,进行分区的选择,进而在相应的分区中存储数据。
其中,数据重分布信息可以通过解析用户提交操作语言得到,该操作语言可以是数据库模型定义语言DDL(Data Definition Language),DDL语言可以用于描述数据库中所存储的现实世界实体。可选地,数据重分布信息可以包括针对至少一个分区修改其分区键的取值范围或取值列表。
具体地,用户可以通过修改分区键对应的取值范围和取值列表,以调整各分区对应存储的数据,进而实现重新分布分区表中存储的数据;其中,响应于用户针对分区表触发的重分布操作,可以获取到针对分区表最新的数据重分布信息,也即数据重分布规则。
步骤S102:在分区表中增加至少一个分区空间,并采用分区空间记录当前与分区表中对应的数据存储单元的数据存储信息。
其中,在未进行数据重分布之前的分区表可以包括两层的管理结构,如图4所示,第一层表示对应于表table T1,第二层表示在表1下分别对应于三个分区,分区1、分区2和分区3,可以理解的是,此时各分区作为表1中的数据存储单元set对数据进行存储。具体地,分区表的元数据信息可以记录当前分区表的表结构、数据的存储关系等。
具体地,在本申请实施例中在执行数据重分布的基础上,提出一种中间的管理结构,也即分区空间(partition space,PS)。如图4所示,在原有的两层管理结构的中间增加一层分区管理层(分区空间),相应地,分区表的数据组织结构也发生了变化。其中,分区空间的加入可以将逻辑的分区范围或者list值(分区键的取值范围或取值列表)映射到物理的数据存储单元中,也即,通过分区空间可以解耦分区表分区定义与实际数据存储之间的绑定。其中,数据存储信息包括分区键的取值范围和分区键的取值列表中的一种;也即,数据存储信息可以表征分区表中各分区存储数据的定义。
可选地,在步骤S102执行时,可以针对原始分区表中包括的各数据存储单元,一一对应地增加分区空间,即一个数据存储单元对应一个分区空间;还可以基于数据重分布信息,结合原始分区表的数据组织结构,增加分区空间,此时可能存在重分布时,需要新增数据存储单元的情况,则可以适应新增的数据存储单元对应增加分区空间。
具体地,增加分区空间后,分区表中的分区空间与数据存储单元具有对应关系,可以分区空间记录的数据存储信息了解到对应的数据存储单元实际所存储的数据。
步骤S103:基于数据重分布信息中至少一个数据存储单元的预定义数据存储信息,更新分区空间与数据存储单元的对应关系。
其中,预定义数据存储信息也即数据重分布规则中各分区的定义,其逻辑上可以表示为分区范围和列表值,针对一个分区而言,可以是该分区对应的分区键的取值范围或取值列表值。
其中,由于用户可以仅修改分区表中的一个或多个分区的定义,则数据重分布信息中,可以仅包括修改后分区的定义,也即通过逻辑表达修改后数据存储单元可以存储的数据,体现为数据存储信息。
具体地,由于分区空间用于记录数据存储单元的数据存储信息,当进行数据重分布时,各数据存储单元的存储信息将有所变化,最终变化呈现的也即基于数据重分布信息确定的预定义数据存储信息,由此可见,分区空间在数据重分布完成时所记录的将是预定义数据存储信息,因此可以通过更新分区空间所记录的数据存储信息为预定义数据存储信息后,基于更新后的分区空间所记录的数据存储信息,调整各分区空间与数据存储单元的对应关系。
步骤S104:基于更新后分区空间与数据存储单元的对应关系更新分区表的数据分布。
具体地,更新后分区空间与数据存储单元的对应关系体现的是逻辑上的对应,要实现分区表的数据重分布,实际执行的是移动数据存储单元中所存储的数据,使各数据存储单元最终所存储的数据(物理意义上的数据局存储)满足用户设定重分布规则的要求。
在本申请实施例提供的数据处理方法中所涉及的数据可以保存于区块链上。
在一可行的实施例中,步骤S102中在分区表中增加至少一个分区空间,包括以下步骤S1021-S1022:
步骤S1021:针对分区表中的每一数据存储单元对应增加分区空间。
具体地,可以适应分区表中当前包括的数据存储单元一一对应地增加分区空间,此时,可以在原有各个数据存储单元所涵盖分区键的取值范围或键值内对各数据存储单元中实际存储的数据进行数据分布的调整。
步骤S1022:基于数据重分布信息,在分区表中新增至少一组具有对应关系的分区空间和空的数据存储单元,该分区空间所记录的数据存储信息基于数据重分布信息确定而得。
具体地,若当前表征的数据重分布信息中对分区的定义,也即新设定的各个数据存储单元逻辑上所涵盖分区键的取值范围或键值大于原始分区表中原有各个数据存储单元逻辑上所涵盖分区键的取值范围或键值,则可以在分区表中新增至少一组具有对应关系的分区空间和数据存储单元;其中,新增的数据存储单元为空,也即并未在物理意义上存储任何数据,而此时与新增的数据存储单元对应的分区空间所记录的数据存储信息则是基于数据重分布信息确定而得。举例说明:当前分区表中,各分区共同涵盖的分区键的取值范围是[0,10000);而数据重分布信息中,设定各分区共同涵盖的分区键的取值范围是[0,15000)时,可以适应增加一组具有对应关系的分区空间和空的数据存储单元,此时新增的分区空间所记录的数据存储信息中分区键的取值范围为[10000,15000)。
可选地,本步骤的实施可参考图10a的示意内容。
在一可行的实施例中,提供的数据处理方法还可以包括以下步骤S1010:
步骤S1010:基于分区空间创建分区空间列表,分区空间列表用于在数据重分布过程中记录各分区空间记录的数据存储信息、分区空间与数据存储单元的对应关系、各分区空间的名称、分区空间与分区表的对应关系中的至少一种信息。
具体地,可以针对在分区表中增加的分区空间适应生成一个系统表来保存各分区空间的管理信息。结合图4与下述表1和表2进行说明:
表1
表名 | 空间名 | 取值范围 | 分区名 |
测试t1 | PS1 | [0, 1000) | set 1 |
测试t1 | PS2 | [1000, 5000) | set 2 |
测试t1 | PS3 | [5000, 10000) | set 3 |
具体地,结合图4中的原始分区表与上述表1可见,各分区空间PS一一对应于数据存储单元set,此时增加的分区空间可以用于记录各分区实际存储数据的逻辑表达内容(数据存储信息),也即分区键的取值范围。而表1也即步骤S1010中创建的分区空间列表,其可以记录分区表的表名(table name,如测试test t1),分区空间名(space name,如PS1),分区键的取值范围(data range,如[0, 1000)),分区名(set name,如set 1)等信息,相应地,通过表格还可以知悉表名、空间名、取值范围、分区名之间的对应关系。
表2
表名 | 空间名 | 取值范围 | 分区名 |
测试t1 | PS1 | [0, 1500) | set 1 |
测试t1 | PS2 | [1000, 1500) | set 2 |
测试t1 | PS2 | [1500, 4500) | set 3 |
测试t1 | PS3 | [4500, 7500) | set 4 |
测试t1 | PS4 | [7500, 15000) | set 5 |
结合图4与上述表2可见,表2对应于数据重分布后,分区空间列表保存的信息,相对于表1,新增了分区空间PS4,分区set 4和5;在对应关系上,同一分区空间可以对应于两个分区(PS2对应于set 2和3)。
在本申请实施例中,通过上述表1和表2,可见基于分区空间创建的分区空间列表在数据重分布过程中,随着分区空间记录的数据存储信息,分区空间与数据存储单元的对应关系等的变化而一一变化。通过查询分区列表,可以快速确定当前数据重分布的进度;另外,在完成数据重分布的处理后,可以基于分区空间列表快速验证重分布后分区表的数据组织结构与数据重分布规则的符合程度。
在一可行的实施例中,步骤S103中基于数据重分布信息中至少一个数据存储单元的预定义数据存储信息,更新分区空间与数据存储单元的对应关系,包括以下步骤A1-A4:
步骤A1:基于数据重分布信息确定分区表中各数据存储单元的预定义数据存储信息。
具体地,数据重分布信息可以仅包括需要调整的分区定义,也可以包括重分布后分区表中各个分区的定义,适应不同的情况可以对应下述两种可能的实施例(以数据存储信息为分区键的取值范围为例说明):
(1)当仅包括需要调整的分区的定义时,也即包括至少一个数据存储单元在逻辑上的数据存储信息时,可以结合原始分区表中各数据存储单元的物理意义上所存储数据的情况,基于数据重分布信息确定重分布后分区表中各数据存储单元的数据存储信息。具体地,可以首先确定当前各数据存储单元逻辑上的数据存储信息,如set 1对应于[0, 1000),set 2对应于[1000, 5000);而数据重分布信息中,set 2对应于[1000, 2500);set 3对应于[2500, 5000),则可以确定此时分区表中各数据存储单元的预定义数据存储信息如下:set 1对应于[0, 1000),set 2对应于[1000, 2500);set 3对应于[2500, 5000);其中,set3可以是新增的数据存储单元。
(2)当包括调整后分区表中所有分区的定义时,也即包括所有数据存储单元在逻辑上的数据存储信息时,可以直接以该数据存储信息作为各数据村塾单元的预定义数据存储信息,也即结合上述实施例(1)中的例子,在实施例(2)中,可以直接基于数据重分布信息得到set 1对应于[0, 1000),set 2对应于[1000, 2500);set 3对应于[2500, 5000)的数据存储信息。
步骤A2:基于预定义数据存储信息调整分区表中所包含的数据存储单元。
具体地,由于各数据存储单元对应的预定义数据存储信息与分区表中当前数据存储单元实际所存储数据的情况可能不对应,在不对应的情况下,可能存在以下情形(以数据存储信息为分区键的取值范围为例说明):
(1)一个或者多个数据存储单元实际所存储的数据在逻辑上对应的分区键的取值范围的最小值小于对应数据存储单元的预定义取值范围的最小值;
(2)一个或者多个数据存储单元实际所存储的数据在逻辑上对应的分区键的取值范围的最大值大于对应数据存储单元的预定义取值范围的最大值;
(3)所有数据存储单元实际所存储的数据在逻辑上对应的分区键的总取值范围的最大值小于预定义总取值范围的最大值;
(4)所有数据存储单元实际所存储的数据在逻辑上对应的分区键的总取值范围的最小值大于预定义总取值范围的最小值。
结合上述几种情形可见,需要调整分区表中各数据存储单元实际存储的数据,实现物理上所存储数据的调整之前,需要对应在分区表中布局相应的数据存储单元,也即可能需要在原始分区表的数据组织结构的基础上增加或减少数据存储单元。
步骤A3:基于预定义数据存储信息更新各分区空间所记录的数据存储信息。
具体地,可以直接将步骤A1中确定出的各数据存储单元对应的预定义数据存储信息替换各分区空间现有记录的数据存储信息。可以理解的是,步骤A1中确定出的各数据存储单元与分区空间具有一一对应的关系,可参考图10c的示意内容。
步骤A4:基于各分区空间更新后记录的数据存储信息,更新分区空间与调整后分区表所包含的数据存储单元的对应关系。
具体地,在实际进行数据重分布之前,基于各分区空间更新记录的数据存储信息,将步骤A2调整分区表的数据组织结构后所包括的数据存储单元与各分区空间的对应关系适应进行调整,也即调整各分区空间实际管理的数据范围,可参考图10c和图10d的示意内容。
在一可行的实施例中,数据存储单元基于分区键的取值范围或键值的大小排序;步骤A2中基于预定义数据存储信息调整分区表中所包含的数据存储单元,包括以下步骤A21:
步骤A21:按序针对分区表中包含的每一数据存储单元执行下述调整操作步骤A211-A213:
步骤A211:比对数据存储单元当前的数据存储信息与预定义数据存储信息。
步骤A212:若数据存储单元对应分区键的最大值大于预定义数据存储信息中分区键的最大值,则基于预定义数据存储信息中分区键的最大值分裂该数据存储单元。
具体地,以数据存储单元对应分区键的取值范围为[1000,5000)为例,若该数据存储单元对应的预定义数据存储信息中分区键的取值范围为[1500,4500),则5000大于4500,将基于分区键的键值4500对该数据存储单元进行分裂处理。
步骤A213:若数据存储单元对应分区键的最小值小于预定义数据存储信息中分区键的最小值,则基于预定义数据存储信息中分区键的最小值分裂该数据存储单元。
具体地,以数据存储单元对应分区键的取值范围为[1000,5000)为例,若该数据存储单元对应的预定义数据存储信息中分区键的取值范围为[1500,4500),则1000小于1500,将基于分区键的键值1500对该数据存储单元进行分裂处理。
具体地,可参考图10b的示意内容;可以理解的是,对于任一数据存储单元而言,可能同时执行上述步骤A212和A213,也可能仅执行步骤A212或A213,还可能不执行任一步骤A212和A213。
在一可行的实施例中,步骤A23中基于预定义数据存储信息中分区键的最大值分裂该数据存储单元,包括以下步骤A231:
步骤A231:基于预定义数据存储信息中分区键的最大值与该数据存储单元对应分区键的最大值,生成一个空的第一数据存储单元。
具体地,如图10b所示,针对新生成的set 5而言,其当前存储的数据为空,但其逻辑上对应的分区键的取值范围可以基于set 2的最大值5000,和预定义数据存储信息中分区键的取值范围的最大值4500确定,也即此时set 5对应的分区键的取值范围为[4500,5000)。针对新生成的set 6而言,其当前存储的数据为空,但其逻辑上对应的分区键的取值范围可以基于set 3的最大值10000,和预定义数据存储信息中分区键的取值范围的最大值7500确定,也即此时set 6对应的分区键的取值范围为[7500,10000)。
在一可能的实施例中,步骤A23中基于预定义数据存储信息中分区键的最大值分裂该数据存储单元,还包括以下步骤A232:
步骤A232:基于预定义数据存储信息中分区键的最大值在该数据存储单元中标记最大分裂点,并建立该数据存储单元与第一数据存储单元的连接关系。
具体地,适应于步骤A231中的例子而言,可以在set 2中基于分区键的键值4500标记一个最大分裂点max flag;可以在set 3中基于分区键的键值7500标记一个最大分裂点max flag。
其中,由于新生成的set 5对应的分区键的取值范围是set 2在原始分区表中对应的分区键的取值范围的一部分,因此,可以建立set 2与set 5之间的连接关系,如图10c所示。由于新生成的set 6对应的分区键的取值范围是set 3在原始分区表中对应的分区键的取值范围的一部分,因此,可以建立set 3与set 6之间的连接关系。
在一可行的实施例中,步骤A24中基于预定义数据存储信息中分区键的最小值分裂该数据存储单元,包括以下步骤A241:
步骤A241:基于该数据存储单元对应分区键的最小值与预定义数据存储信息中分区键的最小值,生成一个空的第二数据存储单元。
具体地,如图10b所示,针对新生成的set 4而言,其当前存储的数据为空,但其逻辑上对应的分区键的取值范围可以基于set 2的最小值1000,和预定义数据存储信息中分区键的取值范围的最小值1500确定,也即此时set 4对应的分区键的取值范围为[1000,1500)。
在一可能的实施中,步骤A24中基于预定义数据存储信息中分区键的最小值分裂该数据存储单元,包括以下步骤A242:
步骤A242:基于预定义数据存储信息中分区键的最小值在该数据存储单元中标记最小分裂点,并建立该数据存储单元与第二数据存储单元的连接关系。
具体地,结合步骤A241中的示例,可以在set 2中基于分区键的键值1500标记一个最小分裂点min flag。
其中,由于set 4对应的分区键的取值范围是set 2在原始分区表中对应的分区键的取值范围的一部分,因此,可以建立set 2和set 4之间的连接关系。
在一可行的实施例中,步骤S104中基于更新后分区空间与数据存储单元的对应关系更新分区表的数据分布,包括以下步骤S1041-S1042:
步骤S1041:基于更新后分区空间与数据存储单元的对应关系针对需要进行分裂的每一数据存储单元执行以下数据移动操作步骤B1-B2:
步骤B1:将预定义数据存储信息中分区键的最大值至该数据存储单元对应分区键的最大值之间的分区键所对应的数据移动至相应的第一数据存储单元。
具体地,如图10e所示,可以将set 2中归属set 5实际所需存储的部分数据移动至set 5,此时将减少了set 2中实际所存储的部分数据。可以将set 3中归属set 6实际所需存储的部分数据移动至set 6,此时将减少了set 3中实际所存储的部分数据。
步骤B2:将数据存储单元对应分区键的最小值至预定义数据存储信息中分区键的最小值之间的分区键所对应的数据移动至相应的第二数据存储单元。
具体地,如图10e所示,可以将set 2中归属set 4实际所需存储的部分数据移动至set 4。
在本申请实施例中,步骤B1和B2的实施实际上仅针对需要移动的数据进行处理,而无需移动的数据仍保持在所对应的分区中。虽然在数据移动的过程中,需要对数据进行加锁,但由于移动的数据量较少,所需的执行时间较短,因此数据加锁的时间也非常短,使得本申请实施例在进行数据移动时对正在处理的读写操作(可以是一些用户业务)的影响非常少。
步骤S1042:删除最大分裂点、最小分裂点及各数据存储单元之间的连接关系。
具体地,最大分裂点、最小分裂点与各数据存储单元之间的连接关系可以用于在数据重分布过程中,表征数据之间的移动关系,可以应用在数据重分布处理的同时执行数据的读写操作。而在执行完成数据的重分布后,也即已经按照用户定义的数据重分布规则调整数据实际存储在各个分区的情况之后,可以删除各个分裂点和数据存储单元之间的连接关系。
在一可行的实施例中,提供的数据处理方法中,在完成分区表的数据分布更新之前,还包括以下步骤C1-C2:
步骤C1:响应于对目标数据的处理操作,确定目标数据对应分区键的键值大于任一数据存储单元的最大分裂点对应分区键的键值或小于任一数据存储单元的最小分裂点对应分区键的键值,则在该数据存储单元中查询目标数据。
具体地,对目标数据的处理操作可以是数据的读写操作,也即在执行数据重分布的过程中,接收到用户或服务器发出针对目标数据的读写操作是,可以基于标记的分裂点和建立的各数据存储单元之间的连接关系获取到目标数据所实际存储的位置。可以理解的是,步骤C1在数据存储单元中查询目标数据的处理,是在确定目标数据在分区表中具有对应存储位置的基础上实施的。
步骤C2:若查询获得目标数据对应的存储位置,则返回针对目标数据的处理结果;否则,基于各数据存储单元之间的连接关系,在分裂所得的数据存储单元中确定目标数据对应的存储位置并返回目标数据的处理结果。
具体地,下面针对数据重分布过程中,执行读写操作的操作流程进行详细说明:
第一种情况:使用旧版本的表执行目标数据处理操作的流程。如果在旧set(原始分区表中所包含的数据存储单元)中未找到目标数据对应的存储位置,且发现目标数据对应的存储位置在某一数据存储单元标记的分裂点flag之外,则表征目标数据有可能被移动到了分裂生成的set中,需要再次到相应新生成的set中执行数据遍历,进而目标数据是否存储在分区表中。
第二种情况:使用新版本的表执行目标数据处理操作的流程。如果未在已调整数据组织结构的分区表中的任一数据存储单元中确定目标数据的存储位置,且set(原始分区表中的旧set)中有指向其他set(新生成的set)的链接(基于各数据存储单元之间的连接关系确定),那么需要到对应set(新生成的set)中继续查找目标数据的存储位置;其中,在新生成的set中查询目标数据的操作流程如下:
如果目标数据不在对应set(原始分区表中的旧set)的flag 之外;则表征目标数据不属于set需要分裂的数据范围内,那么可以确定目标数据确实不存在分区表中,可以直接返回相应的处理结果(未在分区表中查询到目标数据);
如果目标数据在对应set的flag范围之外,找到相对应的分裂范围,可以继续查询目标数据,如果未查询得到目标数据的存储位置,也同样表明目标数据不存在分区表中,可以直接返回相应的处理结果;若在flag中找到数据(需要分裂的数据存储单元中待移动的数据),则可以锁定返回目标数据的处理结果;若在flag中找到数据(需要分裂的数据存储单元中待移动的数据),但该数据已经被标记mark为删除,则表明该数据可能被迁移,此时可以在新生成的数据存储单元中查询数据;其中,使用mark delete来表明需要分裂的数据存储单元中待移动的数据已经迁移到新的set中,还可以采用其他方法来表明数据已经迁移。
下面结合图5从分区表的数据组织结构的整体上说明本申请实施例提供的数据处理方法的执行逻辑:
其中,如图5所示,表T1 V0表示旧版本的分区表,从图5可见待进行数据重分布的分区表的数据组织结构。表T1 V1表示新版本的分区表,从图5可见已经执行数据重分布的分区表更新后的数据组织结构。
数据组织结构变化1:分区set 1需要从原来的[0,1000)变化为[0,1500):
1.1、原先的分区set 1管理空间PS1已经包含了set 1是[0,1000),则set 1保持不变;
1.2、需要从分区set 2管理空间PS2对应[1000,5000)的set2中将所存储的部分数据[1000,1500)划到分区set 1;因此原来的分区set2对应的数据[1000,5000),先分解为set4[1000,1500)和set2’[1500,5000);将set4 从分区set 2的管理范围PS2移动到分区set 1的管理范围PS1,则分区set 1的重分布过程完成。
数据组织结构变化2:分区set 3从原来的[5000,10000)变化为[4500,7500):
2.1、从分区set 2在1.2的步骤中分裂的set2’对应为[1500,5000)分裂出set2’’对应为[1500,4500)和set5对应为[4500,5000)两个新的set;
2.2、将set5 从分区set 2的管理范围PS2移动到分区set 3的管理范围PS3中,这时候分区set 2的重分布过程完成。
2.3、将之前set3对应[5000,10000)的分区,分解为set6对应为[5000,7500)和set3’对应为[7500,10000);
2.4、将分区set3’从分区set 3的管理范围PS3移动到分区4的管理范围PS4中,此时分区set 3的重分布过程完成。
数据组织结构变化3:分区set 4是一个新增的分区,需要在数据字典中增加相应的信息;另,对应增加一个set7对应为[10000,15000)的set,则分区set 4的重分布过程完成。
下面结合图6对本申请实施例提供的数据处理方法中针对分区表执行数据重分布的任务准备阶段(第一阶段)的执行操作进行说明:
步骤1.用户通过DDL语句对分区表进行数据重分布操作。
步骤2.读取原始分区表数据字典定义(也即对各个分区的定义,如分区1对应的分区键的取值范围),创建新分区表结构(可以采用整数代表分区表的版本号,对版本号+1用于表示更新的分区表的版本);具体地,本申请实施例仅是对分区表的结构进行调整,在描述时所采用的原始分区表对应该表的旧版本,无需创建一个新的分区表。
步骤3.遍历原表分区结构。
步骤4.判断是否重分布操作会产生新的分区空间;若是,进入步骤5;若否,返回步骤3,遍历下一个分区空间。
步骤5.增加一个空的分区空间到新的分区表结构。
步骤6.分区空间遍历完毕,若是,进入步骤7;若否,返回步骤3。
步骤7.遍历分区结构(也即分区空间)。
步骤8.判断是否需要针对当前分区空间进行重分布;若否,跳转到步骤22,处理下一个分区空间;若是,进入步骤9。
步骤9.判断是否需要增加范围;若是,可以增加左端分区和右端分区,针对list分区类型(因为list类型相对range类型操作类似,图6中均以range分区来说明)。其中,新增范围,也即可以直接增加一个空的set,同时向分区空间完成注册,通常新增范围都表明原来的分区表不包含新增范围的数据,因此新增范围不涉及后续的数据搬迁,修改完数据字典分区空间和范围信息,就完成了新增范围的操作。若否,进入步骤13。
步骤10. 判断是否增加左端范围:若是,进入步骤12;若否,进入步骤11。
步骤11. 增加一个右端set。
步骤12. 增加一个左端set。
步骤13. 判断是否需要分裂范围;若是,可以分区分裂左端分区和右端分区;如否,进入步骤22。
步骤14. 判断是否为左端分裂,无论是否均将进入步骤15。
步骤15. 找到分裂的数据分界点(分裂点)。
步骤16. 在分裂点上打一个flag(这里左端分裂为最小分裂点min-flag,右端分裂为最大分裂点max-flag)。
步骤17. 创建一个新的set,当前这个set为空,没有任何存储数据。
步骤18. 从原来的set向新的set建立一个连接。
步骤19. 从新建的set向新的set建立一个连接。
步骤20. 将新的set移动到对应的分区空间,并完成注册。
步骤21. 将分裂注册到移动数据任务列表。
步骤22. 处理下一个分区空间。
步骤23. 判断是否分区表的所有分区空间都处理完毕;若否,返回步骤7;若是,进入步骤24。
步骤24. 更新分区表中各分区定义,新版本分区表定义可见,同时通知所有节点更新定义(也可以不作通知)。
步骤25. 重分布准备阶段结束。
下面结合图7对本申请实施例提供的数据处理方法中针对分区表执行数据重分布的数据移动阶段(第二阶段)的执行操作进行说明:
具体地,重分布操作数据移动阶段是发生在准备阶段结束后,相应的准备工作已经完成,任务准备阶段完成后,对于用户而言,在逻辑上已经完成了对于分区表的数据重分布,只不过实际上数据还没有完成搬迁的操作,但是不影响用户对数据的读写。
步骤1.开始数据移动任务。
步骤2. 加载第一阶段准备好的需要迁移数据的任务列表。
步骤3.获取一个任务,启动数据搬迁任务。
步骤4.获取一个小批量数据开始搬迁加锁;(这个小批量数据可以是用户指定记录条数,或者写死),本申请实施例采用小批量数据搬迁,可是实现尽量将数据搬迁过程中对于用户读写事务的阻塞时间降到最低。
步骤5. 判断加锁成功;若否,则表明在该部分数据上具有用户事务正在处理,可以进入步骤7;若是,进入步骤6。
步骤6.等待一段时间,重新获取任务。
步骤7.将数据搬迁到新的Set上,其中,搬迁数据不对数据做任何修改,只是将数据从原Set范围,移动到新的Set,该处理过程不对元数据进行修改。
步骤8.提交事务,释放步骤4步对搬迁数据加的锁。
步骤9.判断是否范围内还有需要搬迁的数据;若否,进入步骤10;若是,跳转到步骤4,搬迁下一批数据。
步骤10. 判断是否还有需要搬迁的任务;若否,进入步骤11;若是,跳转到步骤3,继续下一个数据迁移任务。
步骤11. 所有节点刷新一下表结构,确保所有节点的表结构都已经同步到最新的。
步骤12. 清理掉所有Set中的flag标记和指向其他Set的链接(如图10f所示)。
步骤13. 数据迁移结束。
下面结合图8对本申请实施例提供的数据处理方法中针对分区表执行数据重分布的读写操作阶段(第三阶段)的执行操作进行说明:
具体地,适用旧版本表结构操作数据(如图10a中表T1 V0);其中,描述的是第一阶段准备工作过程中到第二阶段迁移数据后的步骤11刷新表结构之前的阶段,有些节点可以使用旧的表结构操作数据,对于新增范围数据的操作,则必须要在第一阶段步骤25刷新到新的表结构之后,用户才能够对于新增的数据范围上的数据(需要先增加set)进行操作。
步骤1.开始读写操作。
步骤2.判断是否找到符合条件的数据;若否,进入步骤3;若是,进入步骤6。
步骤3.判断是否数据在第一阶段的步骤17中flag之外(待迁移的数据);也即第一阶段步骤16中在set中标记的分裂点之外;若否,说明数据确实不存在分区表中,直接跳转到步骤8;若是,根据链接(各set之间的连接关系)跳转到连接的Set中继续查找数据。
步骤4.判断是否找到数据;若否,说明数据确实不存在分区表中,直接跳转到步骤8;若是,进入步骤6。
步骤5.按照原生逻辑对数据加锁。
步骤6.处理完毕后,提交事务。
步骤7.读写操作结束。
下面结合图9对本申请实施例提供的数据处理方法中针对分区表执行数据重分布的读写操作阶段(第四阶段)的执行操作进行说明:
具体地,使用新版本表结构读写数据:
步骤1.开始读写操作。
步骤2.判断是否找到数据;若否,进入步骤3;若是,进入步骤7。
步骤3.判断是否Set上面有指向其他Set的链接;若否,则表明数据不存在分区表中;进入步骤9;若是,进入步骤4。
步骤4.根据链接找到对应的Set。
步骤5.判断是否数据在对应的Set的flag范围内,如果旧的Set有flag然后找到新Set的,则从新Set找回原Set的情况说明数据还没有迁移完成;若否,没有相应的数据(数据不存在分区表中),跳转到步骤9;若是,跳转到步骤6;
步骤6.判断是否找到符合条件的数据;若否,没有相应的数据(数据不存在分区表中),跳转到步骤9;若是,跳转到步骤7。
步骤7.判断是否数据标记mark delete;如果被标记delete,说明这部分数据已经迁移到新set;若否,数据未被mark delete,进入步骤9;若是,进入步骤8。
步骤8. 返回新set重新查找数据。
步骤9.按照事务类型(如读写)加锁。
步骤10. 处理完毕后,提交事务;
步骤11. 读写操作结束。
在本申请实施例中,上述第三阶段和第四阶段实际上是在同一份数据中实现,本实施例通过两个阶段分别描述更有利于清晰了解针对目标数据在数据重分布过程中执行业务操作的实施过程。
下面结合图10a至图10f所示的示例对本申请实施例提供的数据处理方法作进一步的说明(以数据存储信息为分区键的取值范围为例):
如图10a,其示例出本申请实施例在执行数据重分布中的第一步,增加分区空间。具体地,相对于表T1 V0,表T1 V1表征已经调整过数据组织结构的分区表,在增加分区空间的处理中,新版本的表T1是不可见的,也即用户无法查看该步骤所产生的表T1 V1。其中,原始分区表中所涵盖分区键的取值范围为[0,10000),而V1版本的T1表结构定义中,分区表中所涵盖的分区键的取值范围为[0,15000);相应地,增加了set 7,以及与set 7对应的分区空间PS4。
如图10b,其示例出本申请实施例在执行数据重分布中的第二步,遍历数据存储单元,并考虑是否需要进行分裂(新增set)。在图10b的示例中,新增了set 4,set 5和set 6三个分区键的取值范围,此时图10b中set 4,set 5和set 6仍为空的数据存储单元,这三个set中所示的仅为分区键的取值范围,实际所存储的数据仍在set 2和set3中。
如图10c,其示例出本申请实施在执行数据重分布中的第三步,将第二步建立的分区键的取值范围(并非是实际数据),调整到正确的分区中;在第三步中,产生变化的包括分区空间所记录的数据存储信息,以及各分区空间与各set之间的对应关系。
如图10d,其示例出本申请实施例在执行数据重分布中的第四步,具体地,更新表T1各分区set管理数据的分区键的取值范围(也即处理的是图10d中采用双点划线框以及虚线框所示的set);另外,可以将T1表的定义开放给用户感知,也即此时用户可以查看该表。对应于第四步,也即完成了上述实施例所示的第一阶段(任务准备阶段),也就是用户发送DDL语句,这里执行完成后,反馈给用户重分布成功,但实际并未迁移数据(物理意义上的数据移动)。
如图10e,其示例出本申请实施例在执行数据重分布中的第五步,具体地,进入物理意义上的数据移动处理,完成数据按照分区管理中set的定义(分区键的取值范围)来搬动数据。对比图10e的两个表的结构可见,set 2”和set 3’所实际存储的数据发生了变化,其被移出的部分数据移入至与其具有连接关系的set中。
如图10f,其示例出本申请实施例在执行数据重分布中的第六步,具体地,在第六步执行前可以刷新一下所有节点,以使得刷新到最新的表定义版本。此时,可以去除之前步骤中标记的分裂点和各set之间的连接关系。
在本申请实施例中,从图10a至图10f的数据组织结构的示例性变化中,图10a中的第一个表对应于需要重分布的分区表;图10f中的第二个表对应于重分布结束后的分区表;两者分别示例了同一个表处于不同时期版本下的数据组织结构。具体地,在上述实施例所示的六个步骤的执行过程中,可以同步处理用户业务,也即本申请实施例提供的数据处理方法可以是一种线上online实施的方法,其无需对业务进行停机处理;且针对用户业务的处理和数据重分布的处理是在一份数据上完成的,有利于避免因为数据重分布新建副本带来数据不一致的问题。
本申请实施例提供了一种数据处理装置,如图11所示,该数据处理装置1100可以包括:获取模块1101、增加模块1102、更新模块1103、分布模块1104。
其中,获取模块1101,用于获取数据重分布信息;增加模块1102,用于在分区表中增加至少一个分区空间,并采用分区空间记录当前与分区表中对应的数据存储单元的数据存储信息;更新模块1103,用于基于数据重分布信息中至少一个数据存储单元的预定义数据存储信息,更新分区空间与数据存储单元的对应关系;分布模块1104,用于基于更新后分区空间与数据存储单元的对应关系更新分区表的数据分布;其中,分区表包括基于预设分区键进行数据存储的表;数据存储信息包括分区键的取值范围和分区键的取值列表中的一种。
在一实施例中,增加模块1102在用于执行在分区表中增加至少一个分区空间时,具体用于:
针对分区表中的每一数据存储单元对应增加分区空间;
基于数据重分布信息,在分区表中新增至少一组具有对应关系的分区空间和空的数据存储单元,该分区空间所记录的数据存储信息基于数据重分布信息确定而得。
在一实施例中,增加模块1102还用于:
基于分区空间创建分区空间列表,分区空间列表用于在数据重分布过程中记录各分区空间记录的数据存储信息、分区空间与数据存储单元的对应关系、各分区空间的名称、分区空间与分区表的对应关系中的至少一种信息。
在一实施例中,更新模块1103在用于执行基于数据重分布信息中至少一个数据存储单元的预定义数据存储信息,更新分区空间与数据存储单元的对应关系时,具体用于:
基于数据重分布信息确定分区表中各数据存储单元的预定义数据存储信息;
基于预定义数据存储信息调整分区表中所包含的数据存储单元;
基于预定义数据存储信息更新各分区空间所记录的数据存储信息;
基于各分区空间更新后记录的数据存储信息,更新分区空间与调整后分区表所包含的数据存储单元的对应关系。
在一实施例中,数据存储单元基于分区键的取值范围或键值的大小排序;更新模块1103在用于执行基于预定义数据存储信息调整分区表中所包含的数据存储单元时,具体用于:
按序针对分区表中包含的每一数据存储单元执行下述调整操作:
比对数据存储单元当前的数据存储信息与预定义数据存储信息;
若数据存储单元对应分区键的最大值大于预定义数据存储信息中分区键的最大值,则基于预定义数据存储信息中分区键的最大值分裂该数据存储单元;
若数据存储单元对应分区键的最小值小于预定义数据存储信息中分区键的最小值,则基于预定义数据存储信息中分区键的最小值分裂该数据存储单元。
在一实施例中,更新模块1103在用于执行基于预定义数据存储信息中分区键的最大值分裂该数据存储单元时,具体用于:
基于预定义数据存储信息中分区键的最大值与该数据存储单元对应分区键的最大值,生成一个空的第一数据存储单元;
更新模块1103在用于执行基于预定义数据存储信息中分区键的最小值分裂该数据存储单元时,具体用于:
基于该数据存储单元对应分区键的最小值与预定义数据存储信息中分区键的最小值,生成一个空的第二数据存储单元。
在一实施例中,更新模块1103在用于执行基于预定义数据存储信息中分区键的最大值分裂该数据存储单元时,具体用于:
基于预定义数据存储信息中分区键的最大值在该数据存储单元中标记最大分裂点,并建立该数据存储单元与第一数据存储单元的连接关系;
更新模块1103在用于执行基于预定义数据存储信息中分区键的最小值分裂该数据存储单元时,具体用于:
基于预定义数据存储信息中分区键的最小值在该数据存储单元中标记最小分裂点,并建立该数据存储单元与第二数据存储单元的连接关系。
在一实施例中,分布模块1104在用于执行基于更新后分区空间与数据存储单元的对应关系更新分区表的数据分布时,具体用于:
基于更新后分区空间与数据存储单元的对应关系针对需要进行分裂的每一数据存储单元执行以下数据移动操作:
将预定义数据存储信息中分区键的最大值至该数据存储单元对应分区键的最大值之间的分区键所对应的数据移动至相应的第一数据存储单元;
将数据存储单元对应分区键的最小值至预定义数据存储信息中分区键的最小值之间的分区键所对应的数据移动至相应的第二数据存储单元;
删除最大分裂点、最小分裂点及各数据存储单元之间的连接关系。
在一实施例中,装置1100还包括在线读写模块,用于在执行完成分区表的数据分布更新之前执行:
响应于对目标数据的处理操作,确定目标数据对应分区键的键值大于任一数据存储单元的最大分裂点对应分区键的键值或小于任一数据存储单元的最小分裂点对应分区键的键值,则在该数据存储单元中查询目标数据;
若查询获得目标数据对应的存储位置,则返回针对目标数据的处理结果;否则,基于各数据存储单元之间的连接关系,在分裂所得的数据存储单元中确定目标数据对应的存储位置并返回目标数据的处理结果。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一定量的处理数据,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现数据处理方法的步骤,与现有技术相比可实现:本申请在实施时是针对分区表进行的处理,分区表可以包括基于预设分区键进行数据分布的物理表;获取当前最新的数据重分布信息,该数据重分布信息用于对分区表的数据分布情况进行调整;基于此,可以在分区表中增加至少一个分区空间,该分区空间与分区表中的数据存储单元具有对应关系,且分区空间可以用于存储所对应数据存储单元的数据存储信息,其中数据存储信息包括分区键的取值范围或分区键的取值列表;此时,增加的分区空间可以解耦数据存储单元的数据存储信息与所实际存储数据之间的对应关系;进而,基于数据重分布信息中至少一个数据存储单元的预定义数据存储信息,可以更新当前分区空间与数据存储单元之间的对应关系,在更新两者的对应关系后,可以基于最新得到的分区空间与数据存储单元之间的对应关系更新分区表中的数据分布情况。本申请的实施是通过增加的分区空间实现数据重分布,其无需采用额外的存储空间;另外,本申请的数据重分布无需对分区表的全量数据进行数据同步处理,有利于缩短数据重分布的执行时间,提高处理的效率,减少业务阻塞情况的发生。
在一个可选实施例中提供了一种电子设备,如图12所示,图12所示的电子设备1200包括:处理器1201和存储器1203。其中,处理器1201和存储器1203相连,如通过总线1202相连。可选地,电子设备1200还可以包括收发器1204,收发器1204可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器1204不限于一个,该电子设备1200的结构并不构成对本申请实施例的限定。
处理器1201可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器1201也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线1202可包括一通路,在上述组件之间传送信息。总线1202可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线1202可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器1203可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器1203用于存储执行本申请实施例的计算机程序,并由处理器1201来控制执行。处理器1201用于执行存储器1203中存储的计算机程序,以实现前述方法实施例所示的步骤。
其中,电子设备包括但不限于:智能手机、平板电脑、笔记本电脑、智能音箱、智能手表、智能语音交互设备、车载终端等。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。
Claims (13)
1.一种数据处理方法,其特征在于,包括:
获取数据重分布信息;
在分区表中增加至少一个分区空间,并采用所述分区空间记录当前与所述分区表中对应的数据存储单元的数据存储信息;
基于所述数据重分布信息中至少一个数据存储单元的预定义数据存储信息,更新分区空间与数据存储单元的对应关系;
基于更新后分区空间与数据存储单元的对应关系更新所述分区表的数据分布;
其中,所述分区表包括基于预设分区键进行数据分布的表;所述数据存储信息包括分区键的取值范围和分区键的取值列表中的一种。
2.根据权利要求1所述的方法,其特征在于,所述在分区表中增加至少一个分区空间,包括:
针对所述分区表中的每一数据存储单元对应增加分区空间;
基于所述数据重分布信息,在所述分区表中新增至少一组具有对应关系的分区空间和空的数据存储单元,该分区空间所记录的数据存储信息基于所述数据重分布信息确定而得。
3.根据权利要求1所述的方法,其特征在于,还包括:
基于所述分区空间创建分区空间列表,所述分区空间列表用于在数据重分布过程中记录各分区空间记录的数据存储信息、分区空间与数据存储单元的对应关系、各分区空间的名称、分区空间与分区表的对应关系中的至少一种信息。
4.根据权利要求1所述的方法,其特征在于,所述基于所述数据重分布信息中至少一个数据存储单元的预定义数据存储信息,更新分区空间与数据存储单元的对应关系,包括:
基于所述数据重分布信息确定所述分区表中各数据存储单元的预定义数据存储信息;
基于所述预定义数据存储信息调整所述分区表中所包含的数据存储单元;
基于所述预定义数据存储信息更新各分区空间所记录的数据存储信息;
基于各分区空间更新后记录的数据存储信息,更新分区空间与调整后分区表所包含的数据存储单元的对应关系。
5.根据权利要求4所述的方法,其特征在于,所述数据存储单元基于分区键的取值范围或键值的大小排序;所述基于所述预定义数据存储信息调整所述分区表中所包含的数据存储单元,包括:
按序针对所述分区表中包含的每一数据存储单元执行下述调整操作:
比对数据存储单元当前的数据存储信息与预定义数据存储信息;
若数据存储单元对应分区键的最大值大于预定义数据存储信息中分区键的最大值,则基于预定义数据存储信息中分区键的最大值分裂该数据存储单元;
若数据存储单元对应分区键的最小值小于预定义数据存储信息中分区键的最小值,则基于预定义数据存储信息中分区键的最小值分裂该数据存储单元。
6.根据权利要求5所述的方法,其特征在于,
所述基于预定义数据存储信息中分区键的最大值分裂该数据存储单元,包括:
基于预定义数据存储信息中分区键的最大值与该数据存储单元对应分区键的最大值,生成一个空的第一数据存储单元;
所述基于预定义数据存储信息中分区键的最小值分裂该数据存储单元,包括:
基于该数据存储单元对应分区键的最小值与预定义数据存储信息中分区键的最小值,生成一个空的第二数据存储单元。
7.根据权利要求5所述的方法,其特征在于,
所述基于预定义数据存储信息中分区键的最大值分裂该数据存储单元,包括:
基于预定义数据存储信息中分区键的最大值在该数据存储单元中标记最大分裂点,并建立该数据存储单元与第一数据存储单元的连接关系;
所述基于预定义数据存储信息中分区键的最小值分裂该数据存储单元,包括:
基于预定义数据存储信息中分区键的最小值在该数据存储单元中标记最小分裂点,并建立该数据存储单元与第二数据存储单元的连接关系。
8.根据权利要求7所述的方法,其特征在于,所述基于更新后分区空间与数据存储单元的对应关系更新所述分区表的数据分布,包括:
基于更新后分区空间与数据存储单元的对应关系针对需要进行分裂的每一数据存储单元执行以下数据移动操作:
将预定义数据存储信息中分区键的最大值至该数据存储单元对应分区键的最大值之间的分区键所对应的数据移动至相应的第一数据存储单元;
将数据存储单元对应分区键的最小值至预定义数据存储信息中分区键的最小值之间的分区键所对应的数据移动至相应的第二数据存储单元;
删除所述最大分裂点、最小分裂点及各数据存储单元之间的连接关系。
9.根据权利要求7所述的方法,其特征在于,在完成所述分区表的数据分布更新之前,还包括:
响应于对目标数据的处理操作,确定所述目标数据对应分区键的键值大于任一数据存储单元的最大分裂点对应分区键的键值或小于任一数据存储单元的最小分裂点对应分区键的键值,则在该数据存储单元中查询目标数据;
若查询获得所述目标数据对应的存储位置,则返回针对所述目标数据的处理结果;否则,基于各数据存储单元之间的连接关系,在分裂所得的数据存储单元中确定所述目标数据对应的存储位置并返回所述目标数据的处理结果。
10.一种数据处理装置,其特征在于,包括:
获取模块,用于获取数据重分布信息;
增加模块,用于在分区表中增加至少一个分区空间,并采用所述分区空间记录当前与所述分区表中对应的数据存储单元的数据存储信息;
更新模块,用于基于所述数据重分布信息中至少一个数据存储单元的预定义数据存储信息,更新分区空间与数据存储单元的对应关系;
分布模块,用于基于更新后分区空间与数据存储单元的对应关系更新所述分区表的数据分布;
其中,所述分区表包括基于预设分区键进行数据存储的表;所述数据存储信息包括分区键的取值范围和分区键的取值列表中的一种。
11.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储器;
一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个计算机程序配置用于:执行根据权利要求1至8任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机存储介质用于存储计算机指令,当所述计算机指令在计算机上运行时,使得计算机可以执行上述权利要求1至8中任一项所述的方法。
13.一种计算机程序产品,包括计算机程序或指令,其特征在于,该计算机程序或指令被处理器执行时实现权利要求1至8中任一项所述方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111217539.9A CN113641686B (zh) | 2021-10-19 | 2021-10-19 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
PCT/CN2022/125826 WO2023066222A1 (zh) | 2021-10-19 | 2022-10-18 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
US18/450,577 US20230394024A1 (en) | 2021-10-19 | 2023-08-16 | Data processing method and apparatus, electronic device, storage medium, and program product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111217539.9A CN113641686B (zh) | 2021-10-19 | 2021-10-19 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113641686A true CN113641686A (zh) | 2021-11-12 |
CN113641686B CN113641686B (zh) | 2022-02-15 |
Family
ID=78427355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111217539.9A Active CN113641686B (zh) | 2021-10-19 | 2021-10-19 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230394024A1 (zh) |
CN (1) | CN113641686B (zh) |
WO (1) | WO2023066222A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023066222A1 (zh) * | 2021-10-19 | 2023-04-27 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060155679A1 (en) * | 2005-01-07 | 2006-07-13 | Oracle International Corporation | Pruning of spatial queries using index root MBRS on partitioned indexes |
US20150033083A1 (en) * | 2013-07-26 | 2015-01-29 | Fujitsu Limited | Memory dump method, information processing apparatus, and non-transitory computer-readable storage medium |
US20170206135A1 (en) * | 2015-12-31 | 2017-07-20 | Huawei Technologies Co., Ltd. | Data Reconstruction Method in Distributed Storage System, Apparatus, and System |
US9836492B1 (en) * | 2012-11-01 | 2017-12-05 | Amazon Technologies, Inc. | Variable sized partitioning for distributed hash tables |
CN108932256A (zh) * | 2017-05-25 | 2018-12-04 | 中兴通讯股份有限公司 | 分布式数据重分布控制方法、装置及数据管理服务器 |
US10375164B1 (en) * | 2013-12-30 | 2019-08-06 | Emc Corporation | Parallel storage system with burst buffer appliance for storage of partitioned key-value store across a plurality of storage tiers |
CN106415534B (zh) * | 2015-05-31 | 2019-09-20 | 华为技术有限公司 | 一种分布式数据库中关联表分区的方法和设备 |
CN111104057A (zh) * | 2018-10-25 | 2020-05-05 | 华为技术有限公司 | 存储系统中的节点扩容方法和存储系统 |
CN113434470A (zh) * | 2021-06-24 | 2021-09-24 | 华云数据控股集团有限公司 | 数据分布方法、装置及电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10157214B1 (en) * | 2014-11-19 | 2018-12-18 | Amazon Technologies, Inc. | Process for data migration between document stores |
CN112765262B (zh) * | 2019-11-05 | 2023-02-28 | 金篆信科有限责任公司 | 一种数据重分布方法、电子设备及存储介质 |
CN111767268B (zh) * | 2020-06-23 | 2023-12-01 | 陕西合友网络科技有限公司 | 数据库表分区方法、装置、电子设备及存储介质 |
CN113641686B (zh) * | 2021-10-19 | 2022-02-15 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
-
2021
- 2021-10-19 CN CN202111217539.9A patent/CN113641686B/zh active Active
-
2022
- 2022-10-18 WO PCT/CN2022/125826 patent/WO2023066222A1/zh unknown
-
2023
- 2023-08-16 US US18/450,577 patent/US20230394024A1/en active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060155679A1 (en) * | 2005-01-07 | 2006-07-13 | Oracle International Corporation | Pruning of spatial queries using index root MBRS on partitioned indexes |
US9836492B1 (en) * | 2012-11-01 | 2017-12-05 | Amazon Technologies, Inc. | Variable sized partitioning for distributed hash tables |
US20150033083A1 (en) * | 2013-07-26 | 2015-01-29 | Fujitsu Limited | Memory dump method, information processing apparatus, and non-transitory computer-readable storage medium |
US10375164B1 (en) * | 2013-12-30 | 2019-08-06 | Emc Corporation | Parallel storage system with burst buffer appliance for storage of partitioned key-value store across a plurality of storage tiers |
CN106415534B (zh) * | 2015-05-31 | 2019-09-20 | 华为技术有限公司 | 一种分布式数据库中关联表分区的方法和设备 |
US20170206135A1 (en) * | 2015-12-31 | 2017-07-20 | Huawei Technologies Co., Ltd. | Data Reconstruction Method in Distributed Storage System, Apparatus, and System |
CN108932256A (zh) * | 2017-05-25 | 2018-12-04 | 中兴通讯股份有限公司 | 分布式数据重分布控制方法、装置及数据管理服务器 |
CN111104057A (zh) * | 2018-10-25 | 2020-05-05 | 华为技术有限公司 | 存储系统中的节点扩容方法和存储系统 |
CN113434470A (zh) * | 2021-06-24 | 2021-09-24 | 华云数据控股集团有限公司 | 数据分布方法、装置及电子设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023066222A1 (zh) * | 2021-10-19 | 2023-04-27 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
Also Published As
Publication number | Publication date |
---|---|
US20230394024A1 (en) | 2023-12-07 |
CN113641686B (zh) | 2022-02-15 |
WO2023066222A1 (zh) | 2023-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7533136B2 (en) | Efficient implementation of multiple work areas in a file system like repository that supports file versioning | |
US6405198B1 (en) | Complex data query support in a partitioned database system | |
US6952692B1 (en) | Execution of requests in a parallel database system | |
US10585867B2 (en) | Systems and methods for generating partial indexes in distributed databases | |
CN111263937A (zh) | 内容管理客户端同步服务 | |
US20110289052A1 (en) | Method and apparatus for eventually consistent delete in a distributed data store | |
CN104850565B (zh) | 一种基于k-v存储系统的元数据管理方法 | |
US10534797B2 (en) | Synchronized updates across multiple database partitions | |
US11151081B1 (en) | Data tiering service with cold tier indexing | |
US11275760B2 (en) | Online schema and data transformations | |
CN112789606A (zh) | 数据重分布方法、装置及系统 | |
CN115114374B (zh) | 事务执行方法、装置、计算设备及存储介质 | |
CN111917834A (zh) | 一种数据同步方法、装置、存储介质及计算机设备 | |
US20180336224A1 (en) | Hash-based synchronization of geospatial vector features | |
KR20200092095A (ko) | 관계형 데이터베이스의 DML문장을 NoSQL 데이터베이스로 동기화하기 위한 트랜잭션 제어 방법 | |
US11726743B2 (en) | Merging multiple sorted lists in a distributed computing system | |
CN113641686B (zh) | 数据处理方法、装置、电子设备、存储介质及程序产品 | |
CN113656384B (zh) | 数据处理方法、分布式数据库系统、电子设备及存储介质 | |
Agrawal et al. | Survey on Mongodb: an open-source document database | |
WO2023124242A1 (zh) | 事务执行方法、装置、设备和存储介质 | |
Vasilas et al. | A modular design for geo-distributed querying: Work in progress report | |
CN108256019A (zh) | 数据库主键生成方法、装置、设备及其存储介质 | |
US20220365905A1 (en) | Metadata processing method and apparatus, and a computer-readable storage medium | |
CN110413617B (zh) | 一种根据数据量的大小动态调节哈希表组的方法 | |
US10353920B2 (en) | Efficient mirror data re-sync |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40055735 Country of ref document: HK |