CN106202540A - 一种大型应用***的数据库可横向扩展方法 - Google Patents
一种大型应用***的数据库可横向扩展方法 Download PDFInfo
- Publication number
- CN106202540A CN106202540A CN201610595003.3A CN201610595003A CN106202540A CN 106202540 A CN106202540 A CN 106202540A CN 201610595003 A CN201610595003 A CN 201610595003A CN 106202540 A CN106202540 A CN 106202540A
- Authority
- CN
- China
- Prior art keywords
- data
- dimension
- base
- scale application
- application system
- 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
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000013507 mapping Methods 0.000 claims abstract description 14
- 230000008569 process Effects 0.000 claims abstract description 10
- 230000019771 cognition Effects 0.000 claims description 5
- 230000008878 coupling Effects 0.000 claims description 4
- 238000010168 coupling process Methods 0.000 claims description 4
- 238000005859 coupling reaction Methods 0.000 claims description 4
- 230000007246 mechanism Effects 0.000 abstract description 3
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 239000012141 concentrate Substances 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000035800 maturation Effects 0.000 description 1
- 230000004899 motility Effects 0.000 description 1
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/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (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为本发明的实现示意图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步说明。
如附图1所示,本发明提供一种大型应用***的数据库可横向扩展方法,其具体实现过程为:
首先定义数据库集群,确定数据库集群组成内容;
然后定义数据路由维度以及数据路由映射关系;
最后根据上下文数据执行路由解析,访问特定数据库。
所述数据库集群由若干数据库组成,每个数据库的描述信息为数据源,该数据源包括以下属性:数据源标识、数据源编号、数据源名称、数据源描述、数据源类型、数据库连接信息;其中数据源标识是数据主键,数据源编号是数据源可人工识别的唯一标识,数据源类型是一个枚举类型。
在每个数据库集群中包含一个主数据库、若干个业务数据库和若干个查询数据库;相对应的,数据源类型包含以下三个枚举值:主库、业务库、查询库。
所述数据路由维度用于描述应用程序访问数据库的路由关系的结构。
数据路由维度为一个记录列表,列表中每一行包括以下属性:维度标识、维度编号、维度名称、是否必选、维度描述;其中维度标识是数据主键,维度编号是维度可人工识别的唯一标识,是否必选用于标识该纬度值是否允许为空值。
数据路由映射关系,是基于数据库集群、数据路由维度中的数据源定义及数据路由维度定义,定义的在不同维度值设定下与数据源的匹配映射关系。
数据路由映射关系为一个记录列表,列表中每一行包括以下属性:维度值集合、数据源标识、描述,其中维度值组合是基于数据路由维度的记录列表构成的多个值的序列信息。
维度值集合是数据路由映射关系记录列表行的唯一性约束,特定的维度值集合唯一匹配一个数据源标识。
上下文数据是访问程序执行过程中的上下文数据信息,在上下文数据中包含维度信息列表,该维度信息列表是键值对列表,其键为数据路由维度中的维度标识,其值为该维度的数据值。
访问程序执行过程中,在获取应访问的数据库时,基于上下文数据中包含的维度信息列表,通过对数据路由映射关系中的维度值集合进行查找匹配,从而获取到特定的数据源标识,完成访问。
进一步的,根据获取到的特定的数据源标识,基于步骤一中定义的数据源,获取到与数据源标识匹配的数据源信息,从而进一步的获取到数据源信息中的数据库连接信息,在程序中建立该数据源指定的数据库,进行数据访问。
具体实例:
某大型***中,基于步骤1,定义数据库集群信息如下:
数据源标识 | 数据源编号 | 数据源名称 | 数据源类型 | 数据库连接信息 |
DS1 | Master | 共享库 | 主库 | … |
DS2 | Biz1 | 业务库1 | 业务库 | … |
DS3 | Biz2 | 业务库2 | 业务库 | … |
基于步骤2,定义的数据路由维度信息如下,代表在该***中,业务应用数据可以按照***的模块和行业进行数据划分:
维度标识 | 维度编号 | 维度名称 | 是否必选 | 维度描述 |
D1 | Module | 模块 | 是 | ***模块维度 |
D2 | Scope | 行业 | 是 | 行业维度 |
基于步骤3,假设***中同时有M1、M2两个模块,有S1、S2两个行业,则建立的数据路由映射关系如下:
基于步骤4,如果当前程序功能是M1模块的功能,并且设定的行业是S1,则程序中的上下文数据中包含的维度信息列表信息如下:
键 | 值 |
Module | M1 |
Scope | S1 |
则基于步骤4的解析规则,获取到当前功能对应的数据源信息为DS1,根据DS1程序可获取到DS1对应的数据库连接信息,从而建立相应的数据库连接,访问DS1对应的数据库数据信息。
本发明通过以上的技术实现方法,可在大型应用***的大数据量、高并发情况下,有效的通过数据路由配置及解析机制,将对数据的访问分流到不同的数据库中,使同一应用的数据库可有效的横向扩展,从而降低大型应用对单一数据库的访问压力,解决单一数据库的性能瓶颈问题,提高大型应用整体运行的性能。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (7)
1.一种大型应用***的数据库可横向扩展方法,其特征在于,其具体实现过程为:
首先定义数据库集群,确定数据库集群组成内容;
然后定义数据路由维度以及数据路由映射关系;
最后根据上下文数据执行路由解析,访问特定数据库。
2.根据权利要求1所述的一种大型应用***的数据库可横向扩展方法,其特征在于,所述数据库集群由若干数据库组成,每个数据库的描述信息为数据源,该数据源包括以下属性:数据源标识、数据源编号、数据源名称、数据源描述、数据源类型、数据库连接信息;其中数据源标识是数据主键,数据源编号是数据源可人工识别的唯一标识,数据源类型是一个枚举类型。
3.根据权利要求2所述的一种大型应用***的数据库可横向扩展方法,其特征在于,在每个数据库集群中包含一个主数据库、若干个业务数据库和若干个查询数据库;相对应的,数据源类型包含以下三个枚举值:主库、业务库、查询库。
4.根据权利要求1所述的一种大型应用***的数据库可横向扩展方法,其特征在于,所述数据路由维度为一个记录列表,列表中每一行包括以下属性:维度标识、维度编号、维度名称、是否必选、维度描述;其中维度标识是数据主键,维度编号是维度可人工识别的唯一标识,是否必选用于标识该纬度值是否允许为空值。
5.根据权利要求4所述的一种大型应用***的数据库可横向扩展方法,其特征在于,数据路由映射关系为一个记录列表,列表中每一行包括以下属性:维度值集合、数据源标识、描述,其中维度值组合是基于数据路由维度的记录列表构成的多个值的序列信息。
6.根据权利要求2所述的一种大型应用***的数据库可横向扩展方法,其特征在于,上下文数据是访问程序执行过程中的上下文数据信息,在上下文数据中包含维度信息列表,该维度信息列表是键值对列表,其键为数据路由维度中的维度标识,其值为该维度的数据值。
7.根据权利要求5所述的一种大型应用***的数据库可横向扩展方法,其特征在于,访问程序执行过程中,在获取应访问的数据库时,基于上下文数据中包含的维度信息列表,通过对数据路由映射关系中的维度值集合进行查找匹配,从而获取到特定的数据源标识,完成访问。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610595003.3A CN106202540A (zh) | 2016-07-26 | 2016-07-26 | 一种大型应用***的数据库可横向扩展方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610595003.3A CN106202540A (zh) | 2016-07-26 | 2016-07-26 | 一种大型应用***的数据库可横向扩展方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106202540A true CN106202540A (zh) | 2016-12-07 |
Family
ID=57495903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610595003.3A Pending CN106202540A (zh) | 2016-07-26 | 2016-07-26 | 一种大型应用***的数据库可横向扩展方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106202540A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106682173A (zh) * | 2016-12-28 | 2017-05-17 | 华南理工大学 | 一种社保大数据olap预处理方法及在线分析查询方法 |
WO2019097362A1 (en) * | 2017-11-17 | 2019-05-23 | International Business Machines Corporation | Automatically connecting external data to business analytics process |
CN110661684A (zh) * | 2019-09-29 | 2020-01-07 | 北京浪潮数据技术有限公司 | 流量统计方法及装置 |
CN110765190A (zh) * | 2019-09-30 | 2020-02-07 | 北京淇瑀信息科技有限公司 | 一种数据库集群自动扩容的方法、装置和电子设备 |
WO2021197432A1 (zh) * | 2020-04-02 | 2021-10-07 | 北京京东振世信息技术有限公司 | 一种数据库集群的路由方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462421A (zh) * | 2014-12-12 | 2015-03-25 | 中国科学院声学研究所 | 基于键-值数据库的多租户扩展方法 |
CN105138638A (zh) * | 2015-08-24 | 2015-12-09 | 浪潮通用软件有限公司 | 一种基于应用层的数据库分布方法 |
CN105677915A (zh) * | 2016-02-29 | 2016-06-15 | 浪潮通用软件有限公司 | 一种基于引擎的分布式业务数据存取方法 |
-
2016
- 2016-07-26 CN CN201610595003.3A patent/CN106202540A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462421A (zh) * | 2014-12-12 | 2015-03-25 | 中国科学院声学研究所 | 基于键-值数据库的多租户扩展方法 |
CN105138638A (zh) * | 2015-08-24 | 2015-12-09 | 浪潮通用软件有限公司 | 一种基于应用层的数据库分布方法 |
CN105677915A (zh) * | 2016-02-29 | 2016-06-15 | 浪潮通用软件有限公司 | 一种基于引擎的分布式业务数据存取方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106682173A (zh) * | 2016-12-28 | 2017-05-17 | 华南理工大学 | 一种社保大数据olap预处理方法及在线分析查询方法 |
CN106682173B (zh) * | 2016-12-28 | 2019-10-18 | 华南理工大学 | 一种社保大数据olap预处理方法及在线分析查询方法 |
WO2019097362A1 (en) * | 2017-11-17 | 2019-05-23 | International Business Machines Corporation | Automatically connecting external data to business analytics process |
GB2581917A (en) * | 2017-11-17 | 2020-09-02 | Ibm | Automatically connecting external data to business analytics process |
US10956420B2 (en) | 2017-11-17 | 2021-03-23 | International Business Machines Corporation | Automatically connecting external data to business analytics process |
US11188536B2 (en) | 2017-11-17 | 2021-11-30 | International Business Machines Corporation | Automatically connecting external data to business analytics process |
CN110661684A (zh) * | 2019-09-29 | 2020-01-07 | 北京浪潮数据技术有限公司 | 流量统计方法及装置 |
CN110765190A (zh) * | 2019-09-30 | 2020-02-07 | 北京淇瑀信息科技有限公司 | 一种数据库集群自动扩容的方法、装置和电子设备 |
CN110765190B (zh) * | 2019-09-30 | 2023-09-26 | 北京淇瑀信息科技有限公司 | 一种数据库集群自动扩容的方法、装置和电子设备 |
WO2021197432A1 (zh) * | 2020-04-02 | 2021-10-07 | 北京京东振世信息技术有限公司 | 一种数据库集群的路由方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106202540A (zh) | 一种大型应用***的数据库可横向扩展方法 | |
US9081837B2 (en) | Scoped database connections | |
Aboutorabiª et al. | Performance evaluation of SQL and MongoDB databases for big e-commerce data | |
CN106934014B (zh) | 一种基于Hadoop的网络数据挖掘与分析平台及其方法 | |
JP5856618B2 (ja) | 地理空間データベース統合方法、およびデバイス | |
US8943059B2 (en) | Systems and methods for merging source records in accordance with survivorship rules | |
WO2012012968A1 (zh) | 一种分布式并行数据库***的数据分区方法 | |
US20120278313A1 (en) | Scalable rendering of large spatial databases | |
US10877995B2 (en) | Building a distributed dwarf cube using mapreduce technique | |
CN110597870A (zh) | 一种企业关系挖掘方法 | |
CN103412897A (zh) | 一种基于分布式结构的并行数据处理方法 | |
US20140074774A1 (en) | Distributed data base system and data structure for distributed data base | |
CN102521225A (zh) | 增量数据抽取装置和增量数据抽取方法 | |
CN107423390B (zh) | 一种基于oltp-olap混合关系型数据库***内部的数据实时同步方法 | |
CN112084182A (zh) | 一种用于数据集市和数据仓库的数据建模方法 | |
US20150169656A1 (en) | Distributed database system | |
CN107704597A (zh) | 关系型数据库至Hive的ETL脚本创建方法 | |
CN113377758A (zh) | 一种数据质量稽核引擎及其稽核方法 | |
Kandt et al. | Regional surnames and genetic structure in Great Britain | |
CN114022188A (zh) | 目标人群圈选方法、装置、设备以及存储介质 | |
Yin et al. | A MySQL-Based Software System of Urban Land Planning Database of Shanghai in China. | |
Cigánek | Design and implementation of open-data data warehouse | |
CN111552730A (zh) | 数据分发方法、装置、电子设备、存储介质 | |
CN110941662A (zh) | 科研合作关系的图示化方法、***、存储介质、及终端 | |
CN101036140A (zh) | 产生分析数据结构的自定义等级体系的***和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into 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: 20161207 |