CN113849458A - MongoDB中间件及数据存储方法和数据迁移方法 - Google Patents

MongoDB中间件及数据存储方法和数据迁移方法 Download PDF

Info

Publication number
CN113849458A
CN113849458A CN202111095845.XA CN202111095845A CN113849458A CN 113849458 A CN113849458 A CN 113849458A CN 202111095845 A CN202111095845 A CN 202111095845A CN 113849458 A CN113849458 A CN 113849458A
Authority
CN
China
Prior art keywords
storage
mongodb
data
database
middleware
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
CN202111095845.XA
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.)
Sichuan Changhong Network Technology Co Ltd
Original Assignee
Sichuan Changhong Network 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 Sichuan Changhong Network Technology Co Ltd filed Critical Sichuan Changhong Network Technology Co Ltd
Priority to CN202111095845.XA priority Critical patent/CN113849458A/zh
Publication of CN113849458A publication Critical patent/CN113849458A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/119Details of migration of file systems
    • 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/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • 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

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

本发明提供了一种MongoDB中间件及数据存储方法和数据迁移方法,本发明一方面通过于MongoDB中间件中设置与MongoDB存储数据库相配置的存储策略,并将所述MongoDB中间件与所述MongoDB存储数据库相关联,使得可以通过修改所述存储策略对MongoDB存储数据库进行多字段分片,在查询时通过所述存储策略,访问相应的库(服务器)和表,并从中获取数据,极大提升了数据查询的性能。另一方面,只需要通过将所述中间件的存储策略进行修改,使原有MongoDB存储数据库迁移存储到新的服务器,避免了以前需要前端和后端相互配合才能实现数据迁移,同时规避了人为迁移出现数据重复和遗漏的问题。

Description

