CN111782655A - 一种基于地理分区的数据库跨区域数据就近访问方法 - Google Patents
一种基于地理分区的数据库跨区域数据就近访问方法 Download PDFInfo
- Publication number
- CN111782655A CN111782655A CN202010620907.3A CN202010620907A CN111782655A CN 111782655 A CN111782655 A CN 111782655A CN 202010620907 A CN202010620907 A CN 202010620907A CN 111782655 A CN111782655 A CN 111782655A
- Authority
- CN
- China
- Prior art keywords
- cross
- data
- index
- domain index
- domain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000005192 partition Methods 0.000 title claims abstract description 47
- 238000000034 method Methods 0.000 title claims abstract description 31
- 230000005012 migration Effects 0.000 claims description 2
- 238000013508 migration Methods 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 abstract description 2
- 238000005457 optimization Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 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/2228—Indexing structures
-
- 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/242—Query formulation
- G06F16/2433—Query languages
- G06F16/2448—Query languages for particular applications; for extensibility, e.g. user defined types
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于地理分区的数据库跨区域数据就近访问方法,本发明包括如下步骤:S1、创建跨域索引;S2、将所创建的跨域索引就近存储;S3、通过执行优化器CBO提高跨域索引的使用优先级;S4、采用跨域索引读取请求数据。本发明在地理分区的分布式存储场景中,解决了跨区域读取数据以及跨域计算时间长的问题,而且降低了跨区域读取数据带来的网络压力,减少了跨区域网络开销,同时通过减少整行数据的读取,降低了数据库系统的IO压力,由于数据可以就近访问从而提高了数据库的执行性能。
Description
技术领域
本发明涉及数据库存储技术领域,具体地说是一种基于地理分区的数据库跨区域数据就近访问方法。
背景技术
在分布式数据库管理系统中,当集群节点跨地区分布在多个物理隔离的机房时,为了保证数据能集中在本地访问,用户数据会采用地理分区表的方式,将数据分布到相应地理位置的机房,分区的规则往往是地理位置,即城市A的数据就集中在A城市机房中,但为了保证数据库的高可用会存在多地多中心的数据分布方式,这种分布方式一般是不容易改变的,包括存储位置和备份的副本数量。这种数据地理分区带来了本地数据的高效访问同时,也产生了跨地域分区访问的开销加大,导致数据库系统涉及跨区域访问数性能低下,同时产生大量的跨域网络开销。
发明内容
本发明的目的是针对以上不足,提供一种基于地理分区的数据库跨区域数据就近访问方法,用于解决现有分布式数据库中当用户表数据采用地理分区后,将跨区域访问转换成就近访问。
本发明所采用技术方案是:
一种基于地理分区的数据库跨区域数据就近访问方法,包括如下步骤:
S1、创建跨域索引;
S2、将所创建的跨域索引就近存储;
S3、通过执行优化器CBO提高跨域索引的使用优先级;
S4、采用跨域索引读取请求数据。
作为进一步的优化,本发明步骤S1中创建跨域索引的过程包括如下步骤:
S101、根据访问需求选取建立跨域索引所需的索引列和存储列,同时收集跨域的分区范围以及索引数据的存储分区位置;
S102、从相应存储分区内读取所需数据;
S103、将读取的数据转换为kv存储方式。
作为进一步的优化,本发明跨域索引数据在包含所需数据最多的一个存储分区开始创建。
作为进一步的优化,本发明步骤S2中将所创建的跨域索引就近存储的过程包括如下步骤:
S201、解析跨域索引的地理位置信息,如果用户没有设定,自动设定为创建节点所属地理位置;
S202、根据所设定的地理位置信息,将跨域索引数据迁移至就近存储节点进行存储。
作为进一步的优化,本发明步骤202中,将跨域索引数据迁移值对应的存储节点进行存储后,对索引列数量大于2的索引key解析生成对应衍生多级key,衍生多级key对应同一value值,每级衍生子key均顺序去除首部一个key值,用于多个相关列的范围查询。
作为进一步的优化,本发明步骤S1中,为了减少数据传输量在跨域索引数据创建过程中不产生多级索引key。
作为进一步的优化,本发明步骤S3中,通过执行优化器CBO提升跨域索引的使用优先级过程包括如下步骤:
S301、接收用户发出的跨域查询sql请求;
S302、解析sql请求内容,并提取sql请求涉及的地理分区信息判断是否产生跨区域数据读取;
S303、通过执行优化器CBO匹配sql请求涉及到的数据是否与跨域索引一致;
S304、当跨域索引包含所有sql请求数据时,使跨域索引的优先级提高,降低跨域索引的使用代价。
作为进一步的优化,本发明当sql请求有多列范围查询时,自动分解为多级key匹配,一次性的读取需要数据。
作为进一步的优化,本发明通过执行优化器CBO对跨域索引对比匹配sql请求时,对跨域索引未包含的sql请求进行定制化更新,跨域索引更新时只读取变化数据,新索引数据进行增量存储,定时做数据整理,剔除无效数据。
本发明具有以下优点:
1、本发明在地理分区的分布式存储场景中,解决了跨区域读取数据以及跨域计算时间长的问题,而且降低了跨区域读取数据带来的网络压力,减少了跨区域网络开销,同时通过减少整行数据的读取,降低了数据库系统的IO压力,由于数据可以就近访问从而提高了数据库的执行性能;
2、本发明跨域索引本地化存储后,通过衍生多级key对应同一value的结构形式,在多个相关列的范围查询时,可以通过多级子key一次性得到结果,减少整个索引扫描的读放大问题,而且多级key的引入使得跨域索引的范围更大,从而进一步的提高了就近访问几率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
下面结合附图对本发明进一步说明:
图1为本发明的示例流程示意图;
图2为跨域所以的kv结构图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。
需要理解的是,在本发明实施例的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。在本发明实施例中的“多个”,是指两个或两个以上。
本发明实施例中的属于“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,单独存在B,同时存在A和B这三种情况。另外,本文中字符“/”一般表示前后关联对象是一种“或”关系。
本发明的实施例提供一种基于地理分区的数据库跨区域数据就近访问方法,如图1所示,包括如下步骤:
S1、创建跨域索引;步骤如下:
S101、根据访问需求选取建立跨域索引所需的索引列和存储列,同时收集跨域的分区范围以及索引数据的存储分区位置,保证索引数据存储在使用存储分区处;
S102、从相应存储分区内读取所需数据;为了减少数据传输量,跨域索引数据就近在涉及到的且数据量占比最大的一个存储分区开始创建;
S103、将读取的数据转换为kv存储方式。
S2、将所创建的跨域索引就近存储;
S201、解析跨域索引的地理位置信息,如果用户没有设定,自动设定为创建节点所属地理位置;
S202、根据所设定的地理位置信息,将跨域索引数据迁移至对应的存储节点进行存储。
S3、通过执行优化器CBO提升跨域索引的使用优先级;
S301、接收用户发出的跨域查询sql请求;
S302、解析sql请求内容,并提取sql请求涉及的地理分区信息判断是否产生跨区域数据读取;
S303、通过执行优化器CBO匹配sql请求所涉及到的数据是否与跨域索引一致;并在CBO优化器匹配sql请求与跨域索引的过程中,不断第一跨域索引进行更新;
S304、当跨域索引包含所有sql请求数据时,使跨域索引的优先级提高,降低跨域索引的使用代价。
S4、sql执行器优化器采用跨域索引读取请求数据。在上述通过执行优化器对跨域索引的优化更新后,提高跨域缩影的优先级,讲了使用的代价,因此在实际生成执行计划时,就会采用代价最低的跨域索引读取请求的数据。
分布式NEWSQL数据库管理系统跨区域索引采用了KV存储方式,key记录了用户需要访问的索引列,value存储了相关列的数据。由于kv存储可以很好的满足精确匹配,但由于kv存储是线性存储,当索引列有多个列时,只能满足key中的索引列顺序的一个字段的范围匹配,因此为提高跨域索引的使用率,本实施例通过衍生多级key对应一个value的存储方式,如图2所示,原始key中,kv结构图依次包括表ID号、索引号、层级号、字段1值、字段2值、字段3值以及对应的value值,举例说明,表50创建了一个跨域索引1,其中,Key值:a=1,b=2,c=3,value值:d=99,e=’a’,原始key如图2中第一行所示:表ID号50、索引号1、层级号1、字段1值a=1、字段2值b=2、字段3值c=3,一级衍生子key如图2中第二行所示,表ID号50、索引号1、层级号2,字段2值b=2、字段3值c=3,二级衍生子key如图2中第三行所示,表ID号50、索引号1、层级号3,字段3值c=3,基于上述kv存储方式,当需要多个相关列的范围查询时,通过多级衍生子key可以一次得到结果,降低整个索引扫描的读放大问题。
在上述跨域索引的创建的过程中,为了降低数量量的传输,在创建时不进行多级衍生key的生成,而在跨域索引数据转移在就近节点存储后,会进行数据checksum校验,同时对索引列数量大于2的主索引key进行多级key的产生,最终生成了多级衍生key。基于上述kv结构,将跨域索引数据在所创建的存储分区内进行分块分级存储,块为单条索引数据,级即为上述所述层级,块内按照key值进行排序,同一层级内的索引连续存储,方便进行层级查找。
基于本实施例的跨域索引的kv结构,当sql请求有多列范围查询时,自动分解为多级key匹配,一次性的读取需要数据,避免全索引扫描,多级key的引入使得跨域索引的范围更大,从而进一步的提高了就近访问的几率。
本实施例通过CBO优化器对跨域索引对比匹配sql请求时,对跨域索引未包含的sql请求进行定制化更新,跨域索引更新时只读取变化数据,新索引数据进行增量存储,定时做数据整理,剔除无效数据。
下面结合图1对本发明的跨区域数据就近访问方法做进一步的说明,图1中,分布式NEWSQL数据库管理系统中存在多个存储分区,在用户进行数据访问时,sql的通过执行优化器计算最佳数据读取路径,节省访问开销,基于这种分布式存储的方式,当存在跨区域访问时,即使通过执行优化器计算最佳数据读取路径,由于其跨区域访问特点,还是会大大增加跨区域访问的开销,导致数据库整体性访问性能受到一定影响,因此基于本发明的跨域去数据就近访问方法,包括如下步骤:用户就近访问的为存储分区1,首先基于用户跨域访问需求,创建跨区域索引,选取所需跨区域访问的表的索引列和相关列以及分区标志,创建跨区域索引,区别于普通索引,跨区域索引只拉取用户关心的表的部分数据创建索引,用户跨区域访问需求可能分布于多个存储分区内,选择保存用户访问需求最多的一个分区开始创建,如图1所示,存储分区3包含用户跨域访问需求最多,在存储分区3内创建索引数据,并从其他分区内提取所需数据进行存储,将提取后的数据转换为kv存储方式;索引数据创建完成后,会根据跨域索引带有的地理位置信息迁移到存储分区1内,数据迁移到目的节点后,会进行数据checksum校验,同时对主索引key进行多级key的产生,最终生成了多级索引,在前述索引数据创建的过程中,为减少数据传输,不会进行多级索引key的生成。基于上述过程,跨域索引创建完成,但是跨域索引完成后,并不能使用,跨域索引的生效依赖于sql执行优化器CBO的优化,在接收到在接收到用户查询请求后,执行优化器先提取sql涉及的用户数据范围,计算是否产生跨域访问。之后,提取sql的相关列和投影列,同跨域索引进行列匹配,当跨域索引的可以包含sql请求的所有请求数据后,则提高跨域索引的优先级,降低使用的代价,这样,在实际生成执行计划时,就会采用代价最低的跨域索引读取请求的数据。基于sql执行优化器CBO的优化,在对接用户数据访问需求时,会自动调度跨域索引进行定制化更新,并自动生效。
由于跨域索引是kv存储,因此当进行索引数据匹配时,可以直接按照图1的结构方式直接将查询结果拼接为key在索引数据中进行匹配命中,对于范围查询,引入了min和max特殊值,当要标识范围查询时,使用min或者max表示最小或者最大上限,例如检索字段a>1则可以翻译为两个key范围【1】~【max】,通过两个key描述了范围查询。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
Claims (9)
1.一种基于地理分区的数据库跨区域数据就近访问方法,其特征在于:包括如下步骤:
S1、创建跨域索引;
S2、将所创建的跨域索引就近存储;
S3、通过执行优化器CBO提高跨域索引的使用优先级;
S4、采用跨域索引读取请求数据。
2.根据权利要求1所述的基于地理分区的数据库跨区域数据就近访问方法,其特征在于:步骤S1中创建跨域索引的过程包括如下步骤:
S101、根据访问需求选取建立跨域索引所需的索引列和存储列,同时收集跨域的分区范围以及索引数据的存储分区位置;
S102、从相应存储分区内读取所需数据;
S103、将读取的数据转换为kv存储方式。
3.根据权利要求2所述的基于地理分区的数据库跨区域数据就近访问方法,其特征在于:跨域索引数据在包含所需数据最多的一个存储分区开始创建。
4.根据权利要求3所述的基于地理分区的数据库跨区域数据就近访问方法,其特征在于:步骤S2中将所创建的跨域索引就近存储的过程包括如下步骤:
S201、解析跨域索引的地理位置信息,如果用户没有设定,自动设定为创建节点所属地理位置;
S202、根据所设定的地理位置信息,将跨域索引数据迁移至就近存储节点进行存储。
5.根据权利要求4所述的基于地理分区的数据库跨区域数据就近访问方法,其特征在于:步骤202中,将跨域索引数据迁移值对应的存储节点进行存储后,对索引列数量大于2的索引key解析生成对应衍生多级key,衍生多级key对应同一value值,每级衍生子key均顺序去除首部一个key值,用于多个相关列的范围查询。
6.根据权利要求5所述的基于地理分区的数据库跨区域数据就近访问方法,其特征在于:步骤S1中,为了减少数据传输量在跨域索引数据创建过程中不产生多级索引key。
7.根据权利要求6所述的基于地理分区的数据库跨区域数据就近访问方法,其特征在于:步骤S3中,通过CBO优化器提升跨域索引的使用优先级过程包括如下步骤:
S301、接收用户发出的跨域查询sql请求;
S302、解析sql请求内容,并提取sql请求涉及的地理分区信息判断是否产生跨区域数据读取;
S303、通过执行优化器CBO匹配sql请求涉及到的数据是否与跨域索引一致;
S304、当跨域索引包含所有sql请求数据时,使跨域索引的优先级提高,降低跨域索引的使用代价。
8.根据权利要求7所述的基于地理分区的数据库跨区域数据就近访问方法,其特征在于:当sql请求有多列范围查询时,自动分解为多级key匹配,一次性的读取需要数据。
9.根据权利要求7所述的基于地理分区的数据库跨区域数据就近访问方法,其特征在于:通过执行优化器CBO对跨域索引对比匹配sql请求时,对跨域索引未包含的sql请求进行定制化更新,跨域索引更新时只读取变化数据,新索引数据进行增量存储,定时做数据整理,剔除无效数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010620907.3A CN111782655A (zh) | 2020-07-01 | 2020-07-01 | 一种基于地理分区的数据库跨区域数据就近访问方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010620907.3A CN111782655A (zh) | 2020-07-01 | 2020-07-01 | 一种基于地理分区的数据库跨区域数据就近访问方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111782655A true CN111782655A (zh) | 2020-10-16 |
Family
ID=72759939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010620907.3A Pending CN111782655A (zh) | 2020-07-01 | 2020-07-01 | 一种基于地理分区的数据库跨区域数据就近访问方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111782655A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114513530A (zh) * | 2022-04-19 | 2022-05-17 | 山东省计算中心(国家超级计算济南中心) | 一种跨域存储空间双向供给方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104346509A (zh) * | 2013-08-01 | 2015-02-11 | 上海联影医疗科技有限公司 | 一种跨区域医疗文档信息共享系统及方法 |
CN105159845A (zh) * | 2015-09-07 | 2015-12-16 | 四川神琥科技有限公司 | 存储器读取方法 |
CN105512200A (zh) * | 2015-11-26 | 2016-04-20 | 华为技术有限公司 | 一种分布式数据库处理的方法和设备 |
CN111008242A (zh) * | 2019-11-21 | 2020-04-14 | 山东众阳健康科技集团有限公司 | 基于各级区域平台的数据索引同步方法及其数据访问方法 |
-
2020
- 2020-07-01 CN CN202010620907.3A patent/CN111782655A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104346509A (zh) * | 2013-08-01 | 2015-02-11 | 上海联影医疗科技有限公司 | 一种跨区域医疗文档信息共享系统及方法 |
CN105159845A (zh) * | 2015-09-07 | 2015-12-16 | 四川神琥科技有限公司 | 存储器读取方法 |
CN105512200A (zh) * | 2015-11-26 | 2016-04-20 | 华为技术有限公司 | 一种分布式数据库处理的方法和设备 |
WO2017088358A1 (zh) * | 2015-11-26 | 2017-06-01 | 华为技术有限公司 | 一种分布式数据库处理的方法和设备 |
CN111008242A (zh) * | 2019-11-21 | 2020-04-14 | 山东众阳健康科技集团有限公司 | 基于各级区域平台的数据索引同步方法及其数据访问方法 |
Non-Patent Citations (1)
Title |
---|
刘润达;诸云强;宋佳;冯敏;: "一种简单跨域单点登录系统的实现", 计算机应用, no. 02, 10 February 2007 (2007-02-10) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114513530A (zh) * | 2022-04-19 | 2022-05-17 | 山东省计算中心(国家超级计算济南中心) | 一种跨域存储空间双向供给方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU777792B2 (en) | System for managing RDBM fragmentations | |
CN105975587B (zh) | 一种高性能的内存数据库索引组织与访问方法 | |
CN1552032B (zh) | 数据库 | |
CN103020204B (zh) | 一种对分布式顺序表进行多维区间查询的方法及其系统 | |
CN105393249A (zh) | 针对查询优化的范围分区统计数据的增量式维护 | |
CN103678519B (zh) | 一种支持Hive DML增强的混合存储系统及其方法 | |
JPH07191891A (ja) | 多次元データを格納しかつアクセスするコンピュータ方法及び格納構造 | |
CN101799808A (zh) | 一种数据处理方法及其系统 | |
CN102982103A (zh) | 一种olap海量多维数据维存储方法 | |
US8108431B1 (en) | Two-dimensional data storage system | |
CN103823823A (zh) | 基于频繁项集挖掘算法的反规范化策略选择方法 | |
CN108009265B (zh) | 一种云计算环境下的空间数据索引方法 | |
Ramamohanarao et al. | Recursive linear hashing | |
US5742809A (en) | Database generic composite structure processing system | |
US7020656B1 (en) | Partition exchange loading technique for fast addition of data to a data warehousing system | |
CN115114296A (zh) | 一种基于TemplateB+Tree的索引结构布局方法 | |
US20080294673A1 (en) | Data transfer and storage based on meta-data | |
CN115114294A (zh) | 数据库存储模式的自适应方法、装置、计算机设备 | |
CN110008289B (zh) | 一种关系数据库、电网模型数据存储及检索方法 | |
CN111782655A (zh) | 一种基于地理分区的数据库跨区域数据就近访问方法 | |
KR20070107253A (ko) | 다중레벨 dbms에서 질의 분류 컴포넌트의 설계 방법 | |
US8108382B1 (en) | Optimizing the execution of a query in a multi-database system | |
US7693850B2 (en) | Method and apparatus for adding supplemental information to PATRICIA tries | |
CN116700618A (zh) | 基于tsdb存储引擎的数据处理方法、系统和网络侧服务端 | |
CN116450607A (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 |