CN113849458A - MongoDB中间件及数据存储方法和数据迁移方法 - Google Patents
MongoDB中间件及数据存储方法和数据迁移方法 Download PDFInfo
- 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
Links
- 238000013508 migration Methods 0.000 title claims abstract description 25
- 230000005012 migration Effects 0.000 title claims abstract description 25
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000013500 data storage Methods 0.000 title claims abstract description 14
- 238000000638 solvent extraction Methods 0.000 claims description 8
- 238000012795 verification Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 6
- 238000013467 fragmentation Methods 0.000 abstract description 4
- 238000006062 fragmentation reaction Methods 0.000 abstract description 4
- 238000012423 maintenance Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 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/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/119—Details of migration of file systems
-
- 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/214—Database migration support
-
- 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
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中间件的数据存储方法,包括:
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存储数据库反馈数据进行验证,若所述访问请求和反馈数据的信息准确完整则进行数据处理服务,否则就将错误信息进行提示。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117149915A (zh) * | 2023-10-31 | 2023-12-01 | 湖南三湘银行股份有限公司 | 用于云端数据库迁移到开源数据库的方法 |
Citations (4)
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数据分片集群的检测方法及设备 |
-
2021
- 2021-09-18 CN CN202111095845.XA patent/CN113849458A/zh active Pending
Patent Citations (4)
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)
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 |