MongoDB中间件及数据存储方法和数据迁移方法
技术领域
本发明涉及数据库技术领域,尤其涉及一种MongoDB中间件及数据存储方法和数据迁移方法。
背景技术
在互联网和物联网领域中,MongoDB作为数据存储手段广泛的运用到各个业务场景中,但是随着存储数据量的不断加,单机数据存储的查询性能下降问题也随之而来,致使已经不能满足实际业务的需要。MongoDB提供的集群环境下分片存储策略(简称MongoDB集群存储)也逐渐的运用于实际业务中。
但是,在实际使用的过程中,也产生了两个方面的问题,一:MongoDB集群存储本身只能根据单一字段进行分片,把数据存储到不同的服务器,做到了数据的分库处理,但没有发挥数据存储中分表操作也能提升查询性能这一特征,造成了一定的资源浪费;二:随着集群服务器数量的不断调整,存储的策略也随之不断的调整,MongoDB集群存储首先需要运维人员先调整MongoDB分片存储策略,然后需要开发人员去迁移老的数据,把老的数据根据新的规则存储到新的服务器上,整个过程需要开发人员和运维人员协调一致,而且容易出错从而造成脏数据影响系统使用。
发明内容
针对现有技术中所存在的不足,本发明提供了一种MongoDB中间件及数据存储方法和数据迁移方法,以解决相关技术中MongoDB集群存储字段单一和数据迁移复杂的技术问题。
第一方面,本发明提供了一种基于MongoDB中间件的数据存储方法,包括:
S101,配置MongoDB存储数据库的分库分表的存储策略,分库采用单一字段的分库原则,分表采用单个或多个字段的分表原则;
S102,将所述存储策略和所述MongoDB存储资源池关联,并进行缓存和初始化;
S103,根据所述存储策略对所述MongoDB存储数据库的数据进行分库分表。
可选地,S104,解析所述存储策略,根据访问请求对所述MongoDB存储数据库的数据进行分库、分表查询。
第二方面,本发明提供了一种基于MongoDB中间件的数据迁移方法,包括:
S201,接收访问请求,所述中间件对所述访问请求进行分析,根据单个或多个原有存储策略访问相应单个或多个原有服务器,并于单个或多个所述原有服务器找到单个或多个原有表;
S202,在单个或多个所述原有表内获取访问请求的数据;
S203,新增单个或多个服务器、表及存储策略,单个或多个所述新增服务器和单个或多个所述新增表分别与所述中间件进行关联;
S204,缓存和初始化所述新增存储策略,将所述单个或多个原有表内所述访问请求的数据迁移至单个或多个新增服务器和单个或多个新增表内。
第三方面,本发明提供了一种MongoDB中间件,包括:
关联模块,用于与MongoDB存储数据库关联;
生成模块,用于生成MongoDB存储数据库分库分表的存储策略,分库采用单一字段的分库原则,分表采用单个或多个字段的分表原则;
处理模块,用于根据所述存储策略对所述MongoDB存储数据库的数据进行分库分表。
可选地,还包括迁移模块,所述迁移模块用以识别访问请求,并根据所述存储策略完成数据迁移。
可选地,还包括验证模块,所述验证模块用于对所述访问请求和所述MongoDB存储数据库反馈数据进行验证,若所述访问请求和反馈数据的信息准确完整则进行数据处理服务,否则就将错误信息进行提示。
相比于现有技术,本发明具有如下有益效果:
一方面,本发明技术中,于MongoDB中间件中设置与MongoDB存储数据库相配置的存储策略,并将所述MongoDB中间件与所述MongoDB存储数据库相关联,使得可以通过修改所述存储策略对MongoDB存储数据库进行多字段分片,在查询时通过所述存储策略,访问相应的库(服务器)和表,并从中获取数据,极大提升了数据查询的性能。另一方面,只需要通过将所述中间件的存储策略进行修改,使原有MongoDB存储数据库迁移存储到新的服务器,避免了以前需要前端和后端相互配合才能实现数据迁移,同时规避了人为迁移出现数据重复和遗漏的问题。
附图说明
图1为本发明MongoDB中间件存储的一种实施例流程示意图
图2为本发明MongoDB中间件存储的另一种实施例流程示意图;
图3为本发明MongoDB中间件迁移的流程示意图;
图4为本发明MongoDB中间件的系统结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,下面结合附图及实施例对本发明中的技术方案进一步说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参见图1,第一方面,本发明提供了一种基于MongoDB中间件的数据存储方法,包括:
S101,配置MongoDB存储数据库的分库分表的存储策略,分库采用单一字段的分库原则,分表采用单个或多个字段的分表原则;
S102,将所述存储策略和所述MongoDB存储资源池关联,并进行缓存和初始化;
S103,根据所述存储策略对所述MongoDB存储数据库的数据进行分库分表。
本发明所述中间件均为分布式中间件,通过在所述中间件进行存储策略的生成,并将所述中间件和所述MongoDB存储数据库配置,通过所述存储策略对所述MongoDB存储数据库内的数据进行分库分表存储。其中,所述MongoDB存储数据库即为MongoDB的所有数据存储位置;所述MongoDB中间件通过自定义存储策略对MongoDB的数据进行分库(服务器)、分表(集合),所述存储策略通常以数据属性(字段)本身作为分类条件,包括但不限于ip、usename、password等,这些属性决策了数据存储的服务器和集合。
参见图2,例如,通过web界面配置MongoDB存储数据库分库存储:
{10.8.106.1:27017:RANGE_MATCH:xx1:123456};
{10.8.106.2:27017:RANGE_MATCH:xx2:234567};
{10.8.106.3:27017:RANGE_MATCH:xx3:345678};
{10.8.106.4:27017:RANGE_MATCH:xx4:456789};
上述数据分别对应匹配方式的ip、port和匹配数据的用户名、密码,分库采用单一字段作为分库原则,本实施例采用ip作为分库原则举例;
通过web界面配置MongoDB存储数据库分库存储:
规则一:Key:create time,formatt:yyyy(或yyyy.mm)
按照创建时间的年进行分表存储,也可以按照年份和月份
规则二:Key:report_type,formatt:all(每种类型独立分开)
MongoDB存储数据库与MongoDB中间件关联,将MongoDB存储数据库内数据的设备编号(字段)设为分库规则,并设置00-49设备编号范围匹配的一号库(数据源),一号库的ip和端口分别为10.8.106.1:27017;设置55-99设备编号范围匹配的二号库,二号库的ip和端口分别为10.8.106.2:27017;设置EE设备编号精确匹配的三号库,三号库的ip和端口分别为10.8.106.3:27017;设置FF设备编号精确匹配的四号库,四号库的ip和端口分别为10.8.106.4:27017;将上述的yyyy(年份)和report_type(类型)设为分表的规则,因此MongoDB存储数据库的数据验证设备编号(字段)分入不同的库中,再通过分表策略yyyy(年份)和report_type(类型)分入不同的表中,实现了分库分表。
将所述MongoDB中间件和所述MongoDB存储数据库配置等步骤均可通过Web界面完成,如1亿条数据分到10个库,每个库1000万条数据;然后把1000万条数据分到10个表中,每个表100万条数据,这样就形成了单表100万数据量而不是1亿条数据存放到一张表中,避免了MongoDB原生只提供单一字段分片的规则,在中间件内通过设置存储策略,并将中间件与MongoDB存储数据库进行配置,实现对数据的分库分表,提升业务查询性能。
可选地,还包括:S104,解析所述存储策略,根据访问请求对所述MongoDB存储数据库的数据进行分库、分表查询。
本实施例中,通过所述存储策略,开发人员调用MongoDB Client实现对数据分库、分表查询或进行增删改查、部署等。
参见图3,第二方面,本发明提供了一种基于MongoDB中间件的数据迁移方法,包括:
S201,接收访问请求,所述中间件对所述访问请求进行分析,根据单个或多个原有存储策略访问相应单个或多个原有服务器,并于单个或多个所述原有服务器找到单个或多个原有表;
S202,在单个或多个所述原有表内获取访问请求的数据;
S203,新增单个或多个服务器、表及存储策略,单个或多个所述新增服务器和单个或多个所述新增表分别与所述中间件进行关联;
S204,缓存和初始化所述新增存储策略,将所述单个或多个原有表内所述访问请求的数据迁移至单个或多个新增服务器和单个或多个新增表内。
本实施例中,当需要进行数据迁移时,通过修改所述MongoDB中间件内的存储策略,从而实现将原本的数据迁移至新的服务器和表中。以下进行举例:
以前述分库的一号库、二号库、三号库、四号库为例,此处将三号库的EE设为51,现于MongoDB中间件创建一个以设备编号(字段)为分库规则的五号库,五号库设置49-51的设备编号,ip和端口分别为10.8.106.5:27017的数据源,分表规则同样设为上述yyyy(年份)和report_type(类型),并将五号库和存储策略进行缓存和初始化,MongoDB中间件即访问符合条件包含有设备编号(49-51)原有的一号库、二号库、三号库中找寻找年份为yyyy的数据,并将其迁移至五号库。
本操作可以由开发人员在Web进行独立完成,不需要和运维人员进行对接协调一致,同时也规避了人为迁移出现数据重复和遗漏的问题。
参见图4,第三方面,本发明提供了一种MongoDB中间件,包括:
关联模块,用于与MongoDB存储数据库关联;
生成模块,用于生成MongoDB存储数据库分库分表的存储策略,分库采用单一字段的分库原则,分表采用单个或多个字段的分表原则;
处理模块,用于根据所述存储策略对所述MongoDB存储数据库的数据进行分库分表。
可选地,还包括迁移模块,所述迁移模块用以识别访问请求,并根据所述存储策略完成数据迁移。
可选地,还包括验证模块,所述验证模块用于对所述访问请求和所述MongoDB存储数据库反馈数据进行验证,若所述访问请求和反馈数据的信息准确完整则进行数据处理服务,否则就将错误信息进行提示。
本实施例中,所述验证模块在对所述发送模块和所述接收模块的数据进行处理之前,会经过所述验证模块对数据信息的准确完整性进行验证,以免出现丢包等数据缺失的问题。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (6)

