一种基于mongoDB的数据沙盒实现方法及系统的制作方法

文档序号:10512366阅读:227来源:国知局
一种基于mongoDB的数据沙盒实现方法及系统的制作方法
【专利摘要】本发明涉及一种基于mongoDB的数据沙盒实现方法及系统。所述方法包括服务端接收用户端发送的创建数据沙盒的申请;服务端根据申请在mongoDB上为用户创建独立的数据沙盒;服务端进行数据沙盒的存储及运算资源配额的管理;服务端将数据仓库数据或者外部数据导入到数据沙盒中,在数据沙盒环境中进行数据处理;数据处理完毕,服务端将处理后的数据从数据沙盒中导出,并销毁数据沙盒,回收系统资源。本发明为用户提供一套弹性的数据运行环境,免除本地安装与管理交易数据库的需求;隔离的环境能够有效避免用户的误操作带来的数据风险,减少集中化方式带来的数据仓库被拖慢的情况,提高环境的可用性,降低数据仓库的开销的同时实现高效的数据访问。
【专利说明】
一种基于mongoDB的数据沙盒实现方法及系统
技术领域
[0001 ]本发明涉及计算机软件领域,尤其涉及一种基于mongoDB的数据沙盒实现方法及系统。
【背景技术】
[0002]为应对分析决策需求,企业通过建立集中化的数据仓库为分析人员提供数据分析环境,随着数据的不断积累,集中化的方式导致数据仓库日益庞大;业务的发展,对数据分析的需求增加,越来越多的人需要依赖数据仓库,更多个性化的分析需求需要数据环境支持;数据量的增加以及访问用户的增加,在这种情况下,集中的模式容易导致数据仓库被越拖越慢;分布式数据库或者大数据在性能方面解决了部分问题,仍然不能满足在数据复杂度以及数据量不断增长的情况下,支撑多变的业务需求和个性化分析需求。

【发明内容】

