CN111831663A - 一种基于Mongodb数据库分片技术的数据查询方法 - Google Patents
一种基于Mongodb数据库分片技术的数据查询方法 Download PDFInfo
- Publication number
- CN111831663A CN111831663A CN202010735334.9A CN202010735334A CN111831663A CN 111831663 A CN111831663 A CN 111831663A CN 202010735334 A CN202010735334 A CN 202010735334A CN 111831663 A CN111831663 A CN 111831663A
- Authority
- CN
- China
- Prior art keywords
- database
- data query
- key
- data
- mongodb
- 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 26
- 238000013467 fragmentation Methods 0.000 title claims abstract description 10
- 238000006062 fragmentation reaction Methods 0.000 title claims abstract description 10
- 230000008569 process Effects 0.000 claims description 6
- 239000012634 fragment Substances 0.000 abstract description 11
- 230000011218 segmentation Effects 0.000 description 5
- 230000015654 memory Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000007480 spreading Effects 0.000 description 2
- 238000003892 spreading Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect 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/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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- 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/2455—Query execution
-
- 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
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)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开的基于Mongodb数据库分片技术的数据查询方法,涉及数据库技术领域,通过接收客户端发起的数据查询请求并利用SQL语句解析组件,从预设的配置文件中获取Mongodb数据库片键,利用路由解析组件解析该Mongodb数据库片键,从配置文件中获取与该数据查询请求匹配的Mongodb数据库,从Mongodb数据库中获取该数据查询请求所要查询的数据,可扩展性及灵活性较强,提高了服务器性能及归档数据的查询效率。
Description
技术领域
本发明涉及数据库技术领域,具体涉及一种基于Mongodb数据库分片技术的数据查询方法。
背景技术
Mongodb数据库是一个介于关系数据库和非关系数据库之间的产品,可以存储比较复杂的数据类型,使得Mongodb数据库在得到了广泛的应用。随着数据量的不断增长,需要归档存量数据,而归档后的数据如何对外提供查询服务也是大家面临的难题。
针对上述问题,目前的方案是采用数据库分片技术,以降低CPU、内存和IO的压力。Mongodb数据库分片技术类似MySQL数据库的水平切分和垂直切分。垂直扩展的方式就是进行集群扩展,添加更多的CPU,内存,磁盘空间等。
数据库分片技术本质上是通过片键将所有数据集做切片,对所有的读写操作按照片键切分到不同的分片副本集上。针对归档数据的查询,该方案存在以下缺陷:
(1)由于需要配置服务器及Mongodb数据库路由,请求链路较长,导致服务器性能下降;
(2)由于需要通过分片服务器架设,运维层面较为笨重,灵活性较弱;
(3)需要在Mongodb配置上指定片键切割方案,使用者无法快速完成片键扩展,扩展性较弱,导致归档数据的查询效率较低。
发明内容
为解决现有技术的不足,本发明实施例提供了一种基于Mongodb数据库分片技术的数据查询方法,该方法包括以下步骤:
接收客户端发起的数据查询请求并利用SQL语句解析组件,从预设的配置文件中获取Mongodb数据库片键;
利用路由解析组件解析所述Mongodb数据库片键,从所述配置文件中获取与所述数据查询请求匹配的Mongodb数据库;
从所述Mongodb数据库中获取所述数据查询请求所要查询的数据。
优选地,所述配置文件的创建过程包括:
设置Mongodb数据库片键并根据所述Mongodb数据库片键的类型,为所述Mongodb数据库片键配置相应的参数;
分别为不同的Mongodb数据库片键配置相应的Mongodb数据库连接及认证信息;
分别为各个Mongodb数据库配置连接池信息,生成yml格式的配置文件。
优选地,解析所述Mongodb数据库片键包括:
若存在跨库场景,则获取递增片键类型的Mongodb数据库,将所述数据查询请求路由至指定的Mongodb数据库。
优选地,所述Mongodb数据库片键包括:递增片键、哈希片键、组合片键及标签片键。
优选地,路由解析组件包括:数据查询类型的SQL语句解析组件、数据增加类型的SQL语句解析组件、数据更新类型的SQL语句解析组件。
本发明实施例提供的基于Mongodb数据库的数据查询方法具有以下有益效果:
通过为不同的Mongodb数据库片键配置相应的Mongodb数据库连接及认证信息,生成了一个轻量级、易用及易于扩展的Mongodb数据库分库插件,可以无缝嵌套当前流行的Spring Boot框架中,提高了服务器性能,能够根据业务需要,灵活定制扩展,快速完成归档数据的查询。
具体实施方式
以下结合具体实施例对本发明作具体的介绍。
术语解释
分片技术:将数据存储在多个机器上的一种方案。当数据集超过单台服务器的容量,服务器的内存、磁盘IO都会有问题,即超过单台服务器的性能瓶颈。此时有两种解决方案,垂直扩展和水平扩展。
垂直扩展,增加CPU,增加容量,但高性能系统的CPU和容量不成比例,这样扩展成本大,并且有上限;
水平扩展,将数据分发到多个服务器,每个服务器是一个单独的数据库,各个服务器加起来组成一个逻辑数据库,把写压力和操作分流到不同服务器,提高容量和吞吐量。
Mongodb数据库的文档是无模式的,不固定结构,因此只能进行水平分片。当块超过指定大小或者文档数超过最大文档数,MongoDB数据库尝试分割这个块,若分割成功,把它标记为一个大块避免重复分割,拆分块的关键就是片键。
本发明实施例提供的基于Mongodb数据库分片技术的数据查询方法包括以下步骤:
S101,接收客户端发起的数据查询请求并利用SQL语句解析组件,从预设的配置文件中获取Mongodb数据库片键。
S102,利用路由解析组件解析该Mongodb数据库片键,从配置文件中获取与该数据查询请求匹配的Mongodb数据库。
其中,片键是文档的一个属性字段或者一个复合索引字段,一旦建立不能改变。片键是分片拆分数据的关键,片键的选择直接影响集群的性能。Mongodb数据库首先根据片键划分块,当块超过指定大小(默认64M),然后把块分到其他的分片上。
S103,从Mongodb数据库中获取该数据查询请求所要查询的数据。
可选地,配置文件的创建过程包括:
设置Mongodb数据库片键并根据Mongodb数据库片键的类型,为Mongodb数据库片键配置相应的参数;
分别为不同的Mongodb数据库片键配置相应的Mongodb数据库连接及认证信息;
分别为各个Mongodb数据库配置连接池信息,生成yml格式的配置文件。
可选地,解析该Mongodb数据库片键包括:
若存在跨库场景,则获取递增片键类型的Mongodb数据库,将所述数据查询请求路由至指定的Mongodb数据库。
其中,跨库场景为由于上报的数据大量存储于Mongodb数据库,数据库的性能逐渐成为瓶颈,为了解决该问题,将一年前上报的数据归档至一个数据库、近一年上报的数据存储到另一个数据库的场景,通过时间分片规则自动路由到指定的数据库。
可选地,Mongodb数据库片键包括:递增片键、哈希片键、组合片键及标签片键。
其中,递增片键比较常见,比如使用时间戳、日期等自增的主键,此类片键的写入操作集中在一个分片服务器上,写入不具有分散性,这会导致单台服务器压力较大,但分割比较容易,这台服务器可能会成为性能瓶颈;哈希片键使用一个哈希索引字段作为片键,优点是使数据在各节点分布比较均匀,数据写入可随机分发到每个分片服务器上,把写入的压力分散到了各个服务器上。但是读也是随机的,可能会命中更多的分片服务器;组合片键为在数据库中没有比较合适的片键供选择,或者是打算使用的片键基数太小(即变化少如星期只有7天可变化)时使用,可以选另一个字段使用组合片键,甚至可以添加冗余字段来组合,一般是粗粒度与细粒度进行组合;数据存储在指定的分片服务器上,可以为分片添加标签,形成标签片键,然后指定相应的标签出现在相应的分片服务器上,就可以使用标签让均衡器指定分发。
可选地,路由解析组件包括:数据查询类型的SQL语句解析组件、数据增加类型的SQL语句解析组件、数据更新类型的SQL语句解析组件。
本发明实施例提供的基于Mongodb数据库分片技术的数据查询方法,通过接收客户端发起的数据查询请求并利用SQL语句解析组件,从预设的配置文件中获取Mongodb数据库片键,利用路由解析组件解析该Mongodb数据库片键,从配置文件中获取与该数据查询请求匹配的Mongodb数据库,从Mongodb数据库中获取该数据查询请求所要查询的数据,可扩展性及灵活性较强,提高了服务器性能及归档数据的查询效率。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (5)
1.一种基于Mongodb数据库分片技术的数据查询方法,其特征在于,包括:
接收客户端发起的数据查询请求并利用SQL语句解析组件,从预设的配置文件中获取Mongodb数据库片键;
利用路由解析组件解析所述Mongodb数据库片键,从所述配置文件中获取与所述数据查询请求匹配的Mongodb数据库;
从所述Mongodb数据库中获取所述数据查询请求所要查询的数据。
2.根据权利要求1所述的基于Mongodb数据库分片技术的数据查询方法,其特征在于,所述配置文件的创建过程包括:
设置Mongodb数据库片键并根据所述Mongodb数据库片键的类型,为所述Mongodb数据库片键配置相应的参数;
分别为不同的Mongodb数据库片键配置相应的Mongodb数据库连接及认证信息;
分别为各个Mongodb数据库配置连接池信息,生成yml格式的配置文件。
3.根据权利要求1所述的基于Mongodb数据库分片技术的数据查询方法,其特征在于,解析所述Mongodb数据库片键包括:
若存在跨库场景,则获取递增片键类型的Mongodb数据库,将所述数据查询请求路由至指定的Mongodb数据库。
4.根据权利要求1所述的基于Mongodb数据库分片技术的数据查询方法,其特征在于,所述Mongodb数据库片键包括:递增片键、哈希片键、组合片键及标签片键。
5.根据权利要求1所述的基于Mongodb数据库分片技术的数据查询方法,其特征在于,路由解析组件包括:数据查询类型的SQL语句解析组件、数据增加类型的SQL语句解析组件、数据更新类型的SQL语句解析组件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010735334.9A CN111831663A (zh) | 2020-07-28 | 2020-07-28 | 一种基于Mongodb数据库分片技术的数据查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010735334.9A CN111831663A (zh) | 2020-07-28 | 2020-07-28 | 一种基于Mongodb数据库分片技术的数据查询方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111831663A true CN111831663A (zh) | 2020-10-27 |
Family
ID=72926329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010735334.9A Pending CN111831663A (zh) | 2020-07-28 | 2020-07-28 | 一种基于Mongodb数据库分片技术的数据查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111831663A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114385079A (zh) * | 2021-12-21 | 2022-04-22 | 联通智网科技股份有限公司 | 数据写入方法、数据读取方法和数据读写系统 |
CN114637749A (zh) * | 2022-03-17 | 2022-06-17 | 中国科学院新疆生态与地理研究所 | 一种基于片键策略的遥感数据分片存储方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106547755A (zh) * | 2015-09-17 | 2017-03-29 | 北京国双科技有限公司 | 一种基于片键的数据处理方法及装置 |
CN108829805A (zh) * | 2018-06-06 | 2018-11-16 | 福建南威软件有限公司 | 一种基于MongoDB的分片存储方法 |
CN110457363A (zh) * | 2019-07-05 | 2019-11-15 | 中国平安人寿保险股份有限公司 | 基于分布式数据库的查询方法、装置及存储介质 |
CN111367884A (zh) * | 2020-02-26 | 2020-07-03 | 卓望数码技术(深圳)有限公司 | 分片数据库路由方法、系统、设备及存储介质 |
-
2020
- 2020-07-28 CN CN202010735334.9A patent/CN111831663A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106547755A (zh) * | 2015-09-17 | 2017-03-29 | 北京国双科技有限公司 | 一种基于片键的数据处理方法及装置 |
CN108829805A (zh) * | 2018-06-06 | 2018-11-16 | 福建南威软件有限公司 | 一种基于MongoDB的分片存储方法 |
CN110457363A (zh) * | 2019-07-05 | 2019-11-15 | 中国平安人寿保险股份有限公司 | 基于分布式数据库的查询方法、装置及存储介质 |
CN111367884A (zh) * | 2020-02-26 | 2020-07-03 | 卓望数码技术(深圳)有限公司 | 分片数据库路由方法、系统、设备及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114385079A (zh) * | 2021-12-21 | 2022-04-22 | 联通智网科技股份有限公司 | 数据写入方法、数据读取方法和数据读写系统 |
CN114637749A (zh) * | 2022-03-17 | 2022-06-17 | 中国科学院新疆生态与地理研究所 | 一种基于片键策略的遥感数据分片存储方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2015106711A1 (zh) | 一种为半结构化数据构建NoSQL数据库索引的方法及装置 | |
US10078681B2 (en) | Differentiated secondary index maintenance in log structured NoSQL data stores | |
CN102395962B (zh) | 对数据库表的哈希和列表组合划分 | |
US9639542B2 (en) | Dynamic mapping of extensible datasets to relational database schemas | |
CN107491487B (zh) | 一种全文数据库架构及位图索引创建、数据查询方法、服务器及介质 | |
US20150234896A1 (en) | Adaptive distribution method for hash operations | |
US11030196B2 (en) | Method and apparatus for processing join query | |
CN107085570B (zh) | 数据处理方法、应用服务器和路由器 | |
CN102169507A (zh) | 一种分布式实时搜索引擎 | |
CN106294695A (zh) | 一种面向实时大数据搜索引擎的实现方法 | |
US20220083618A1 (en) | Method And System For Scalable Search Using MicroService And Cloud Based Search With Records Indexes | |
US20190057133A1 (en) | Systems and methods of bounded scans on multi-column keys of a database | |
CN104133867A (zh) | 分布式顺序表片内二级索引方法及系统 | |
US10929354B2 (en) | Metadata server and method for distributing metadata in directories using the same | |
JP2015069461A (ja) | 情報処理装置 | |
CN111831663A (zh) | 一种基于Mongodb数据库分片技术的数据查询方法 | |
US20170270149A1 (en) | Database systems with re-ordered replicas and methods of accessing and backing up databases | |
US20190377895A1 (en) | Methods for data masking and devices thereof | |
US11669505B2 (en) | Partitioning, processing, and protecting data | |
US11675743B2 (en) | Web-scale distributed deduplication | |
US20160301572A1 (en) | Communication control device, communication control method, and computer program product | |
US8239417B2 (en) | System, method, and computer program product for accessing and manipulating remote datasets | |
CN101408882B (zh) | 一种授权文档的检索方法和系统 | |
CN111125248A (zh) | 一种大数据存储解析查询系统 | |
CN111221814A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201027 |