1.一种基于MongoDB中间件的数据存储方法,其特征在于,包括:
S101,配置MongoDB存储数据库的分库分表的存储策略,分库采用单一字段的分库原则,分表采用单个或多个字段的分表原则;
S102,将所述存储策略和所述MongoDB存储资源池关联,并进行缓存和初始化;
S103,根据所述存储策略对所述MongoDB存储数据库的数据进行分库分表。
2.如权利要求1所述的基于MongoDB中间件的数据存储方法,其特征在于,还包括:S104,解析所述存储策略,根据访问请求对所述MongoDB存储数据库的数据进行分库、分表查询。
3.一种基于MongoDB中间件的数据迁移方法,其特征在于,包括:
S201,接收访问请求,所述中间件对所述访问请求进行分析,根据单个或多个原有存储策略访问相应单个或多个原有服务器,并于单个或多个所述原有服务器找到单个或多个原有表;
S202,在单个或多个所述原有表内获取访问请求的数据;
S203,新增单个或多个服务器、表及存储策略,单个或多个所述新增服务器和单个或多个所述新增表分别与所述中间件进行关联;
S204,缓存和初始化所述新增存储策略,将所述单个或多个原有表内所述访问请求的数据迁移至单个或多个新增服务器和单个或多个新增表内。
4.一种MongoDB中间件,其特征在于,包括:
关联模块,用于与MongoDB存储数据库关联;
生成模块,用于生成MongoDB存储数据库分库分表的存储策略,分库采用单一字段的分库原则,分表采用单个或多个字段的分表原则;
处理模块,用于根据所述存储策略对所述MongoDB存储数据库的数据进行分库分表。
5.如权利要求4所述的MongoDB中间件,其特征在于,还包括迁移模块,所述迁移模块用以识别访问请求,并根据所述存储策略完成数据迁移。
6.如权利要求5所述的MongoDB中间件,其特征在于,还包括验证模块,所述验证模块用于对所述访问请求和所述MongoDB存储数据库反馈数据进行验证,若所述访问请求和反馈数据的信息准确完整则进行数据处理服务,否则就将错误信息进行提示。
CN202111095845.XA 2021-09-18 2021-09-18 MongoDB中间件及数据存储方法和数据迁移方法 Pending CN113849458A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111095845.XA CN113849458A (zh) 2021-09-18 2021-09-18 MongoDB中间件及数据存储方法和数据迁移方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111095845.XA CN113849458A (zh) 2021-09-18 2021-09-18 MongoDB中间件及数据存储方法和数据迁移方法

