一種海量類定位數(shù)據(jù)存儲方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息處理技術(shù)領(lǐng)域,具體涉及一種海量類定位數(shù)據(jù)存儲方法。
【背景技術(shù)】
[0002]類定位數(shù)據(jù)是指包括定位信息和與其傳輸及存儲格式或形式類似的所有數(shù)據(jù)信息的統(tǒng)稱。定位信息雖然從分類方式上仍屬于結(jié)構(gòu)化數(shù)據(jù),但其某些存儲和應(yīng)用特性已經(jīng)發(fā)生巨大的變化,這主要體現(xiàn)在以下兩個方面:
[0003](I)由于產(chǎn)生定位信息的設(shè)備將不斷增加,或因特定業(yè)務(wù)需求而引起的定位信息采集密度的不斷提高,都將導(dǎo)致定位信息產(chǎn)生的量遠(yuǎn)遠(yuǎn)超出傳統(tǒng)業(yè)務(wù)。在當(dāng)前的實際業(yè)務(wù)運(yùn)行過程中,僅一個城市或地區(qū)的定位信息的數(shù)據(jù)量已達(dá)到每天2-3億條,這對數(shù)據(jù)在超大信息量情況下的快速存儲提出了較高的要求。
[0004](2)定位信息的相關(guān)業(yè)務(wù)應(yīng)用往往需要對特定條件的終端單位進(jìn)行快速查詢和檢索,例如:終端的定位,軌跡追蹤,批量終端的快速統(tǒng)計等等。這都要求定位信息的存儲系統(tǒng)能夠提供在超大規(guī)模數(shù)據(jù)信息中高性能的檢索服務(wù)能力。
[0005]傳統(tǒng)數(shù)據(jù)管理軟件產(chǎn)品由于自身的各種限制和制約因素,隨著數(shù)據(jù)量的迅速膨脹其性能下降,已不能適應(yīng)和滿足新時代的數(shù)據(jù)管理和服務(wù)的需求。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的是設(shè)計一種海量類定位數(shù)據(jù)存儲系統(tǒng)及方法??紤]到類定位信息發(fā)送比較頻繁,數(shù)據(jù)量較大,如果用關(guān)系型數(shù)據(jù)庫進(jìn)行存儲會帶來查詢維護(hù)操作效率隨時間降低的問題,故采用了 NoSQL、分布式數(shù)據(jù)存儲的技術(shù)。系統(tǒng)具有高速數(shù)據(jù)存儲和檢索能力、高度的可靠性和容錯能力、并提供接口定制服務(wù)。
[0007]本發(fā)明的技術(shù)方案如下:
[0008]一種海量類定位數(shù)據(jù)存儲方法,其特征在于:
[0009](I)構(gòu)建基于MongoDB服務(wù)器集群的海量類定位數(shù)據(jù)存儲系統(tǒng)作為支撐平臺,在此基礎(chǔ)上,通過構(gòu)建數(shù)據(jù)管理和服務(wù)的軟件集群提供面向用戶的數(shù)據(jù)服務(wù);
[0010](2)利用數(shù)據(jù)分片技術(shù)和分布式數(shù)據(jù)存儲技術(shù),采用無共享存儲架構(gòu),根據(jù)業(yè)務(wù)所需的特定維度對數(shù)據(jù)進(jìn)行拆分,并平均地存儲到所有的服務(wù)器和磁盤中,以保證系統(tǒng)讀寫負(fù)載盡可能均衡;
[0011](3)調(diào)動數(shù)據(jù)讀寫的所有1并獲得集群的總體1支持能力;
[0012](4)利用內(nèi)存映射文件技術(shù),將被訪問過的數(shù)據(jù)信息保存在服務(wù)器內(nèi)存中,從而在最大程度上減少磁盤1可能帶來的性能上的延遲。
[0013]所述服務(wù)器集群由多個服務(wù)器節(jié)點(diǎn)組成,服務(wù)器節(jié)點(diǎn)從角色上分為4類,包括:集群管理節(jié)點(diǎn),負(fù)責(zé)集群總體的管理維護(hù),在此節(jié)點(diǎn)上實現(xiàn)單點(diǎn)對全局的總體控制;元數(shù)據(jù)信息節(jié)點(diǎn),存儲和維護(hù)數(shù)據(jù)存儲的所有元數(shù)據(jù)及配置信息,配置1-3個節(jié)點(diǎn);數(shù)據(jù)存儲節(jié)點(diǎn),存儲實際的數(shù)據(jù)信息;訪問出口節(jié)點(diǎn),負(fù)責(zé)對存儲集群系統(tǒng)之外的應(yīng)用系統(tǒng)提供數(shù)據(jù)訪問服務(wù)。
[0014]本發(fā)明能夠緊貼用戶業(yè)務(wù)對數(shù)據(jù)存儲和檢索的實際性能要求,并能根據(jù)業(yè)務(wù)和性能需求的增長而實現(xiàn)動態(tài)擴(kuò)展,系統(tǒng)能夠從幾臺服務(wù)器持續(xù)擴(kuò)展到幾千至幾萬臺,系統(tǒng)所能提供的性能將隨著服務(wù)器的數(shù)量的擴(kuò)展而保持很好的線性增長。
[0015]本發(fā)明利用數(shù)據(jù)分片在多個不同服務(wù)器節(jié)點(diǎn)上的復(fù)制技術(shù)實現(xiàn)數(shù)據(jù)的冗余存儲,從而避免系統(tǒng)中單一故障點(diǎn)可能導(dǎo)致的數(shù)據(jù)丟失和不可用等情況的發(fā)生。一旦某個服務(wù)器發(fā)生故障,只需更換新的服務(wù)器或其所包含的存儲資源,系統(tǒng)將自動將數(shù)據(jù)從副本同步到新設(shè)備上,整個過程不需停止系統(tǒng),也不會影響業(yè)務(wù)連續(xù)運(yùn)行,所有操作都將在后臺自動執(zhí)行。
[0016]本產(chǎn)品具有靈活可擴(kuò)展的系統(tǒng)架構(gòu),能夠根據(jù)用戶需求定制特別的面向應(yīng)用的數(shù)據(jù)訪問接口,接口能支持包括 C/C++, C#, Java, Python, Ruby, Erlang, PHP, JavaScript 等多種開發(fā)語言。
[0017]定制的接口能夠支持多種協(xié)議和調(diào)用方式,包括Socket-API,Web Service,RESTful,RPC 等。
【附圖說明】
[0018]圖1是海量類定位數(shù)據(jù)存儲系統(tǒng)結(jié)構(gòu)。
【具體實施方式】
[0019]為了應(yīng)對海量信息存儲和查詢的挑戰(zhàn),誕生了眾多新興的數(shù)據(jù)存儲和應(yīng)用技術(shù)和模式,其中有代表性的就是NoSQL數(shù)據(jù)庫技術(shù),即非關(guān)系型數(shù)據(jù)庫技術(shù)。NoSQL數(shù)據(jù)存儲不需要固定的表結(jié)構(gòu),通常也不存在連接操作,在大數(shù)據(jù)存取上具備關(guān)系型數(shù)據(jù)庫無法比擬的性能優(yōu)勢。本發(fā)明就是一種基于NoSQL數(shù)據(jù)庫技術(shù)思想而設(shè)計開發(fā)的數(shù)據(jù)庫存儲管理系統(tǒng)。NOSQL系統(tǒng)可擴(kuò)展性比較好,能夠支持更大的數(shù)據(jù)量,因此也可以采用一些通過提高存儲空間來提高存儲檢索效率的做法。NOSQL系統(tǒng)由于存儲引擎實現(xiàn),并發(fā)控制機(jī)制等相對簡單,可以通過硬件的性能指標(biāo)在系統(tǒng)設(shè)計之初大致預(yù)估系統(tǒng)的性能,性能預(yù)估可操作性相對更強(qiáng)。
[0020]本發(fā)明在硬件層面構(gòu)建基于MongoDB服務(wù)器集群作為海量類定位數(shù)據(jù)存儲系統(tǒng)的基礎(chǔ)設(shè)施支撐平臺,在此基礎(chǔ)上,通過構(gòu)建數(shù)據(jù)管理和服務(wù)的軟件集群提供面向用戶的數(shù)據(jù)服務(wù)。
[0021]如圖1所示,海量類定位數(shù)據(jù)存儲系統(tǒng)總體為集群設(shè)計,集群由多個服務(wù)器組成。服務(wù)器節(jié)點(diǎn)從角色上可分為4類:
[0022](I)集群管理節(jié)點(diǎn),此類節(jié)點(diǎn)通常只需部署一個,負(fù)責(zé)集群總體的管理維護(hù),在此節(jié)點(diǎn)上實現(xiàn)單點(diǎn)對全局的總體控制;
[0023](2)元數(shù)據(jù)信息節(jié)點(diǎn),此類節(jié)點(diǎn)存儲和維護(hù)數(shù)據(jù)存儲的所有元數(shù)據(jù)及配置信息,通常配置1-3個節(jié)點(diǎn);
[0024](3)數(shù)據(jù)存儲節(jié)點(diǎn)(簡稱數(shù)據(jù)節(jié)點(diǎn)),此類節(jié)點(diǎn)存儲實際的數(shù)據(jù)信息,節(jié)點(diǎn)可獨(dú)立存在,也可由多個節(jié)點(diǎn)構(gòu)成一個副本組,然后通過多個副本組構(gòu)成整個集群,每個副本組內(nèi)的多個節(jié)點(diǎn)內(nèi)的數(shù)據(jù)保持復(fù)制和同步,以確保數(shù)據(jù)的可靠性和安全性;
[0025](4)訪問出口節(jié)點(diǎn),此類節(jié)點(diǎn)負(fù)責(zé)對存儲集群系統(tǒng)之外的應(yīng)用系統(tǒng)提供數(shù)據(jù)訪問服務(wù),可根據(jù)應(yīng)用系統(tǒng)的數(shù)量和性能需求配置I個或多個。
[0026]系統(tǒng)利用數(shù)據(jù)分片技術(shù)和分布式數(shù)據(jù)存儲技術(shù),采用無共享(Shared-Nothing)存儲架構(gòu),根據(jù)業(yè)務(wù)所需的特定維度對數(shù)據(jù)進(jìn)行拆分,并平均地存儲到所有的服務(wù)器和磁盤中,以保證系統(tǒng)讀寫負(fù)載盡可能均衡。數(shù)據(jù)讀寫的所有1都將調(diào)動并獲得集群的總體1支持能力,從而在最大程度上為數(shù)據(jù)的操作提供高性能服務(wù)。
[0027]此外,本發(fā)明利用內(nèi)存映射文件技術(shù),對被訪問過的數(shù)據(jù)信息將盡可能保存在服務(wù)器內(nèi)存中,從而在最大程度上減少磁盤1可能帶來的性能上的延遲。
【主權(quán)項】
1.一種海量類定位數(shù)據(jù)存儲方法,其特征在于: (1)構(gòu)建基于MongoDB服務(wù)器集群的海量類定位數(shù)據(jù)存儲系統(tǒng)作為支撐平臺,在此基礎(chǔ)上,通過構(gòu)建數(shù)據(jù)管理和服務(wù)的軟件集群提供面向用戶的數(shù)據(jù)服務(wù); (2)利用數(shù)據(jù)分片技術(shù)和分布式數(shù)據(jù)存儲技術(shù),采用無共享存儲架構(gòu),根據(jù)業(yè)務(wù)所需的特定維度對數(shù)據(jù)進(jìn)行拆分,并平均地存儲到所有的服務(wù)器和磁盤中,以保證系統(tǒng)讀寫負(fù)載盡可能均衡; (3)調(diào)動數(shù)據(jù)讀寫的所有1并獲得集群的總體1支持能力; (4)利用內(nèi)存映射文件技術(shù),將被訪問過的數(shù)據(jù)信息保存在服務(wù)器內(nèi)存中,從而在最大程度上減少磁盤1可能帶來的性能上的延遲。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于:所述服務(wù)器集群由多個服務(wù)器節(jié)點(diǎn)組成,服務(wù)器節(jié)點(diǎn)從角色上分為4類,包括:集群管理節(jié)點(diǎn),負(fù)責(zé)集群總體的管理維護(hù),在此節(jié)點(diǎn)上實現(xiàn)單點(diǎn)對全局的總體控制;元數(shù)據(jù)信息節(jié)點(diǎn),存儲和維護(hù)數(shù)據(jù)存儲的所有元數(shù)據(jù)及配置信息,配置1-3個節(jié)點(diǎn);數(shù)據(jù)存儲節(jié)點(diǎn),存儲實際的數(shù)據(jù)信息;訪問出口節(jié)點(diǎn),負(fù)責(zé)對存儲集群系統(tǒng)之外的應(yīng)用系統(tǒng)提供數(shù)據(jù)訪問服務(wù)。
【專利摘要】本發(fā)明提供一種海量類定位數(shù)據(jù)存儲方法,構(gòu)建基于MongoDB服務(wù)器集群的海量類定位數(shù)據(jù)存儲系統(tǒng)作為支撐平臺,利用數(shù)據(jù)分片技術(shù)和分布式數(shù)據(jù)存儲技術(shù),采用無共享存儲架構(gòu),根據(jù)業(yè)務(wù)所需的特定維度對數(shù)據(jù)進(jìn)行拆分,并平均地存儲到所有的服務(wù)器和磁盤中,以保證系統(tǒng)讀寫負(fù)載盡可能均衡,調(diào)動數(shù)據(jù)讀寫的所有IO并獲得集群的總體IO支持能力。此外,利用內(nèi)存映射文件技術(shù),將被訪問過的數(shù)據(jù)信息保存在服務(wù)器內(nèi)存中,從而在最大程度上減少磁盤IO可能帶來的性能上的延遲。
【IPC分類】G06F17-30
【公開號】CN104636332
【申請?zhí)枴緾N201310544357
【發(fā)明人】藍(lán)飛翔, 陳學(xué)釗, 袁芳, 王歡
【申請人】北京航天長峰科技工業(yè)集團(tuán)有限公司
【公開日】2015年5月20日
【申請日】2013年11月6日