CN105653680A - 一种基于文档型数据库的存储数据的方法及系统 - Google Patents
一种基于文档型数据库的存储数据的方法及系统 Download PDFInfo
- Publication number
- CN105653680A CN105653680A CN201511019329.3A CN201511019329A CN105653680A CN 105653680 A CN105653680 A CN 105653680A CN 201511019329 A CN201511019329 A CN 201511019329A CN 105653680 A CN105653680 A CN 105653680A
- Authority
- CN
- China
- Prior art keywords
- data
- mongodb
- request
- node
- database server
- 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
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开一种基于文档型数据库的存储数据的方法,其能够避免由大量数据操作、请求而引起的数据库超时、死锁现象,对于日益增长的数据能够把这些数据分到多个服务器上存储,从而提升网站速度,进而提高用户的体验。包括步骤:(1)MSSQL数据库服务器接收写入数据的请求;(2)通过一致性哈希算法来将数据请求均匀地分布在若干个MongoDb数据库服务器节点上;(3)将写入该若干个库中的代码添加到一个事务中来完成数据同步,从而保障MongoDb和MSSQL中的数据的一致性。还提供了一种基于文档型数据库的存储数据的系统。
Description
技术领域
本发明属于数据存储的技术领域,具体地涉及一种基于文档型数据库的存储数据的方法,以及基于文档型数据库的存储数据的系统。
背景技术
随着计算机信息技术、互联网技术的迅速发展,它们的应用也慢慢渗透到人们生产和生活的各个领域中。作为畜牧业生产的一个重要组成部分的养猪业当然也不例外地引入了现代科技。现代猪场生产管理已经从传统的依靠人工输入猪场数据转变为通过excel表格批量录入。
但是,随着系统管理的猪只数量越来越多,日常生产记录的数据量也越来越大,这样会出现大批量的插入数据、实时数据的查询等等操作与要求,很容易导致数据库出现死锁、宕机等情况;进而造成系统变慢,最终无法继续提供服务。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供一种基于文档型数据库的存储数据的方法,其能够避免由大量数据操作、请求而引起的数据库超时、死锁现象,对于日益增长的数据能够把这些数据分到多个服务器上存储,从而提升网站速度,进而提高用户的体验。
本发明的技术解决方案是:这种基于文档型数据库的存储数据的方法,包括以下步骤:
(1)MSSQL数据库服务器接收写入数据的请求;
(2)通过一致性哈希算法来将数据请求均匀地分布在若干个MongoDb数据库服务器节点上;
(3)将写入该若干个库中的代码添加到一个事务中来完成数据同步,从而保障MongoDb和MSSQL中的数据的一致性。
还提供了一种基于文档型数据库的存储数据的系统,其包括:
MSSQL数据库服务器,其配置来接收写入数据和读取数据的请求;
MongoDb数据库服务器,其配置来接收写入数据和读取数据的请求;
数据请求分配模块,其配置来通过一致性哈希算法来将数据请求均匀地分布在若干个MongoDb数据库服务器节点上;
数据同步模块,其配置来将写入该若干个库中的代码添加到一个事务中来完成数据同步,从而保障MongoDb和MSSQL中的数据的一致性。
本发明通过一致性哈希算法来将数据请求均匀地分布在若干个MongoDb数据库服务器节点上,再将写入该若干个库中的代码添加到一个事务中来完成数据同步,所以当存储数据量及操作很多时,能够将数据分布到多个数据库服务器上,因此能够避免由大量数据操作、请求而引起的数据库超时、死锁现象,对于日益增长的数据能够把这些数据分到多个服务器上存储,从而提升网站速度,进而提高用户的体验。
附图说明
图1为根据本发明的基于文档型数据库的存储数据的方法的流程图;
图2为根据本发明的步骤(2)的流程示意图;
图3为根据本发明的步骤(3)的流程示意图;
图4为根据本发明的基于文档型数据库的存储数据的系统的结构示意图。
图5是根据本发明的一个优选实施例的写入模型图。
具体实施方式
如图1所示,这种基于文档型数据库的存储数据的方法,包括以下步骤:
(1)MSSQL数据库服务器接收写入数据的请求;
(2)通过一致性哈希算法来将数据请求均匀地分布在若干个MongoDb数据库服务器节点上;
(3)将写入该若干个库中的代码添加到一个事务中来完成数据同步,从而保障MongoDb和MSSQL中的数据的一致性。
更进一步地,如图2所示,所述步骤(2)包括以下分步骤:
(2.1)寻找MongoDb数据库服务器节点,如果找到该节点则执行步骤(2.4),否则执行步骤(2.2);
(2.2)得到大于当前节点的子地图;
(2.3)从子地图取出第一个节点,将该节点是大于且离子地图最近的节点;
(2.4)将该节点取作所求节点;
(2.5)结束。
具体地,分布式存储时,如何均匀的把请求分发的不同的服务器节点上,相关实现代码如下:
更进一步地,如图3所示,所述步骤(3)包括以下分步骤:
(3.1)验证通过的请求操作;
(3.2)开启事务;
(3.3)判断是否为MSSQL操作,是则执行步骤(3.4),否则执行步骤(3.5);
(3.4)判断是否为MongoDb操作,是则跳转到步骤(3.8),否则执行步骤(3.5);
(3.5)进行回滚数据库操作;
(3.6)判断重新提交次数是否小于3,是则执行步骤(3.2),否则执行步骤(3.7);
(3.7)写入日志,执行步骤(3.8);
(3.8)结束。
具体地,如何保证生产数据可以在两个库中同步,把入两个库中的代码添加到一个事务中来完成的具体实现代码如下:
更进一步地,所述步骤(3.7)中在执行步骤(3.8)之后,进行人工处理。
更进一步地,所述步骤(3.4)中,如果是跳转到步骤(3.8),则数据同步完成。
以下给出一个具体的实施例:
母猪、公猪、肥猪的大部分业务都涉及到转舍操作,对应的转舍表数据每日会有大量的新增数据,通过把这三张表(母猪、公猪、肥猪这三种猪各具有一张表)的数据写入到MongoDb中来做检索操作,可以大幅提升系统速度;这当中又以母猪的操作量最大,数据增长最快,当单个服务器的存储空间不足时,需要增加新服务器来分存此数据,从而用分布式存储来解决单表过大的问题。图5是根据本发明的一个优选实施例的写入模型图。
如图4所示,还提供了一种基于文档型数据库的存储数据的系统,其包括:
MSSQL数据库服务器,其配置来接收写入数据和读取数据的请求;
MongoDb数据库服务器,其配置来接收写入数据和读取数据的请求;
数据请求分配模块,其配置来通过一致性哈希算法来将数据请求均匀地分布在若干个MongoDb数据库服务器节点上;
数据同步模块,其配置来将写入该若干个库中的代码添加到一个事务中来完成数据同步,从而保障MongoDb和MSSQL中的数据的一致性。
本发明通过一致性哈希算法来将数据请求均匀地分布在若干个MongoDb数据库服务器节点上,再将写入该若干个库中的代码添加到一个事务中来完成数据同步,所以当存储数据量及操作很多时,能够将数据分布到多个数据库服务器上,因此能够避免由大量数据操作、请求而引起的数据库超时、死锁现象,对于日益增长的数据能够把这些数据分到多个服务器上存储,从而提升网站速度,进而提高用户的体验。
本发明的技术效果如下:
1.在高并发读写,高效率存储和访问的场景,可以让系统轻松应付。新用户进入系统时,想快速使用起来系统,准备好了大量的已有数据,可以大批量的导入系统,而尽可能小的影响到当前系统的运行。因为上万的数据对应传统关系型的数据库导入来说是灾难性的,而MongoDb可以轻松应付此情景。
2.单集合数据过于庞大,单机容量无法存储时,可以通过分布式存储来解决此问题。
以上所述,仅是本发明的较佳实施例,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属本发明技术方案的保护范围。
Claims (6)
1.一种基于文档型数据库的存储数据的方法,其特征在于:包括以下步骤:
(1)MSSQL数据库服务器接收写入数据的请求;
(2)通过一致性哈希算法来将数据请求均匀地分布在若干个MongoDb数据库服务器节点上;
(3)将写入该若干个库中的代码添加到一个事务中来完成数据同步,从而保障MongoDb和MSSQL中的数据的一致性。
2.根据权利要求1所述的基于文档型数据库的存储数据的方法,其特征在于:所述步骤(2)包括以下分步骤:
(2.1)寻找MongoDb数据库服务器节点,如果找到该节点则执行步骤(2.4),否则执行步骤(2.2);
(2.2)得到大于当前节点的子地图;
(2.3)从子地图取出第一个节点,将该节点是大于且离子地图最近的节点;
(2.4)将该节点取作所求节点;
(2.5)结束。
3.根据权利要求2所述的基于文档型数据库的存储数据的方法,其特征在于:所述步骤(3)包括以下分步骤:
(3.1)验证通过的请求操作;
(3.2)开启事务;
(3.3)判断是否为MSSQL操作,是则执行步骤(3.4),否则执行步骤(3.5);
(3.4)判断是否为MongoDb操作,是则跳转到步骤(3.8),否则执行步骤(3.5);
(3.5)进行回滚数据库操作;
(3.6)判断重新提交次数是否小于3,是则执行步骤(3.2),否则执行步骤(3.7);
(3.7)写入日志,执行步骤(3.8);
(3.8)结束。
4.根据权利要求3所述的基于文档型数据库的存储数据的方法,其特征在于:所述步骤(3.7)中在执行步骤(3.8)之后,进行人工处理。
5.根据权利要求3所述的基于文档型数据库的存储数据的方法,其特征在于:所述步骤(3.4)中,如果是跳转到步骤(3.8),则数据同步完成。
6.一种基于文档型数据库的存储数据的系统,其特征在于:其包括:
MSSQL数据库服务器,其配置来接收写入数据和读取数据的请求;
MongoDb数据库服务器,其配置来接收写入数据和读取数据的请求;
数据请求分配模块,其配置来通过一致性哈希算法来将数据请求均匀地分布在若干个MongoDb数据库服务器节点上;
数据同步模块,其配置来将写入该若干个库中的代码添加到一个事务中来完成数据同步,从而保障MongoDb和MSSQL中的数据的一致性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511019329.3A CN105653680A (zh) | 2015-12-29 | 2015-12-29 | 一种基于文档型数据库的存储数据的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511019329.3A CN105653680A (zh) | 2015-12-29 | 2015-12-29 | 一种基于文档型数据库的存储数据的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105653680A true CN105653680A (zh) | 2016-06-08 |
Family
ID=56478453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511019329.3A Pending CN105653680A (zh) | 2015-12-29 | 2015-12-29 | 一种基于文档型数据库的存储数据的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105653680A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106790273A (zh) * | 2017-02-17 | 2017-05-31 | 深圳市中博睿存信息技术有限公司 | 分布式文件系统中流媒体数据的加密存储方法和装置 |
CN108256284A (zh) * | 2018-01-02 | 2018-07-06 | 中山大学 | 一种药物虚拟筛选方法 |
WO2020107352A1 (zh) * | 2018-11-29 | 2020-06-04 | 袁振南 | 日志序列号生成方法、装置及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012004071A1 (en) * | 2010-07-09 | 2012-01-12 | Nokia Siemens Networks Oy | Apparatus, method and system for node discovering |
CN103810275A (zh) * | 2014-02-13 | 2014-05-21 | 清华大学 | 用于非关系与关系型数据库间数据交互的方法和装置 |
CN104050270A (zh) * | 2014-06-23 | 2014-09-17 | 成都康赛信息技术有限公司 | 一种基于一致性哈希算法的分布式存储方法 |
CN104572077A (zh) * | 2014-12-12 | 2015-04-29 | 百度在线网络技术(北京)有限公司 | 数据库事务的处理方法及业务系统 |
CN104598587A (zh) * | 2015-01-19 | 2015-05-06 | 深圳市华成峰数据技术有限公司 | 发票真伪查询方法和系统 |
-
2015
- 2015-12-29 CN CN201511019329.3A patent/CN105653680A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012004071A1 (en) * | 2010-07-09 | 2012-01-12 | Nokia Siemens Networks Oy | Apparatus, method and system for node discovering |
CN103810275A (zh) * | 2014-02-13 | 2014-05-21 | 清华大学 | 用于非关系与关系型数据库间数据交互的方法和装置 |
CN104050270A (zh) * | 2014-06-23 | 2014-09-17 | 成都康赛信息技术有限公司 | 一种基于一致性哈希算法的分布式存储方法 |
CN104572077A (zh) * | 2014-12-12 | 2015-04-29 | 百度在线网络技术(北京)有限公司 | 数据库事务的处理方法及业务系统 |
CN104598587A (zh) * | 2015-01-19 | 2015-05-06 | 深圳市华成峰数据技术有限公司 | 发票真伪查询方法和系统 |
Non-Patent Citations (2)
Title |
---|
ZHIKUN CHEN.ETC: "Hybrid Range Consistent Hash Partitioning Strategy--A New Data Partition Strategy for NoSQL Database", 《2013 12TH IEEE INTERNATIONAL CONFERENCE ON TRUST, SECURITY AND PRIVACY IN COMPUTING AND COMMUNICATIONS》 * |
杨彧剑: "分布式存储系统中一致性哈希算法的研究", 《电脑知识与技术》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106790273A (zh) * | 2017-02-17 | 2017-05-31 | 深圳市中博睿存信息技术有限公司 | 分布式文件系统中流媒体数据的加密存储方法和装置 |
CN106790273B (zh) * | 2017-02-17 | 2020-08-21 | 北京同有飞骥科技股份有限公司 | 分布式文件系统中流媒体数据的加密存储方法和装置 |
CN108256284A (zh) * | 2018-01-02 | 2018-07-06 | 中山大学 | 一种药物虚拟筛选方法 |
WO2020107352A1 (zh) * | 2018-11-29 | 2020-06-04 | 袁振南 | 日志序列号生成方法、装置及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110321344B (zh) | 关联数据的信息查询方法、装置、计算机设备及存储介质 | |
CN111046034B (zh) | 管理内存数据及在内存中维护数据的方法和系统 | |
US9047330B2 (en) | Index compression in databases | |
CN108536761A (zh) | 报表数据查询方法及服务器 | |
Perez et al. | Ringo: Interactive graph analytics on big-memory machines | |
CN105117417A (zh) | 一种读优化的内存数据库Trie树索引方法 | |
CN103678556A (zh) | 列式数据库处理的方法和处理设备 | |
CN102110121A (zh) | 一种数据处理方法及其系统 | |
CN103425762A (zh) | 基于Hadoop平台的电信运营商海量数据处理方法 | |
CN104111958A (zh) | 一种数据查询方法及装置 | |
CN104462185A (zh) | 一种基于混合结构的数字图书馆云存储系统 | |
CN105069151A (zh) | HBase二级索引构建装置和方法 | |
CN103440246A (zh) | 用于MapReduce的中间结果数据排序方法及系统 | |
CN104572505A (zh) | 一种保证海量数据缓存最终一致性的系统及方法 | |
EP3136261A1 (en) | Method and device for data search | |
CN111008521A (zh) | 生成宽表的方法、装置及计算机存储介质 | |
CN106648897A (zh) | 一种支持均衡资源的solr集群扩展方法及系统 | |
CN105653680A (zh) | 一种基于文档型数据库的存储数据的方法及系统 | |
US20150039558A1 (en) | Database management method, database system and medium | |
CN104239470A (zh) | 一种面向分布式环境的空间数据复合处理系统和方法 | |
CN103365987A (zh) | 一种基于共享磁盘架构的集群数据库系统及数据处理方法 | |
CN102724301B (zh) | 云数据库系统以及云数据读写处理方法、设备 | |
WO2016175880A1 (en) | Merging incoming data in a database | |
CN104268146A (zh) | 一种适合分析型应用的静态b+树索引方法 | |
CN104376054B (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: 20160608 |