Publications (1)

Publication Number Publication Date
CN113849458A true CN113849458A (zh) 2021-12-28

Family

ID=78974434

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111095845.XA Pending CN113849458A (zh) 2021-09-18 2021-09-18 MongoDB中间件及数据存储方法和数据迁移方法

Country Status (1)

Country Link
CN (1) CN113849458A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117149915A (zh) * 2023-10-31 2023-12-01 湖南三湘银行股份有限公司 用于云端数据库迁移到开源数据库的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160188710A1 (en) * 2014-12-29 2016-06-30 Wipro Limited METHOD AND SYSTEM FOR MIGRATING DATA TO NOT ONLY STRUCTURED QUERY LANGUAGE (NoSOL) DATABASE
WO2017012492A1 (zh) * 2015-07-22 2017-01-26 阿里巴巴集团控股有限公司 表单标示符生成方法、表单分流方法和装置
CN109344161A (zh) * 2018-12-04 2019-02-15 大唐网络有限公司 一种基于mongodb的海量数据存储方法
CN110275793A (zh) * 2019-06-27 2019-09-24 咪咕文化科技有限公司 一种用于MongoDB数据分片集群的检测方法及设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160188710A1 (en) * 2014-12-29 2016-06-30 Wipro Limited METHOD AND SYSTEM FOR MIGRATING DATA TO NOT ONLY STRUCTURED QUERY LANGUAGE (NoSOL) DATABASE
WO2017012492A1 (zh) * 2015-07-22 2017-01-26 阿里巴巴集团控股有限公司 表单标示符生成方法、表单分流方法和装置
CN109344161A (zh) * 2018-12-04 2019-02-15 大唐网络有限公司 一种基于mongodb的海量数据存储方法
CN110275793A (zh) * 2019-06-27 2019-09-24 咪咕文化科技有限公司 一种用于MongoDB数据分片集群的检测方法及设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117149915A (zh) * 2023-10-31 2023-12-01 湖南三湘银行股份有限公司 用于云端数据库迁移到开源数据库的方法
CN117149915B (zh) * 2023-10-31 2024-03-29 湖南三湘银行股份有限公司 用于云端数据库迁移到开源数据库的方法

Similar Documents

Publication Publication Date Title
US10628449B2 (en) Method and apparatus for processing database data in distributed database system
CN106033436B (zh) 一种数据库的合并方法
CN105550306A (zh) 多副本数据的读写方法及系统
US20180293257A1 (en) Method for accessing distributed database and distributed data service apparatus
CN112364049B (zh) 数据同步脚本生成方法、系统、终端及存储介质
CN113849458A (zh) MongoDB中间件及数据存储方法和数据迁移方法
US20230099501A1 (en) Masking shard operations in distributed database systems
CN111737228B (zh) 数据库的分库分表方法及装置
CN106990974B (zh) 一种app应用更新方法、装置及电子设备
WO2020259149A1 (zh) 一种实现增量数据比对的系统及方法
CN107357691B (zh) 镜像文件的处理方法及装置
CN105550342B (zh) 一种全透明的分布式数据库的数据处理方法
US10216771B2 (en) Creating and handling identification for a resource in a configuration database
CN112395284A (zh) 数据处理方法、装置、数据库系统、电子设备及存储介质
US8862544B2 (en) Grid based replication
WO2020124619A1 (zh) 数据处理方法、装置、计算机设备及存储介质
CN112000671B (zh) 基于区块链的数据库表处理方法、装置及系统
CN116107801A (zh) 交易处理方法及相关产品
CN115906178B (zh) 一种数据库管理方法、数据订阅端及数据发布端
US11880367B2 (en) Method and apparatus for realizing globally unique index
CN116303780A (zh) 数据查询方法、装置、介质和计算设备
US20230342341A1 (en) Automatic sequencing of database objects
CN113434613A (zh) 关联数据块处理方法及装置
CN116366353A (zh) 基于x86平台的业务登录方法、装置、介质及平台
CN117667968A (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