CN111831663A - 一种基于Mongodb数据库分片技术的数据查询方法 - Google Patents

一种基于Mongodb数据库分片技术的数据查询方法 Download PDF

Info

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
Application number
CN202010735334.9A
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.)
Beijing Shouqi Zhixing Technology Co Ltd
Original Assignee
Beijing Shouqi Zhixing Technology 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 Beijing Shouqi Zhixing Technology Co Ltd filed Critical Beijing Shouqi Zhixing Technology Co Ltd
Priority to CN202010735334.9A priority Critical patent/CN111831663A/zh
Publication of CN111831663A publication Critical patent/CN111831663A/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/2228Indexing structures
    • 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/2228Indexing structures
    • G06F16/2255Hash tables
    • 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/2455Query execution
    • 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
    • G06F16/278Data 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数据库是一个介于关系数据库和非关系数据库之间的产品,可以存储比较复杂的数据类型,使得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语句解析组件。
CN202010735334.9A 2020-07-28 2020-07-28 一种基于Mongodb数据库分片技术的数据查询方法 Pending CN111831663A (zh)

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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114385079A (zh) * 2021-12-21 2022-04-22 联通智网科技股份有限公司 数据写入方法、数据读取方法和数据读写系统

Citations (4)

* Cited by examiner, † Cited by third party
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 卓望数码技术(深圳)有限公司 分片数据库路由方法、系统、设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114385079A (zh) * 2021-12-21 2022-04-22 联通智网科技股份有限公司 数据写入方法、数据读取方法和数据读写系统

Similar Documents

Publication Publication Date Title
WO2015106711A1 (zh) 一种为半结构化数据构建NoSQL数据库索引的方法及装置
US10078681B2 (en) Differentiated secondary index maintenance in log structured NoSQL data stores
CN102395962B (zh) 对数据库表的哈希和列表组合划分
US20150234896A1 (en) Adaptive distribution method for hash operations
CN102169507A (zh) 一种分布式实时搜索引擎
JP6281225B2 (ja) 情報処理装置
US20190057133A1 (en) Systems and methods of bounded scans on multi-column keys of a database
US11030196B2 (en) Method and apparatus for processing join query
CN104133867A (zh) 分布式顺序表片内二级索引方法及系统
US20220083618A1 (en) Method And System For Scalable Search Using MicroService And Cloud Based Search With Records Indexes
CN110633378A (zh) 一种支持超大规模关系网络的图数据库构建方法
US10929354B2 (en) Metadata server and method for distributing metadata in directories using the same
US20190377895A1 (en) Methods for data masking and devices thereof
US20210357377A1 (en) Data partitioning for protecting and processing 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) 一种授权文档的检索方法和系统
CN111831663A (zh) 一种基于Mongodb数据库分片技术的数据查询方法
US20170270149A1 (en) Database systems with re-ordered replicas and methods of accessing and backing up databases
CN111125248A (zh) 一种大数据存储解析查询系统
CN111221814B (zh) 二级索引的构建方法、装置及设备
US8290935B1 (en) Method and system for optimizing database system queries
CN113486023A (zh) 数据库分库分表的方法及装置
KR20160139694A (ko) 하둡과 HBase를 이용한 선박설계데이터관리 시스템

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