一種基于mongoDB的數(shù)據(jù)沙盒實(shí)現(xiàn)方法及系統(tǒng)的制作方法
【專(zhuān)利摘要】本發(fā)明涉及一種基于mongoDB的數(shù)據(jù)沙盒實(shí)現(xiàn)方法及系統(tǒng)。所述方法包括服務(wù)端接收用戶端發(fā)送的創(chuàng)建數(shù)據(jù)沙盒的申請(qǐng);服務(wù)端根據(jù)申請(qǐng)?jiān)趍ongoDB上為用戶創(chuàng)建獨(dú)立的數(shù)據(jù)沙盒;服務(wù)端進(jìn)行數(shù)據(jù)沙盒的存儲(chǔ)及運(yùn)算資源配額的管理;服務(wù)端將數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)或者外部數(shù)據(jù)導(dǎo)入到數(shù)據(jù)沙盒中,在數(shù)據(jù)沙盒環(huán)境中進(jìn)行數(shù)據(jù)處理;數(shù)據(jù)處理完畢,服務(wù)端將處理后的數(shù)據(jù)從數(shù)據(jù)沙盒中導(dǎo)出,并銷(xiāo)毀數(shù)據(jù)沙盒,回收系統(tǒng)資源。本發(fā)明為用戶提供一套彈性的數(shù)據(jù)運(yùn)行環(huán)境,免除本地安裝與管理交易數(shù)據(jù)庫(kù)的需求;隔離的環(huán)境能夠有效避免用戶的誤操作帶來(lái)的數(shù)據(jù)風(fēng)險(xiǎn),減少集中化方式帶來(lái)的數(shù)據(jù)倉(cāng)庫(kù)被拖慢的情況,提高環(huán)境的可用性,降低數(shù)據(jù)倉(cāng)庫(kù)的開(kāi)銷(xiāo)的同時(shí)實(shí)現(xiàn)高效的數(shù)據(jù)訪問(wèn)。
【專(zhuān)利說(shuō)明】
一種基于mongoDB的數(shù)據(jù)沙盒實(shí)現(xiàn)方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及計(jì)算機(jī)軟件領(lǐng)域,尤其涉及一種基于mongoDB的數(shù)據(jù)沙盒實(shí)現(xiàn)方法及系統(tǒng)。
【背景技術(shù)】
[0002]為應(yīng)對(duì)分析決策需求,企業(yè)通過(guò)建立集中化的數(shù)據(jù)倉(cāng)庫(kù)為分析人員提供數(shù)據(jù)分析環(huán)境,隨著數(shù)據(jù)的不斷積累,集中化的方式導(dǎo)致數(shù)據(jù)倉(cāng)庫(kù)日益龐大;業(yè)務(wù)的發(fā)展,對(duì)數(shù)據(jù)分析的需求增加,越來(lái)越多的人需要依賴(lài)數(shù)據(jù)倉(cāng)庫(kù),更多個(gè)性化的分析需求需要數(shù)據(jù)環(huán)境支持;數(shù)據(jù)量的增加以及訪問(wèn)用戶的增加,在這種情況下,集中的模式容易導(dǎo)致數(shù)據(jù)倉(cāng)庫(kù)被越拖越慢;分布式數(shù)據(jù)庫(kù)或者大數(shù)據(jù)在性能方面解決了部分問(wèn)題,仍然不能滿足在數(shù)據(jù)復(fù)雜度以及數(shù)據(jù)量不斷增長(zhǎng)的情況下,支撐多變的業(yè)務(wù)需求和個(gè)性化分析需求。
【發(fā)明內(nèi)容】
[0003]本發(fā)明所要解決的技術(shù)問(wèn)題是針對(duì)現(xiàn)有技術(shù)的不足,提供一種基于mongoDB的數(shù)據(jù)沙盒實(shí)現(xiàn)方法及系統(tǒng)。本發(fā)明是屬于計(jì)算機(jī)軟件領(lǐng)域,基于輕量化的mongoDB數(shù)據(jù)庫(kù),實(shí)現(xiàn)對(duì)mongoDB數(shù)據(jù)庫(kù)的配額管理,以多租戶的模式為用戶提供安全隔離的數(shù)據(jù)實(shí)驗(yàn)環(huán)境,以服務(wù)的方式即Data-as-a-Service,為用戶提供數(shù)據(jù)運(yùn)行和分析環(huán)境。
[0004]本方案基于mongoDB實(shí)現(xiàn)配額管理功能,旨在為企業(yè)用戶提供一套面向用戶隔離的數(shù)據(jù)即服務(wù)的環(huán)境,將數(shù)據(jù)實(shí)驗(yàn)和數(shù)據(jù)倉(cāng)庫(kù)的生產(chǎn)數(shù)據(jù)庫(kù)環(huán)境區(qū)別開(kāi)來(lái),提供配套的管理和工具支撐;一方面將分析人員進(jìn)行數(shù)據(jù)探索、分析算法調(diào)試的工作轉(zhuǎn)移到數(shù)據(jù)沙盒上,另一方面,數(shù)據(jù)沙盒為用戶提供個(gè)性化數(shù)據(jù)管理功能,可以將未進(jìn)入數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)導(dǎo)入到自己的數(shù)據(jù)沙盒進(jìn)行分析。
[0005]本發(fā)明解決上述技術(shù)問(wèn)題的技術(shù)方案如下:一種基于mongoDB的數(shù)據(jù)沙盒實(shí)現(xiàn)方法,包括如下步驟:
[0006]SI,服務(wù)端接收用戶端發(fā)送的創(chuàng)建數(shù)據(jù)沙盒的申請(qǐng);
[0007]S2,服務(wù)端根據(jù)申請(qǐng)?jiān)趍ongoDB上為用戶創(chuàng)建獨(dú)立的數(shù)據(jù)沙盒;
[0008]S3,服務(wù)端進(jìn)行數(shù)據(jù)沙盒的存儲(chǔ)及運(yùn)算資源配額的管理;
[0009]S4,服務(wù)端將數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)或者外部數(shù)據(jù)導(dǎo)入到數(shù)據(jù)沙盒中,在數(shù)據(jù)沙盒環(huán)境中進(jìn)行數(shù)據(jù)處理;
[0010]S5,數(shù)據(jù)處理完畢,服務(wù)端將處理后的數(shù)據(jù)從數(shù)據(jù)沙盒中導(dǎo)出,并銷(xiāo)毀數(shù)據(jù)沙盒,回收系統(tǒng)資源。
[0011]本發(fā)明的有益效果是:本發(fā)明通過(guò)輕量化的數(shù)據(jù)庫(kù),結(jié)合管理功能,快速的為企業(yè)實(shí)現(xiàn)數(shù)據(jù)即服務(wù)的環(huán)境,結(jié)合配額管理功能,實(shí)現(xiàn)資源的配額數(shù)據(jù)環(huán)境的隔離和硬件資源的高效利用;為用戶提供一套彈性的數(shù)據(jù)運(yùn)行環(huán)境,免除本地安裝與管理交易數(shù)據(jù)庫(kù)的需求;隔離的環(huán)境能夠有效避免用戶的誤操作帶來(lái)的數(shù)據(jù)風(fēng)險(xiǎn),減少集中化方式帶來(lái)的數(shù)據(jù)倉(cāng)庫(kù)被拖慢的情況,提高環(huán)境的可用性,用戶模型演練、項(xiàng)目測(cè)試以及個(gè)性化的數(shù)據(jù)分析可以在數(shù)據(jù)沙盒上進(jìn)行,降低數(shù)據(jù)倉(cāng)庫(kù)的開(kāi)銷(xiāo)的同時(shí)實(shí)現(xiàn)高效的數(shù)據(jù)訪問(wèn)。
[0012]在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。
[0013]進(jìn)一步,S2中根據(jù)硬件及操作系統(tǒng)環(huán)境自動(dòng)部署mongoDB實(shí)例,所述mongoDB實(shí)例為數(shù)據(jù)沙盒,所述服務(wù)端采用云服務(wù)器或共享服務(wù)器,在服務(wù)端為云服務(wù)器時(shí),為每個(gè)用戶獨(dú)立創(chuàng)建虛擬操作系統(tǒng)環(huán)境,直接在虛擬機(jī)上部署獨(dú)立的mongoDB實(shí)例;在服務(wù)端為共享服務(wù)器時(shí),共享環(huán)境部署共享mongoDB實(shí)例,對(duì)環(huán)境的元數(shù)據(jù)信息進(jìn)行登記管理。
[0014]采用上述進(jìn)一步方案的有益效果是,本發(fā)明根據(jù)硬件及操作系統(tǒng)環(huán)境自動(dòng)部署mongoDB實(shí)例,在云化環(huán)境和非云化環(huán)境下均可實(shí)現(xiàn),不受硬件及操作系統(tǒng)環(huán)境的限制,如果是云化環(huán)境直接在虛擬機(jī)上部署獨(dú)立的mongoDB實(shí)例,共享環(huán)境部署共享實(shí)例;對(duì)環(huán)境的元數(shù)據(jù)信息進(jìn)行登記管理。
[0015]進(jìn)一步,S3中在服務(wù)端為云服務(wù)器時(shí),通過(guò)虛擬化技術(shù)提供的存儲(chǔ)及運(yùn)算資源配額管理功能,實(shí)現(xiàn)數(shù)據(jù)沙盒的配額管理;在服務(wù)端為共享服務(wù)器時(shí),通過(guò)啟動(dòng)不同端口上mongoDB實(shí)例的方式,結(jié)合操作系統(tǒng)的特性,進(jìn)行存儲(chǔ)及運(yùn)算資源配額管理。
[0016]采用上述進(jìn)一步方案的有益效果是,本發(fā)明對(duì)數(shù)據(jù)沙盒實(shí)現(xiàn)配額管理,在云化環(huán)境和非云化環(huán)境下均可實(shí)現(xiàn),不受硬件及操作系統(tǒng)環(huán)境的限制,如果是云化環(huán)境則過(guò)虛擬環(huán)境提供存儲(chǔ)及運(yùn)算資源配額管理的功能;如果是非云化環(huán)境,則通過(guò)啟動(dòng)不同端口上mongoDB實(shí)例的方式,結(jié)合操作系統(tǒng)的特性,進(jìn)行存儲(chǔ)及運(yùn)算資源配額管理。
[0017]進(jìn)一步,在服務(wù)端為共享服務(wù)器時(shí),進(jìn)行如下存儲(chǔ)及運(yùn)算資源配額管理:存儲(chǔ)空間的配額管理,通過(guò)每次用戶執(zhí)行數(shù)據(jù)更新前檢測(cè)該用戶對(duì)應(yīng)的數(shù)據(jù)沙盒的狀態(tài),如果已使用量超過(guò)預(yù)設(shè)值,則禁止用戶執(zhí)行操作;內(nèi)存的配額管理,通過(guò)監(jiān)測(cè)實(shí)例進(jìn)程,通過(guò)操作系統(tǒng)層面啟動(dòng)進(jìn)程所占用資源的方式實(shí)現(xiàn)對(duì)數(shù)據(jù)沙盒的進(jìn)程進(jìn)行內(nèi)存配額管理。
[0018]采用上述進(jìn)一步方案的有益效果是,在共享環(huán)境下,由于mongoDB沒(méi)有提供存儲(chǔ)空間的配額管理功能,本發(fā)明通過(guò)在用戶執(zhí)行數(shù)據(jù)更新前檢測(cè)該用戶對(duì)應(yīng)的數(shù)據(jù)沙盒的狀態(tài),如果已使用量超過(guò)預(yù)設(shè)值,則禁止用戶執(zhí)行操作,有效實(shí)現(xiàn)存儲(chǔ)空間的配額管理;另外mongoDB內(nèi)存是系統(tǒng)的虛擬內(nèi)存管理的,MongoDB并不干涉內(nèi)存管理工作,本發(fā)明通過(guò)系統(tǒng)監(jiān)測(cè)實(shí)例進(jìn)程,通過(guò)操作系統(tǒng)層面啟動(dòng)進(jìn)程所占用資源的方式實(shí)現(xiàn)對(duì)數(shù)據(jù)沙盒的進(jìn)程進(jìn)行內(nèi)存配額管理,實(shí)現(xiàn)內(nèi)存的有效配額管理。
[0019]進(jìn)一步,S4中通過(guò)隨機(jī)抽樣、分層抽樣、整群抽樣和系統(tǒng)抽樣中的任一種抽樣算法將數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)和/或外部數(shù)據(jù)抽取到數(shù)據(jù)沙盒;提供可視化界面,為用戶提供可視化數(shù)據(jù)導(dǎo)入、操作和分析功能。
[0020]采用上述進(jìn)一步方案的有益效果是,本發(fā)明為用戶提供數(shù)據(jù)導(dǎo)入工具,將數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)或者外部數(shù)據(jù)導(dǎo)入到數(shù)據(jù)沙盒環(huán)境;為滿足不同應(yīng)用場(chǎng)景,系統(tǒng)提供典型的隨機(jī)抽樣、分層抽樣、整群抽樣、系統(tǒng)抽樣等抽樣算法,將數(shù)據(jù)倉(cāng)庫(kù)和外部數(shù)據(jù)抽取到數(shù)據(jù)沙盒;提供可視化數(shù)據(jù)探索分析工具,滿足用戶的分析需求。
[0021]為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明還提供一種基于mongoDB的數(shù)據(jù)沙盒實(shí)現(xiàn)系統(tǒng),包括客戶端和服務(wù)端,所述客戶端用于向服務(wù)端發(fā)送創(chuàng)建數(shù)據(jù)沙盒的申請(qǐng),所述服務(wù)端包括:
[0022]接收模塊,用于接收用戶端發(fā)送的創(chuàng)建數(shù)據(jù)沙盒的申請(qǐng);
[0023]創(chuàng)建模塊,用于根據(jù)申請(qǐng)?jiān)趍ongoDB上為用戶創(chuàng)建獨(dú)立的數(shù)據(jù)沙盒;
[0024]管理模塊,用于進(jìn)行數(shù)據(jù)沙盒的存儲(chǔ)及運(yùn)算資源配額的管理;
[0025]導(dǎo)入模塊,用于將數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)或者外部數(shù)據(jù)導(dǎo)入到數(shù)據(jù)沙盒中;
[0026]處理模塊,用于在數(shù)據(jù)沙盒環(huán)境中進(jìn)行數(shù)據(jù)處理;
[0027]導(dǎo)出模塊,用于在數(shù)據(jù)處理完畢,將處理后的數(shù)據(jù)從數(shù)據(jù)沙盒中導(dǎo)出,并銷(xiāo)毀數(shù)據(jù)沙盒,回收系統(tǒng)資源。
[0028]在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。
[0029]進(jìn)一步,創(chuàng)建模塊根據(jù)硬件及操作系統(tǒng)環(huán)境自動(dòng)部署mongoDB實(shí)例,所述mongoDB實(shí)例為數(shù)據(jù)沙盒,所述服務(wù)端采用云服務(wù)器或共享服務(wù)器,在服務(wù)端為云服務(wù)器時(shí),為每個(gè)用戶獨(dú)立創(chuàng)建虛擬操作系統(tǒng)環(huán)境,直接在虛擬機(jī)上部署獨(dú)立的mongoDB實(shí)例;在服務(wù)端為共享服務(wù)器時(shí),共享環(huán)境部署共享mongoDB實(shí)例,對(duì)環(huán)境的元數(shù)據(jù)信息進(jìn)行登記管理。
[0030]進(jìn)一步,管理模塊在服務(wù)端為云服務(wù)器時(shí),通過(guò)虛擬化技術(shù)提供的存儲(chǔ)及運(yùn)算資源配額管理功能,實(shí)現(xiàn)數(shù)據(jù)沙盒的配額管理;在服務(wù)端為共享服務(wù)器時(shí),通過(guò)啟動(dòng)不同端口上mongoDB實(shí)例的方式,結(jié)合操作系統(tǒng)的特性,進(jìn)行存儲(chǔ)及運(yùn)算資源配額管理。
[0031 ]進(jìn)一步,在服務(wù)端為共享服務(wù)器時(shí),進(jìn)行如下存儲(chǔ)及運(yùn)算資源配額管理:存儲(chǔ)空間的配額管理,通過(guò)每次用戶執(zhí)行數(shù)據(jù)更新前檢測(cè)該用戶對(duì)應(yīng)的數(shù)據(jù)沙盒的狀態(tài),如果已使用量超過(guò)預(yù)設(shè)值,則禁止用戶執(zhí)行操作;內(nèi)存的配額管理,通過(guò)監(jiān)測(cè)實(shí)例進(jìn)程,通過(guò)操作系統(tǒng)層面啟動(dòng)進(jìn)程所占用資源的方式實(shí)現(xiàn)對(duì)數(shù)據(jù)沙盒的進(jìn)程進(jìn)行內(nèi)存配額管理。
[0032]進(jìn)一步,所述導(dǎo)入模塊通過(guò)隨機(jī)抽樣、分層抽樣、整群抽樣和系統(tǒng)抽樣中的任一種抽樣算法將數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)和/或外部數(shù)據(jù)抽取到數(shù)據(jù)沙盒;還包括可視化界面,為用戶提供可視化數(shù)據(jù)導(dǎo)入、操作和分析功能。
【附圖說(shuō)明】
[0033]圖1為本發(fā)明所述一種基于mongoDB的數(shù)據(jù)沙盒實(shí)現(xiàn)方法流程圖;
[0034]圖2為本發(fā)明所述一種基于mongoDB的數(shù)據(jù)沙盒實(shí)現(xiàn)系統(tǒng)框圖。
【具體實(shí)施方式】
[0035]以下結(jié)合附圖對(duì)本發(fā)明的原理和特征進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
[0036]如圖1所示,一種基于mongoDB的數(shù)據(jù)沙盒實(shí)現(xiàn)方法,包括如下步驟:
[0037]SI,服務(wù)端接收用戶端發(fā)送的創(chuàng)建數(shù)據(jù)沙盒的申請(qǐng);
[0038]S2,服務(wù)端根據(jù)申請(qǐng)?jiān)趍ongoDB上為用戶創(chuàng)建獨(dú)立的數(shù)據(jù)沙盒;
[0039]S3,服務(wù)端進(jìn)行數(shù)據(jù)沙盒的存儲(chǔ)及運(yùn)算資源配額的管理;
[0040]S4,服務(wù)端將數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)或者外部數(shù)據(jù)導(dǎo)入到數(shù)據(jù)沙盒中,在數(shù)據(jù)沙盒環(huán)境中進(jìn)行數(shù)據(jù)處理;
[0041]S5,數(shù)據(jù)處理完畢,服務(wù)端將處理后的數(shù)據(jù)從數(shù)據(jù)沙盒中導(dǎo)出,并銷(xiāo)毀數(shù)據(jù)沙盒,回收系統(tǒng)資源。
[0042]具體地,S2中根據(jù)硬件及操作系統(tǒng)環(huán)境自動(dòng)部署mongoDB實(shí)例,所述mongoDB實(shí)例為數(shù)據(jù)沙盒,所述服務(wù)端采用云服務(wù)器或共享服務(wù)器,在服務(wù)端為云服務(wù)器時(shí),為每個(gè)用戶獨(dú)立創(chuàng)建虛擬操作系統(tǒng)環(huán)境,直接在虛擬機(jī)上部署獨(dú)立的mongoDB實(shí)例;在服務(wù)端為共享服務(wù)器時(shí),共享環(huán)境部署共享實(shí)例,對(duì)環(huán)境的元數(shù)據(jù)信息進(jìn)行登記管理。本發(fā)明根據(jù)硬件及操作系統(tǒng)環(huán)境自動(dòng)部署mongoDB實(shí)例,在云化環(huán)境和非云化環(huán)境下均可實(shí)現(xiàn),不受硬件及操作系統(tǒng)環(huán)境的限制,如果是云化環(huán)境直接在虛擬機(jī)上部署獨(dú)立的mongoDB實(shí)例,共享環(huán)境部署共享mongoDB實(shí)例;對(duì)環(huán)境的元數(shù)據(jù)信息進(jìn)行登記管理。
[0043]S3中在服務(wù)端為云服務(wù)器時(shí),通過(guò)虛擬化技術(shù)提供的存儲(chǔ)及運(yùn)算資源配額管理功能,實(shí)現(xiàn)數(shù)據(jù)沙盒的配額管理;在服務(wù)端為共享服務(wù)器時(shí),通過(guò)啟動(dòng)不同端口上mongoDB實(shí)例的方式,結(jié)合操作系統(tǒng)的特性,進(jìn)行存儲(chǔ)及運(yùn)算資源配額管理。本發(fā)明對(duì)數(shù)據(jù)沙盒實(shí)現(xiàn)配額管理,在云化環(huán)境和非云化環(huán)境下均可實(shí)現(xiàn),不受硬件及操作系統(tǒng)環(huán)境的限制,如果是云化環(huán)境則過(guò)虛擬環(huán)境提供存儲(chǔ)及運(yùn)算資源配額管理的功能;如果是非云化環(huán)境,則通過(guò)啟動(dòng)不同端口上mongoDB實(shí)例的方式,結(jié)合操作系統(tǒng)的特性,進(jìn)行存儲(chǔ)及運(yùn)算資源配額管理。
[0044]在服務(wù)端為共享服務(wù)器時(shí),進(jìn)行如下存儲(chǔ)及運(yùn)算資源配額管理:存儲(chǔ)空間的配額管理,通過(guò)每次用戶執(zhí)行數(shù)據(jù)更新前檢測(cè)該用戶對(duì)應(yīng)的數(shù)據(jù)沙盒的狀態(tài),如果已使用量超過(guò)預(yù)設(shè)值,則禁止用戶執(zhí)行操作;內(nèi)存的配額管理,通過(guò)監(jiān)測(cè)實(shí)例進(jìn)程,通過(guò)操作系統(tǒng)層面啟動(dòng)進(jìn)程所占用資源的方式實(shí)現(xiàn)對(duì)數(shù)據(jù)沙盒的進(jìn)程進(jìn)行內(nèi)存配額管理。在共享環(huán)境下,由于mongoDB沒(méi)有提供存儲(chǔ)空間的配額管理功能,本發(fā)明通過(guò)在用戶執(zhí)行數(shù)據(jù)更新前檢測(cè)該用戶對(duì)應(yīng)的數(shù)據(jù)沙盒的狀態(tài),如果已使用量超過(guò)預(yù)設(shè)值,則禁止用戶執(zhí)行操作,有效實(shí)現(xiàn)存儲(chǔ)空間的配額管理;另外mongoDB內(nèi)存是系統(tǒng)的虛擬內(nèi)存管理的,MongoDB并不干涉內(nèi)存管理工作,本發(fā)明通過(guò)系統(tǒng)監(jiān)測(cè)實(shí)例進(jìn)程,通過(guò)操作系統(tǒng)層面啟動(dòng)進(jìn)程所占用資源的方式實(shí)現(xiàn)對(duì)數(shù)據(jù)沙盒的進(jìn)程進(jìn)行內(nèi)存配額管理,實(shí)現(xiàn)內(nèi)存的有效配額管理。
[0045]S4中通過(guò)隨機(jī)抽樣、分層抽樣、整群抽樣和系統(tǒng)抽樣中的任一種抽樣算法將數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)和/或外部數(shù)據(jù)抽取到數(shù)據(jù)沙盒;提供可視化界面,為用戶提供可視化數(shù)據(jù)導(dǎo)入、操作和分析功能。本發(fā)明為用戶提供數(shù)據(jù)導(dǎo)入工具,將數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)或者外部數(shù)據(jù)導(dǎo)入到數(shù)據(jù)沙盒環(huán)境;為滿足不同應(yīng)用場(chǎng)景,系統(tǒng)提供典型的隨機(jī)抽樣、分層抽樣、整群抽樣、系統(tǒng)抽樣等抽樣算法,將數(shù)據(jù)倉(cāng)庫(kù)和外部數(shù)據(jù)抽取到數(shù)據(jù)沙盒;提供可視化數(shù)據(jù)探索分析工具,滿足用戶的分析需求。
[0046]本技術(shù)方案主要包含3部分:I)數(shù)據(jù)沙盒的生命周期管理;2)數(shù)據(jù)沙盒的配額管理3)數(shù)據(jù)的導(dǎo)入、探索及分析。
[0047]I)數(shù)據(jù)沙盒的生命周期管理:
[0048]a)數(shù)據(jù)沙盒申請(qǐng),通過(guò)管理化流程提供數(shù)據(jù)沙盒的申請(qǐng);
[0049]b)數(shù)據(jù)沙盒創(chuàng)建,在mongoDB上為用戶創(chuàng)建獨(dú)立的實(shí)例,即數(shù)據(jù)沙盒;
[0050]c)數(shù)據(jù)沙盒配額,提供數(shù)據(jù)沙盒的存儲(chǔ)及運(yùn)算資源的配額管理;
[0051]d)數(shù)據(jù)導(dǎo)入及應(yīng)用,提供可視化界面,為用戶提供數(shù)據(jù)導(dǎo)入、操作、分析功能;
[0052]e)數(shù)據(jù)沙盒銷(xiāo)毀,銷(xiāo)毀為用戶創(chuàng)建的數(shù)據(jù)沙盒,回收系統(tǒng)資源。
[0053]2)數(shù)據(jù)沙盒的配額及管理:
[0054]方案一:在有云計(jì)算環(huán)境下,采用獨(dú)立實(shí)例的方式,通過(guò)虛擬環(huán)境提供配額管理功能;為每個(gè)用戶獨(dú)立創(chuàng)建虛擬操作系統(tǒng)環(huán)境,獨(dú)立自動(dòng)化部署mongoDB實(shí)例,通過(guò)虛擬機(jī)進(jìn)行存儲(chǔ)、內(nèi)存及計(jì)算資源的配額管理;
[0055]方案二:在沒(méi)有云計(jì)算的環(huán)境下,采用共享主機(jī),通過(guò)為用戶啟動(dòng)不同端口上的mongoDB實(shí)例方式,結(jié)合操作系統(tǒng)提供的特性,存儲(chǔ)及CPU運(yùn)算資源配額;
[0056]a)存儲(chǔ)空間的配額管理,mongoDB沒(méi)有提供存儲(chǔ)空間的配額管理,本方案通過(guò)每次用戶執(zhí)行數(shù)據(jù)更新前檢測(cè)mongoDB實(shí)例狀態(tài),如果mongoDB實(shí)例已用量超過(guò)閾值,則禁止用戶執(zhí)行操作;具體方法通過(guò)執(zhí)行:db.stats O命令,獲取storageSize大小進(jìn)行判斷;
[0057]b)內(nèi)存的配額管理,mongoDB內(nèi)存是系統(tǒng)的虛擬內(nèi)存管理的,MongoDB并不干涉內(nèi)存管理工作,不提供內(nèi)存配額管理功能,系統(tǒng)監(jiān)測(cè)實(shí)例進(jìn)程,通過(guò)ulimit-v:address space(I inux環(huán)境下)從系統(tǒng)層面實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)進(jìn)程進(jìn)行內(nèi)存配額管理。
[0058]3)數(shù)據(jù)導(dǎo)入、探索及分析:
[0059]為用戶提供數(shù)據(jù)導(dǎo)入工具,將數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)或者外部數(shù)據(jù)導(dǎo)入到數(shù)據(jù)沙盒環(huán)境;為滿足不同應(yīng)用場(chǎng)景,系統(tǒng)提供典型的隨機(jī)抽樣、分層抽樣、整群抽樣、系統(tǒng)抽樣等抽樣算法,將數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)和/或外部數(shù)據(jù)抽取到數(shù)據(jù)沙盒;提供可視化數(shù)據(jù)探索分析工具,滿足用戶的分析需求。
[0060]如圖2所示,一種基于mongoDB的數(shù)據(jù)沙盒實(shí)現(xiàn)系統(tǒng),包括客戶端和服務(wù)端,所述客戶端用于向服務(wù)端發(fā)送創(chuàng)建數(shù)據(jù)沙盒的申請(qǐng),所述服務(wù)端包括:接收模塊,用于接收用戶端發(fā)送的創(chuàng)建數(shù)據(jù)沙盒的申請(qǐng);創(chuàng)建模塊,用于根據(jù)申請(qǐng)?jiān)趍ongoDB上為用戶創(chuàng)建獨(dú)立的數(shù)據(jù)沙盒;管理模塊,用于進(jìn)行數(shù)據(jù)沙盒的存儲(chǔ)及運(yùn)算資源配額的管理;導(dǎo)入模塊,用于將數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)或者外部數(shù)據(jù)導(dǎo)入到數(shù)據(jù)沙盒中;處理模塊,用于在數(shù)據(jù)沙盒環(huán)境中進(jìn)行數(shù)據(jù)處理;導(dǎo)出模塊,用于在數(shù)據(jù)處理完畢,將處理后的數(shù)據(jù)從數(shù)據(jù)沙盒中導(dǎo)出,并銷(xiāo)毀數(shù)據(jù)沙盒,回收系統(tǒng)資源。
[0061 ]創(chuàng)建模塊根據(jù)硬件及操作系統(tǒng)環(huán)境自動(dòng)部署mongoDB實(shí)例,所述mongoDB實(shí)例為數(shù)據(jù)沙盒,所述服務(wù)端采用云服務(wù)器或共享服務(wù)器,在服務(wù)端為云服務(wù)器時(shí),為每個(gè)用戶獨(dú)立創(chuàng)建虛擬操作系統(tǒng)環(huán)境,直接在虛擬機(jī)上部署獨(dú)立的mongoDB實(shí)例;在服務(wù)端為共享服務(wù)器時(shí),共享環(huán)境部署共享mongoDB實(shí)例,對(duì)環(huán)境的元數(shù)據(jù)信息進(jìn)行登記管理。
[0062]管理模塊在服務(wù)端為云服務(wù)器時(shí),通過(guò)虛擬化技術(shù)提供的存儲(chǔ)及運(yùn)算資源配額管理功能,實(shí)現(xiàn)數(shù)據(jù)沙盒的配額管理;在服務(wù)端為共享服務(wù)器時(shí),通過(guò)啟動(dòng)不同端口上mongoDB實(shí)例的方式,結(jié)合操作系統(tǒng)的特性,進(jìn)行存儲(chǔ)及運(yùn)算資源配額管理。
[0063]在服務(wù)端為共享服務(wù)器時(shí),進(jìn)行如下存儲(chǔ)及運(yùn)算資源配額管理:存儲(chǔ)空間的配額管理,通過(guò)每次用戶執(zhí)行數(shù)據(jù)更新前檢測(cè)該用戶對(duì)應(yīng)的數(shù)據(jù)沙盒的狀態(tài),如果已使用量超過(guò)預(yù)設(shè)值,則禁止用戶執(zhí)行操作;內(nèi)存的配額管理,通過(guò)監(jiān)測(cè)實(shí)例進(jìn)程,通過(guò)操作系統(tǒng)層面啟動(dòng)進(jìn)程所占用資源的方式實(shí)現(xiàn)對(duì)數(shù)據(jù)沙盒的進(jìn)程進(jìn)行內(nèi)存配額管理。
[0064]所述導(dǎo)入模塊通過(guò)隨機(jī)抽樣、分層抽樣、整群抽樣和系統(tǒng)抽樣中的任一種抽樣算法將數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)和/或外部數(shù)據(jù)抽取到數(shù)據(jù)沙盒;還包括可視化界面,為用戶提供可視化數(shù)據(jù)導(dǎo)入、操作和分析功能。
[0065]以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種基于mongoDB的數(shù)據(jù)沙盒實(shí)現(xiàn)方法,其特征在于,包括如下步驟: SI,服務(wù)端接收用戶端發(fā)送的創(chuàng)建數(shù)據(jù)沙盒的申請(qǐng); S2,服務(wù)端根據(jù)申請(qǐng)?jiān)趍ongoDB上為用戶創(chuàng)建獨(dú)立的數(shù)據(jù)沙盒; S3,服務(wù)端進(jìn)行數(shù)據(jù)沙盒的存儲(chǔ)及運(yùn)算資源配額的管理; S4,服務(wù)端將數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)或者外部數(shù)據(jù)導(dǎo)入到數(shù)據(jù)沙盒中,在數(shù)據(jù)沙盒環(huán)境中進(jìn)行數(shù)據(jù)處理; S5,數(shù)據(jù)處理完畢,服務(wù)端將處理后的數(shù)據(jù)從數(shù)據(jù)沙盒中導(dǎo)出,并銷(xiāo)毀數(shù)據(jù)沙盒,回收系統(tǒng)資源。2.根據(jù)權(quán)利要求1所述一種基于mongoDB的數(shù)據(jù)沙盒實(shí)現(xiàn)方法,其特征在于,S2中根據(jù)硬件及操作系統(tǒng)環(huán)境自動(dòng)部署mongoDB實(shí)例,所述mongoDB實(shí)例為數(shù)據(jù)沙盒,所述服務(wù)端采用云服務(wù)器或共享服務(wù)器,在服務(wù)端為云服務(wù)器時(shí),為每個(gè)用戶獨(dú)立創(chuàng)建虛擬操作系統(tǒng)環(huán)境,直接在虛擬機(jī)上部署獨(dú)立的mongoDB實(shí)例;在服務(wù)端為共享服務(wù)器時(shí),共享環(huán)境部署共享mongoDB實(shí)例,對(duì)環(huán)境的元數(shù)據(jù)信息進(jìn)行登記管理。3.根據(jù)權(quán)利要求2所述一種基于mongoDB的數(shù)據(jù)沙盒實(shí)現(xiàn)方法,其特征在于,S3中在服務(wù)端為云服務(wù)器時(shí),通過(guò)虛擬化技術(shù)提供的存儲(chǔ)及運(yùn)算資源配額管理功能,實(shí)現(xiàn)數(shù)據(jù)沙盒的配額管理;在服務(wù)端為共享服務(wù)器時(shí),通過(guò)啟動(dòng)不同端口上mongoDB實(shí)例的方式,結(jié)合操作系統(tǒng)的特性,進(jìn)行存儲(chǔ)及運(yùn)算資源配額管理。4.根據(jù)權(quán)利要求3所述一種基于mongoDB的數(shù)據(jù)沙盒實(shí)現(xiàn)方法,其特征在于,在服務(wù)端為共享服務(wù)器時(shí),進(jìn)行如下存儲(chǔ)及運(yùn)算資源配額管理:存儲(chǔ)空間的配額管理,通過(guò)每次用戶執(zhí)行數(shù)據(jù)更新前檢測(cè)該用戶對(duì)應(yīng)的數(shù)據(jù)沙盒的狀態(tài),如果已使用量超過(guò)預(yù)設(shè)值,則禁止用戶執(zhí)行操作;內(nèi)存的配額管理,通過(guò)監(jiān)測(cè)實(shí)例進(jìn)程,通過(guò)操作系統(tǒng)層面啟動(dòng)進(jìn)程所占用資源的方式實(shí)現(xiàn)對(duì)數(shù)據(jù)沙盒的進(jìn)程進(jìn)行內(nèi)存配額管理。5.根據(jù)權(quán)利要求1所述一種基于mongoDB的數(shù)據(jù)沙盒實(shí)現(xiàn)方法,其特征在于,S4中通過(guò)隨機(jī)抽樣、分層抽樣、整群抽樣和系統(tǒng)抽樣中的任一種抽樣算法將數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)和/或外部數(shù)據(jù)抽取到數(shù)據(jù)沙盒;提供可視化界面,為用戶提供可視化數(shù)據(jù)導(dǎo)入、操作和分析功能。6.一種基于mongoDB的數(shù)據(jù)沙盒實(shí)現(xiàn)系統(tǒng),其特征在于,包括客戶端和服務(wù)端,所述客戶端用于向服務(wù)端發(fā)送創(chuàng)建數(shù)據(jù)沙盒的申請(qǐng),所述服務(wù)端包括: 接收模塊,用于接收用戶端發(fā)送的創(chuàng)建數(shù)據(jù)沙盒的申請(qǐng); 創(chuàng)建模塊,用于根據(jù)申請(qǐng)?jiān)趍ongoDB上為用戶創(chuàng)建獨(dú)立的數(shù)據(jù)沙盒; 管理模塊,用于進(jìn)行數(shù)據(jù)沙盒的存儲(chǔ)及運(yùn)算資源配額的管理; 導(dǎo)入模塊,用于將數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)或者外部數(shù)據(jù)導(dǎo)入到數(shù)據(jù)沙盒中; 處理模塊,用于在數(shù)據(jù)沙盒環(huán)境中進(jìn)行數(shù)據(jù)處理; 導(dǎo)出模塊,用于在數(shù)據(jù)處理完畢,將處理后的數(shù)據(jù)從數(shù)據(jù)沙盒中導(dǎo)出,并銷(xiāo)毀數(shù)據(jù)沙盒,回收系統(tǒng)資源。7.根據(jù)權(quán)利要求6所述一種基于mongoDB的數(shù)據(jù)沙盒實(shí)現(xiàn)系統(tǒng),其特征在于,創(chuàng)建模塊根據(jù)硬件及操作系統(tǒng)環(huán)境自動(dòng)部署mongoDB實(shí)例,所述mongoDB實(shí)例為數(shù)據(jù)沙盒,所述服務(wù)端采用云服務(wù)器或共享服務(wù)器,在服務(wù)端為云服務(wù)器時(shí),為每個(gè)用戶獨(dú)立創(chuàng)建虛擬操作系統(tǒng)環(huán)境,直接在虛擬機(jī)上部署獨(dú)立的mongoDB實(shí)例;在服務(wù)端為共享服務(wù)器時(shí),共享環(huán)境部署共享mongoDB實(shí)例,對(duì)環(huán)境的元數(shù)據(jù)信息進(jìn)行登記管理。8.根據(jù)權(quán)利要求7所述一種基于mongoDB的數(shù)據(jù)沙盒實(shí)現(xiàn)系統(tǒng),其特征在于,管理模塊在服務(wù)端為云服務(wù)器時(shí),通過(guò)虛擬化技術(shù)提供的存儲(chǔ)及運(yùn)算資源配額管理功能,實(shí)現(xiàn)數(shù)據(jù)沙盒的配額管理;在服務(wù)端為共享服務(wù)器時(shí),通過(guò)啟動(dòng)不同端口上mongoDB實(shí)例的方式,結(jié)合操作系統(tǒng)的特性,進(jìn)行存儲(chǔ)及運(yùn)算資源配額管理。9.根據(jù)權(quán)利要求8所述一種基于mongoDB的數(shù)據(jù)沙盒實(shí)現(xiàn)系統(tǒng),其特征在于,在服務(wù)端為共享服務(wù)器時(shí),進(jìn)行如下存儲(chǔ)及運(yùn)算資源配額管理:存儲(chǔ)空間的配額管理,通過(guò)每次用戶執(zhí)行數(shù)據(jù)更新前檢測(cè)該用戶對(duì)應(yīng)的數(shù)據(jù)沙盒的狀態(tài),如果已使用量超過(guò)預(yù)設(shè)值,則禁止用戶執(zhí)行操作;內(nèi)存的配額管理,通過(guò)監(jiān)測(cè)實(shí)例進(jìn)程,通過(guò)操作系統(tǒng)層面啟動(dòng)進(jìn)程所占用資源的方式實(shí)現(xiàn)對(duì)數(shù)據(jù)沙盒的進(jìn)程進(jìn)行內(nèi)存配額管理。10.根據(jù)權(quán)利要求6所述一種基于mongoDB的數(shù)據(jù)沙盒實(shí)現(xiàn)系統(tǒng),其特征在于,所述導(dǎo)入模塊通過(guò)隨機(jī)抽樣、分層抽樣、整群抽樣和系統(tǒng)抽樣中的任一種抽樣算法將數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)和/或外部數(shù)據(jù)抽取到數(shù)據(jù)沙盒;還包括可視化界面,為用戶提供可視化數(shù)據(jù)導(dǎo)入、操作和分析功能。
【文檔編號(hào)】G06F17/30GK105868389SQ201610232811
【公開(kāi)日】2016年8月17日
【申請(qǐng)日】2016年4月15日
【發(fā)明人】嚴(yán)敏
【申請(qǐng)人】北京思特奇信息技術(shù)股份有限公司