[0003]本发明所要解决的技术问题是针对现有技术的不足,提供一种基于mongoDB的数据沙盒实现方法及系统。本发明是属于计算机软件领域,基于轻量化的mongoDB数据库,实现对mongoDB数据库的配额管理,以多租户的模式为用户提供安全隔离的数据实验环境,以服务的方式即Data-as-a-Service,为用户提供数据运行和分析环境。
[0004]本方案基于mongoDB实现配额管理功能,旨在为企业用户提供一套面向用户隔离的数据即服务的环境,将数据实验和数据仓库的生产数据库环境区别开来,提供配套的管理和工具支撑;一方面将分析人员进行数据探索、分析算法调试的工作转移到数据沙盒上,另一方面,数据沙盒为用户提供个性化数据管理功能,可以将未进入数据仓库的数据导入到自己的数据沙盒进行分析。
[0005]本发明解决上述技术问题的技术方案如下:一种基于mongoDB的数据沙盒实现方法,包括如下步骤:
[0006]SI,服务端接收用户端发送的创建数据沙盒的申请;
[0007]S2,服务端根据申请在mongoDB上为用户创建独立的数据沙盒;
[0008]S3,服务端进行数据沙盒的存储及运算资源配额的管理;
[0009]S4,服务端将数据仓库数据或者外部数据导入到数据沙盒中,在数据沙盒环境中进行数据处理;
[0010]S5,数据处理完毕,服务端将处理后的数据从数据沙盒中导出,并销毁数据沙盒,回收系统资源。
[0011]本发明的有益效果是:本发明通过轻量化的数据库,结合管理功能,快速的为企业实现数据即服务的环境,结合配额管理功能,实现资源的配额数据环境的隔离和硬件资源的高效利用;为用户提供一套弹性的数据运行环境,免除本地安装与管理交易数据库的需求;隔离的环境能够有效避免用户的误操作带来的数据风险,减少集中化方式带来的数据仓库被拖慢的情况,提高环境的可用性,用户模型演练、项目测试以及个性化的数据分析可以在数据沙盒上进行,降低数据仓库的开销的同时实现高效的数据访问。
[0012]在上述技术方案的基础上,本发明还可以做如下改进。
[0013]进一步,S2中根据硬件及操作系统环境自动部署mongoDB实例,所述mongoDB实例为数据沙盒,所述服务端采用云服务器或共享服务器,在服务端为云服务器时,为每个用户独立创建虚拟操作系统环境,直接在虚拟机上部署独立的mongoDB实例;在服务端为共享服务器时,共享环境部署共享mongoDB实例,对环境的元数据信息进行登记管理。
[0014]采用上述进一步方案的有益效果是,本发明根据硬件及操作系统环境自动部署mongoDB实例,在云化环境和非云化环境下均可实现,不受硬件及操作系统环境的限制,如果是云化环境直接在虚拟机上部署独立的mongoDB实例,共享环境部署共享实例;对环境的元数据信息进行登记管理。
[0015]进一步,S3中在服务端为云服务器时,通过虚拟化技术提供的存储及运算资源配额管理功能,实现数据沙盒的配额管理;在服务端为共享服务器时,通过启动不同端口上mongoDB实例的方式,结合操作系统的特性,进行存储及运算资源配额管理。
[0016]采用上述进一步方案的有益效果是,本发明对数据沙盒实现配额管理,在云化环境和非云化环境下均可实现,不受硬件及操作系统环境的限制,如果是云化环境则过虚拟环境提供存储及运算资源配额管理的功能;如果是非云化环境,则通过启动不同端口上mongoDB实例的方式,结合操作系统的特性,进行存储及运算资源配额管理。
[0017]进一步,在服务端为共享服务器时,进行如下存储及运算资源配额管理:存储空间的配额管理,通过每次用户执行数据更新前检测该用户对应的数据沙盒的状态,如果已使用量超过预设值,则禁止用户执行操作;内存的配额管理,通过监测实例进程,通过操作系统层面启动进程所占用资源的方式实现对数据沙盒的进程进行内存配额管理。
[0018]采用上述进一步方案的有益效果是,在共享环境下,由于mongoDB没有提供存储空间的配额管理功能,本发明通过在用户执行数据更新前检测该用户对应的数据沙盒的状态,如果已使用量超过预设值,则禁止用户执行操作,有效实现存储空间的配额管理;另外mongoDB内存是系统的虚拟内存管理的,MongoDB并不干涉内存管理工作,本发明通过系统监测实例进程,通过操作系统层面启动进程所占用资源的方式实现对数据沙盒的进程进行内存配额管理,实现内存的有效配额管理。
[0019]进一步,S4中通过随机抽样、分层抽样、整群抽样和系统抽样中的任一种抽样算法将数据仓库数据和/或外部数据抽取到数据沙盒;提供可视化界面,为用户提供可视化数据导入、操作和分析功能。
[0020]采用上述进一步方案的有益效果是,本发明为用户提供数据导入工具,将数据仓库数据或者外部数据导入到数据沙盒环境;为满足不同应用场景,系统提供典型的随机抽样、分层抽样、整群抽样、系统抽样等抽样算法,将数据仓库和外部数据抽取到数据沙盒;提供可视化数据探索分析工具,满足用户的分析需求。
[0021]为实现上述发明目的,本发明还提供一种基于mongoDB的数据沙盒实现系统,包括客户端和服务端,所述客户端用于向服务端发送创建数据沙盒的申请,所述服务端包括:
[0022]接收模块,用于接收用户端发送的创建数据沙盒的申请;
[0023]创建模块,用于根据申请在mongoDB上为用户创建独立的数据沙盒;
[0024]管理模块,用于进行数据沙盒的存储及运算资源配额的管理;
[0025]导入模块,用于将数据仓库数据或者外部数据导入到数据沙盒中;
[0026]处理模块,用于在数据沙盒环境中进行数据处理;
[0027]导出模块,用于在数据处理完毕,将处理后的数据从数据沙盒中导出,并销毁数据沙盒,回收系统资源。
[0028]在上述技术方案的基础上,本发明还可以做如下改进。
[0029]进一步,创建模块根据硬件及操作系统环境自动部署mongoDB实例,所述mongoDB实例为数据沙盒,所述服务端采用云服务器或共享服务器,在服务端为云服务器时,为每个用户独立创建虚拟操作系统环境,直接在虚拟机上部署独立的mongoDB实例;在服务端为共享服务器时,共享环境部署共享mongoDB实例,对环境的元数据信息进行登记管理。
[0030]进一步,管理模块在服务端为云服务器时,通过虚拟化技术提供的存储及运算资源配额管理功能,实现数据沙盒的配额管理;在服务端为共享服务器时,通过启动不同端口上mongoDB实例的方式,结合操作系统的特性,进行存储及运算资源配额管理。
[0031 ]进一步,在服务端为共享服务器时,进行如下存储及运算资源配额管理:存储空间的配额管理,通过每次用户执行数据更新前检测该用户对应的数据沙盒的状态,如果已使用量超过预设值,则禁止用户执行操作;内存的配额管理,通过监测实例进程,通过操作系统层面启动进程所占用资源的方式实现对数据沙盒的进程进行内存配额管理。
[0032]进一步,所述导入模块通过随机抽样、分层抽样、整群抽样和系统抽样中的任一种抽样算法将数据仓库数据和/或外部数据抽取到数据沙盒;还包括可视化界面,为用户提供可视化数据导入、操作和分析功能。
【附图说明】
[0033]图1为本发明所述一种基于mongoDB的数据沙盒实现方法流程图;
[0034]图2为本发明所述一种基于mongoDB的数据沙盒实现系统框图。
【具体实施方式】
[0035]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
[0036]如图1所示,一种基于mongoDB的数据沙盒实现方法,包括如下步骤:
[0037]SI,服务端接收用户端发送的创建数据沙盒的申请;
[0038]S2,服务端根据申请在mongoDB上为用户创建独立的数据沙盒;
[0039]S3,服务端进行数据沙盒的存储及运算资源配额的管理;
[0040]S4,服务端将数据仓库数据或者外部数据导入到数据沙盒中,在数据沙盒环境中进行数据处理;
[0041]S5,数据处理完毕,服务端将处理后的数据从数据沙盒中导出,并销毁数据沙盒,回收系统资源。
[0042]具体地,S2中根据硬件及操作系统环境自动部署mongoDB实例,所述mongoDB实例为数据沙盒,所述服务端采用云服务器或共享服务器,在服务端为云服务器时,为每个用户独立创建虚拟操作系统环境,直接在虚拟机上部署独立的mongoDB实例;在服务端为共享服务器时,共享环境部署共享实例,对环境的元数据信息进行登记管理。本发明根据硬件及操作系统环境自动部署mongoDB实例,在云化环境和非云化环境下均可实现,不受硬件及操作系统环境的限制,如果是云化环境直接在虚拟机上部署独立的mongoDB实例,共享环境部署共享mongoDB实例;对环境的元数据信息进行登记管理。
[0043]S3中在服务端为云服务器时,通过虚拟化技术提供的存储及运算资源配额管理功能,实现数据沙盒的配额管理;在服务端为共享服务器时,通过启动不同端口上mongoDB实例的方式,结合操作系统的特性,进行存储及运算资源配额管理。本发明对数据沙盒实现配额管理,在云化环境和非云化环境下均可实现,不受硬件及操作系统环境的限制,如果是云化环境则过虚拟环境提供存储及运算资源配额管理的功能;如果是非云化环境,则通过启动不同端口上mongoDB实例的方式,结合操作系统的特性,进行存储及运算资源配额管理。
[0044]在服务端为共享服务器时,进行如下存储及运算资源配额管理:存储空间的配额管理,通过每次用户执行数据更新前检测该用户对应的数据沙盒的状态,如果已使用量超过预设值,则禁止用户执行操作;内存的配额管理,通过监测实例进程,通过操作系统层面启动进程所占用资源的方式实现对数据沙盒的进程进行内存配额管理。在共享环境下,由于mongoDB没有提供存储空间的配额管理功能,本发明通过在用户执行数据更新前检测该用户对应的数据沙盒的状态,如果已使用量超过预设值,则禁止用户执行操作,有效实现存储空间的配额管理;另外mongoDB内存是系统的虚拟内存管理的,MongoDB并不干涉内存管理工作,本发明通过系统监测实例进程,通过操作系统层面启动进程所占用资源的方式实现对数据沙盒的进程进行内存配额管理,实现内存的有效配额管理。
[0045]S4中通过随机抽样、分层抽样、整群抽样和系统抽样中的任一种抽样算法将数据仓库数据和/或外部数据抽取到数据沙盒;提供可视化界面,为用户提供可视化数据导入、操作和分析功能。本发明为用户提供数据导入工具,将数据仓库数据或者外部数据导入到数据沙盒环境;为满足不同应用场景,系统提供典型的随机抽样、分层抽样、整群抽样、系统抽样等抽样算法,将数据仓库和外部数据抽取到数据沙盒;提供可视化数据探索分析工具,满足用户的分析需求。
[0046]本技术方案主要包含3部分:I)数据沙盒的生命周期管理;2)数据沙盒的配额管理3)数据的导入、探索及分析。
[0047]I)数据沙盒的生命周期管理:
[0048]a)数据沙盒申请,通过管理化流程提供数据沙盒的申请;
[0049]b)数据沙盒创建,在mongoDB上为用户创建独立的实例,即数据沙盒;
[0050]c)数据沙盒配额,提供数据沙盒的存储及运算资源的配额管理;
[0051]d)数据导入及应用,提供可视化界面,为用户提供数据导入、操作、分析功能;
[0052]e)数据沙盒销毁,销毁为用户创建的数据沙盒,回收系统资源。
[0053]2)数据沙盒的配额及管理:
[0054]方案一:在有云计算环境下,采用独立实例的方式,通过虚拟环境提供配额管理功能;为每个用户独立创建虚拟操作系统环境,独立自动化部署mongoDB实例,通过虚拟机进行存储、内存及计算资源的配额管理;
[0055]方案二:在没有云计算的环境下,采用共享主机,通过为用户启动不同端口上的mongoDB实例方式,结合操作系统提供的特性,存储及CPU运算资源配额;
[0056]a)存储空间的配额管理,mongoDB没有提供存储空间的配额管理,本方案通过每次用户执行数据更新前检测mongoDB实例状态,如果mongoDB实例已用量超过阈值,则禁止用户执行操作;具体方法通过执行:db.stats O命令,获取storageSize大小进行判断;
[0057]b)内存的配额管理,mongoDB内存是系统的虚拟内存管理的,MongoDB并不干涉内存管理工作,不提供内存配额管理功能,系统监测实例进程,通过ulimit-v:address space(I inux环境下)从系统层面实现对数据库进程进行内存配额管理。
[0058]3)数据导入、探索及分析:
[0059]为用户提供数据导入工具,将数据仓库数据或者外部数据导入到数据沙盒环境;为满足不同应用场景,系统提供典型的随机抽样、分层抽样、整群抽样、系统抽样等抽样算法,将数据仓库数据和/或外部数据抽取到数据沙盒;提供可视化数据探索分析工具,满足用户的分析需求。
[0060]如图2所示,一种基于mongoDB的数据沙盒实现系统,包括客户端和服务端,所述客户端用于向服务端发送创建数据沙盒的申请,所述服务端包括:接收模块,用于接收用户端发送的创建数据沙盒的申请;创建模块,用于根据申请在mongoDB上为用户创建独立的数据沙盒;管理模块,用于进行数据沙盒的存储及运算资源配额的管理;导入模块,用于将数据仓库数据或者外部数据导入到数据沙盒中;处理模块,用于在数据沙盒环境中进行数据处理;导出模块,用于在数据处理完毕,将处理后的数据从数据沙盒中导出,并销毁数据沙盒,回收系统资源。
[0061 ]创建模块根据硬件及操作系统环境自动部署mongoDB实例,所述mongoDB实例为数据沙盒,所述服务端采用云服务器或共享服务器,在服务端为云服务器时,为每个用户独立创建虚拟操作系统环境,直接在虚拟机上部署独立的mongoDB实例;在服务端为共享服务器时,共享环境部署共享mongoDB实例,对环境的元数据信息进行登记管理。
[0062]管理模块在服务端为云服务器时,通过虚拟化技术提供的存储及运算资源配额管理功能,实现数据沙盒的配额管理;在服务端为共享服务器时,通过启动不同端口上mongoDB实例的方式,结合操作系统的特性,进行存储及运算资源配额管理。
[0063]在服务端为共享服务器时,进行如下存储及运算资源配额管理:存储空间的配额管理,通过每次用户执行数据更新前检测该用户对应的数据沙盒的状态,如果已使用量超过预设值,则禁止用户执行操作;内存的配额管理,通过监测实例进程,通过操作系统层面启动进程所占用资源的方式实现对数据沙盒的进程进行内存配额管理。
[0064]所述导入模块通过随机抽样、分层抽样、整群抽样和系统抽样中的任一种抽样算法将数据仓库数据和/或外部数据抽取到数据沙盒;还包括可视化界面,为用户提供可视化数据导入、操作和分析功能。
[0065]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种基于mongoDB的数据沙盒实现方法,其特征在于,包括如下步骤: SI,服务端接收用户端发送的创建数据沙盒的申请; S2,服务端根据申请在mongoDB上为用户创建独立的数据沙盒; S3,服务端进行数据沙盒的存储及运算资源配额的管理; S4,服务端将数据仓库数据或者外部数据导入到数据沙盒中,在数据沙盒环境中进行数据处理; S5,数据处理完毕,服务端将处理后的数据从数据沙盒中导出,并销毁数据沙盒,回收系统资源。2.根据权利要求1所述一种基于mongoDB的数据沙盒实现方法,其特征在于,S2中根据硬件及操作系统环境自动部署mongoDB实例,所述mongoDB实例为数据沙盒,所述服务端采用云服务器或共享服务器,在服务端为云服务器时,为每个用户独立创建虚拟操作系统环境,直接在虚拟机上部署独立的mongoDB实例;在服务端为共享服务器时,共享环境部署共享mongoDB实例,对环境的元数据信息进行登记管理。3.根据权利要求2所述一种基于mongoDB的数据沙盒实现方法,其特征在于,S3中在服务端为云服务器时,通过虚拟化技术提供的存储及运算资源配额管理功能,实现数据沙盒的配额管理;在服务端为共享服务器时,通过启动不同端口上mongoDB实例的方式,结合操作系统的特性,进行存储及运算资源配额管理。4.根据权利要求3所述一种基于mongoDB的数据沙盒实现方法,其特征在于,在服务端为共享服务器时,进行如下存储及运算资源配额管理:存储空间的配额管理,通过每次用户执行数据更新前检测该用户对应的数据沙盒的状态,如果已使用量超过预设值,则禁止用户执行操作;内存的配额管理,通过监测实例进程,通过操作系统层面启动进程所占用资源的方式实现对数据沙盒的进程进行内存配额管理。5.根据权利要求1所述一种基于mongoDB的数据沙盒实现方法,其特征在于,S4中通过随机抽样、分层抽样、整群抽样和系统抽样中的任一种抽样算法将数据仓库数据和/或外部数据抽取到数据沙盒;提供可视化界面,为用户提供可视化数据导入、操作和分析功能。6.一种基于mongoDB的数据沙盒实现系统,其特征在于,包括客户端和服务端,所述客户端用于向服务端发送创建数据沙盒的申请,所述服务端包括: 接收模块,用于接收用户端发送的创建数据沙盒的申请; 创建模块,用于根据申请在mongoDB上为用户创建独立的数据沙盒; 管理模块,用于进行数据沙盒的存储及运算资源配额的管理; 导入模块,用于将数据仓库数据或者外部数据导入到数据沙盒中; 处理模块,用于在数据沙盒环境中进行数据处理; 导出模块,用于在数据处理完毕,将处理后的数据从数据沙盒中导出,并销毁数据沙盒,回收系统资源。7.根据权利要求6所述一种基于mongoDB的数据沙盒实现系统,其特征在于,创建模块根据硬件及操作系统环境自动部署mongoDB实例,所述mongoDB实例为数据沙盒,所述服务端采用云服务器或共享服务器,在服务端为云服务器时,为每个用户独立创建虚拟操作系统环境,直接在虚拟机上部署独立的mongoDB实例;在服务端为共享服务器时,共享环境部署共享mongoDB实例,对环境的元数据信息进行登记管理。8.根据权利要求7所述一种基于mongoDB的数据沙盒实现系统,其特征在于,管理模块在服务端为云服务器时,通过虚拟化技术提供的存储及运算资源配额管理功能,实现数据沙盒的配额管理;在服务端为共享服务器时,通过启动不同端口上mongoDB实例的方式,结合操作系统的特性,进行存储及运算资源配额管理。9.根据权利要求8所述一种基于mongoDB的数据沙盒实现系统,其特征在于,在服务端为共享服务器时,进行如下存储及运算资源配额管理:存储空间的配额管理,通过每次用户执行数据更新前检测该用户对应的数据沙盒的状态,如果已使用量超过预设值,则禁止用户执行操作;内存的配额管理,通过监测实例进程,通过操作系统层面启动进程所占用资源的方式实现对数据沙盒的进程进行内存配额管理。10.根据权利要求6所述一种基于mongoDB的数据沙盒实现系统,其特征在于,所述导入模块通过随机抽样、分层抽样、整群抽样和系统抽样中的任一种抽样算法将数据仓库数据和/或外部数据抽取到数据沙盒;还包括可视化界面,为用户提供可视化数据导入、操作和分析功能。
【文档编号】G06F17/30GK105868389SQ201610232811
【公开日】2016年8月17日
【申请日】2016年4月15日
【发明人】严敏
【申请人】北京思特奇信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1