亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于MongoDB的地震勘探數(shù)據(jù)管理系統(tǒng)的設(shè)計與實現(xiàn)

        2022-04-06 10:11:36耿恒高徐傳鵬彭蒙蒙彭蘇萍何登科
        實驗室研究與探索 2022年2期
        關(guān)鍵詞:數(shù)據(jù)庫信息系統(tǒng)

        許 娜, 耿恒高, 徐傳鵬, 彭蒙蒙, 彭蘇萍, 何登科

        (中國礦業(yè)大學(xué)(北京)地球科學(xué)與測繪工程學(xué)院,煤炭資源與安全開采國家重點實驗室,北京 100083)

        0 引 言

        地震勘探數(shù)據(jù)在地球物理勘探領(lǐng)域是資源勘探開發(fā)、資源評價與利用及相關(guān)決策制定的重要基礎(chǔ)資料,其高效存取、處理和利用將直接影響石油、天然氣和煤炭等能源勘探開發(fā)的經(jīng)濟(jì)效益。近幾年,隨著勘探技術(shù)的日益發(fā)展,萬道以上的高密度地震勘探技術(shù)得到廣泛應(yīng)用,地震數(shù)據(jù)呈現(xiàn)爆炸式增長,數(shù)據(jù)規(guī)??蛇_(dá)PB、EB量級,地震勘探數(shù)據(jù)進(jìn)入大數(shù)據(jù)時代。面對如此海量的數(shù)據(jù),如何科學(xué)、有效地存取與管理地震大數(shù)據(jù),提高地震數(shù)據(jù)的利用價值,是煤炭資源與安全開采重點實驗室亟需解決的科學(xué)問題。另外,地球物理學(xué)專業(yè)學(xué)生如何學(xué)習(xí)和運用新信息技術(shù)來管理、處理海量的地震數(shù)據(jù),也是新時期地球物理學(xué)專業(yè)教學(xué)中亟需解決的實踐教學(xué)問題。

        5G通信、云計算、大數(shù)據(jù)、人工智能、物聯(lián)網(wǎng)等技術(shù)的發(fā)展,為海量的地震數(shù)據(jù)存儲管理提供了一個契機(jī)[1]。這些新技術(shù)使通過無限的存儲空間實現(xiàn)地震勘探大數(shù)據(jù)管理系統(tǒng)的高可用性和低維護(hù)成本成為可能,地震勘探數(shù)據(jù)已邁入“大數(shù)據(jù)”行列,對地震勘探行業(yè)產(chǎn)生深遠(yuǎn)的影響[2-4]。目前對于海量的地震勘探數(shù)據(jù),缺少規(guī)范的在線存取和系統(tǒng)集中式管理,信息應(yīng)用功能性不強(qiáng),數(shù)據(jù)共享程度有待提高[5]。隨著互聯(lián)網(wǎng)Web技術(shù)的蓬勃發(fā)展,Web交互變得更加便捷,Web系統(tǒng)在數(shù)據(jù)治理方面得到重視,能夠?qū)崿F(xiàn)數(shù)據(jù)的網(wǎng)絡(luò)管理和達(dá)到數(shù)據(jù)共享的功能[6]。這種獨立于平臺的使用方式越來越受到開發(fā)者和用戶的青睞,國內(nèi)能源院校、單位已經(jīng)開始規(guī)劃實驗室信息管理系統(tǒng)[7-9]。系統(tǒng)開發(fā)人員已經(jīng)逐漸將研究方式從C/S架構(gòu)轉(zhuǎn)向B/S架構(gòu),使用Web形式進(jìn)行地學(xué)數(shù)據(jù)存儲管理[10-12]。本文從重點實驗室對地震勘探數(shù)據(jù)存取管理需求為出發(fā)點,總結(jié)勘探開發(fā)數(shù)據(jù)管理技術(shù)、地理信息系統(tǒng)技術(shù)以及油田、煤田系統(tǒng)架構(gòu)設(shè)計等技術(shù)方法,將互聯(lián)網(wǎng)主流開發(fā)技術(shù)應(yīng)用到地震勘探數(shù)據(jù)存取管理,提出了基于MongoDB的地震勘探數(shù)據(jù)管理系統(tǒng)的設(shè)計與實現(xiàn)。同時為地球物理學(xué)專業(yè)的地震勘探和地球物理軟件兩大類課程提供了豐富的實踐教學(xué)案例。

        1 地震勘探數(shù)據(jù)管理系統(tǒng)研究現(xiàn)狀

        1.1 地震勘探數(shù)據(jù)存儲需求分析

        地球物理勘探作為地球科學(xué)中重要的研究手段,已經(jīng)產(chǎn)生了海量的勘探數(shù)據(jù)。在各種勘探方法中,地震勘探技術(shù)是勘探石油、天然氣和煤炭等能源最有效的方法,地震勘探過程中產(chǎn)生的數(shù)據(jù)被稱為地震數(shù)據(jù)。地震勘探原理是利用人工激發(fā)地震波在地下地質(zhì)體中傳播后被地表檢波器接收,通過處理檢波器接收的地震信號,研究地下地質(zhì)構(gòu)造,尋找有用礦產(chǎn)資源的一種極重要的地球物理勘探方法,被廣泛應(yīng)用于石油、煤田、地?zé)岬饶茉刺綔y。

        隨著科學(xué)技術(shù)的進(jìn)步,各類物探傳感器飛速發(fā)展,數(shù)據(jù)采集、傳輸技術(shù)得到了很大的提高,萬道以上高密度地震勘探技術(shù)開始廣泛應(yīng)用于復(fù)雜的勘探對象,地震勘探已逐步向高密度、高精度發(fā)展,地震數(shù)據(jù)采集量迅速增長,總量達(dá)到了PB、EB級規(guī)模,呈現(xiàn)指數(shù)增長趨勢[13-14]。據(jù)統(tǒng)計,2017年,每一炮的地震數(shù)據(jù)為32 000道,到了2020年,上升為64 000道,按照摩爾定律,每一炮的地震數(shù)據(jù)3年會翻一番[15]。如此海量的地震數(shù)據(jù),傳統(tǒng)的關(guān)系型數(shù)據(jù)庫已經(jīng)難以滿足存儲管理需求,需要探索出更加合適的存儲管理方式。并且,當(dāng)今市場上的大多數(shù)地震數(shù)據(jù)軟件系統(tǒng)都定義了自己的內(nèi)部格式,導(dǎo)致了數(shù)據(jù)存儲方面的某些局限性,這對于構(gòu)建統(tǒng)一的地震勘探數(shù)據(jù)管理系統(tǒng)帶來了一定的挑戰(zhàn)。因此,系統(tǒng)一方面需要滿足多種數(shù)據(jù)格式快速存取和高效管理需求;另一方面還需滿足數(shù)據(jù)量的不斷增加,數(shù)據(jù)源應(yīng)具備易擴(kuò)展性。

        1.2 地震勘探數(shù)據(jù)格式分析

        地震數(shù)據(jù)格式是地震勘探過程中數(shù)據(jù)存儲的一種特殊格式,地震數(shù)據(jù)格式較為復(fù)雜,通常以二進(jìn)制形式存儲。地震勘探道數(shù)據(jù)類型常見的分為:IBM浮點型、IEEE浮點型、16位整型、32位整型[16]。地震數(shù)據(jù)格式眾多,野外數(shù)據(jù)采集儀器一般會有自己專門的數(shù)據(jù)組織形式,數(shù)據(jù)格式也各不相同,這些數(shù)據(jù)格式只針對軟件本身,在其它軟件中很難兼容管理。為了統(tǒng)一地震數(shù)據(jù)格式,國際勘探地球物理協(xié)會(Society ofExploration Geophysicists,SEG)制定了標(biāo)準(zhǔn)的地震數(shù)據(jù)記錄格式——SEG格式。SEG格式有如下幾種:SEGB格式、SEG-A格式、SEG-C格式、SEG-D格式、SEG-Y格式等[17]。隨著地震勘探技術(shù)發(fā)展和軟件系統(tǒng)的不斷迭代,部分格式已經(jīng)淘汰,目前業(yè)內(nèi)使用最多的是SEG-Y格式。本文以SEG-Y格式為主要研究對象,SEG-Y格式又分為標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)格式,區(qū)別在于是否含有3 600 Byte的文件頭。標(biāo)準(zhǔn)的SEG-Y格式主要是由3部分組成,其結(jié)構(gòu)如圖1所示[18]。

        圖1 SEG-Y數(shù)據(jù)格式示意圖

        由圖1可以看出,第1部分是ASCII編碼3 200 Byte EBCDIC文件頭,存儲在40條記錄中,每條記錄包括80 Byte,保存了數(shù)據(jù)整體性的描述信息,主要是記錄了施工區(qū)域、施工單位和測量參數(shù)等信息。第2部分是文件頭,共400 Byte,用二進(jìn)制表示,記錄了數(shù)據(jù)的具體信息。第3部分則是數(shù)據(jù)信息,記錄了具體的地震數(shù)據(jù),每一炮對應(yīng)一道數(shù)據(jù)信息,每一道數(shù)據(jù)包括道頭和道數(shù)據(jù)兩部分信息,道頭信息共240 Byte,使用二進(jìn)制存放,記錄了該道的具體位置信息,如采樣點數(shù)、采樣間隔、道集號、XLine號、InLine號以及坐標(biāo)信息等。地震勘探數(shù)據(jù)通常以SEG-Y格式存儲在工作站,如Alpha、Sun、IBM工作站。

        1.3 地震勘探數(shù)據(jù)管理系統(tǒng)研究進(jìn)展

        地震勘探在采集、處理和解釋等各個階段產(chǎn)生了大量的地震數(shù)據(jù),這些數(shù)據(jù)具有采集成本高、可用周期長、數(shù)據(jù)量大等特點。地震數(shù)據(jù)包含了大量的結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)。海量的地震數(shù)據(jù)需要科學(xué)有效的存取管理,地震勘探數(shù)據(jù)管理系統(tǒng)經(jīng)歷了如下幾個階段:人工管理階段、文件系統(tǒng)管理階段、數(shù)據(jù)庫系統(tǒng)管理階段、分布文件系統(tǒng)管理階段等(見表1)。

        表1 地震勘探數(shù)據(jù)管理系統(tǒng)發(fā)展階段

        2 系統(tǒng)數(shù)據(jù)源的選擇

        傳統(tǒng)的關(guān)系型數(shù)據(jù)庫由于存在擴(kuò)展性有限、數(shù)據(jù)存取效率低、性能不足等缺陷,已無法滿足當(dāng)今地震數(shù)據(jù)面臨的存取與管理需求,因此有必要探索一種新的數(shù)據(jù)源來提高地震數(shù)據(jù)管理系統(tǒng)的使用效率。而NoSQL數(shù)據(jù)庫具有水平擴(kuò)展容易、數(shù)據(jù)存儲效率高和性能穩(wěn)定等優(yōu)點,可作為最佳數(shù)據(jù)源選擇,目前已應(yīng)用在地學(xué)各領(lǐng)域。本文分析NoSQL數(shù)據(jù)庫和地震勘探數(shù)據(jù)管理系統(tǒng)特點與優(yōu)勢,以滿足實驗室對地震勘探數(shù)據(jù)高效存取與管理需求為出發(fā)點,選擇合適的NoSQL數(shù)據(jù)庫作為數(shù)據(jù)源。

        2.1 NoSQL數(shù)據(jù)庫分類對比

        近年來,非關(guān)系型數(shù)據(jù)庫(NoSQL)在數(shù)據(jù)庫領(lǐng)域迅速發(fā)展,并且非關(guān)系型數(shù)據(jù)庫(NoSQL)被認(rèn)為比關(guān)系型數(shù)據(jù)庫(SQL)更適合于海量數(shù)據(jù)的存儲和管理[19-20]。NoSQL數(shù)據(jù)庫使用分布式節(jié)點進(jìn)行水平擴(kuò)展,用戶可以通過添加節(jié)點來動態(tài)提高數(shù)據(jù)庫存儲負(fù)載[21-22]。到目前為止,廣泛使用的NoSQL數(shù)據(jù)庫分為以下四大類[23-24](見表2)。

        表2 非關(guān)系型數(shù)據(jù)庫分類

        本文系統(tǒng)主要基于Web頁面實現(xiàn)地震勘探數(shù)據(jù)的高效、快速存取管理,分析上述NoSQL數(shù)據(jù)庫的特點,最終采用Web端表現(xiàn)優(yōu)異的文檔型數(shù)據(jù)庫典型代表MongoDB數(shù)據(jù)庫作為系統(tǒng)開發(fā)的數(shù)據(jù)源。

        2.2 MongoDB數(shù)據(jù)庫

        MongoDB是基于分布式文件系統(tǒng)的NoSQL開源數(shù)據(jù)庫項目,它是一個高性能且可擴(kuò)展的面向文檔型存儲模式的數(shù)據(jù)庫[25]。它使用C++編程語言開發(fā),使用類似于JSON類型的BSON(Binary JSON)松散式格式,可存儲比較復(fù)雜的數(shù)據(jù)類型,可作為Web應(yīng)用程序優(yōu)秀的數(shù)據(jù)源。MongoDB提供了索引、聚合、分片和負(fù)載均衡等功能,支持大規(guī)模數(shù)據(jù)批處理,是一種介于關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)之間的數(shù)據(jù)庫。MongoDB采用內(nèi)存映射的內(nèi)部管理機(jī)制,在進(jìn)行數(shù)據(jù)管理操作時,MongoDB會把磁盤商隊數(shù)據(jù)的所有操作轉(zhuǎn)換為內(nèi)存操作,其中所有關(guān)于內(nèi)存的操作全部由操作系統(tǒng)來執(zhí)行。MongoDB采用文檔模型進(jìn)行數(shù)據(jù)存儲,與關(guān)系模型的存儲方式不同,如圖2所示。相比于關(guān)系模型,文檔模型更適合作為Web開發(fā)的選擇,主要基于以下幾點:

        圖2 關(guān)系模型與文檔模型

        (1)讀寫效率高。文檔模型把數(shù)據(jù)信息存儲在JSON中,查詢數(shù)據(jù)時用很少的時間就可查詢到磁頭,相比于關(guān)系模型的二維表,在IO性能上有明顯優(yōu)勢。

        (2)可擴(kuò)展能力強(qiáng)。由于多節(jié)點數(shù)據(jù)關(guān)聯(lián)存在性能問題,因此關(guān)系型數(shù)據(jù)庫很難做分布式。而文檔模型不考慮關(guān)聯(lián),數(shù)據(jù)容易分庫,水平擴(kuò)展比較容易。

        (3)動態(tài)模式。關(guān)系模型中二維表表示數(shù)據(jù)相對固定;文檔模型數(shù)據(jù)結(jié)構(gòu)靈活,每個文檔可以存儲不同結(jié)構(gòu)的數(shù)據(jù)。

        (4)模型自然。文檔模型與對象模型十分類似,無需經(jīng)過對象關(guān)系映射(ORM)雙向轉(zhuǎn)換,可直接用于內(nèi)存和存儲之間相互操作。

        3 系統(tǒng)設(shè)計與實現(xiàn)

        3.1 系統(tǒng)開發(fā)技術(shù)選型

        (1)瀏覽器端開發(fā)技術(shù)。瀏覽器端(前端)開發(fā)主要采用HTML、CSS、JavaScript 3種基本語言。為了更好、更快速開發(fā),系統(tǒng)在開發(fā)階段采用了較為完善的前端框架。本文通過Node Package Manager(NPM)、Stack Overflow Survey、GitHub Stars統(tǒng)計數(shù)據(jù)來篩選出當(dāng)前應(yīng)用成熟和廣泛的框架,比較當(dāng)前幾種主流的前端框架,最終選用Vue.js作為地震大數(shù)據(jù)管理系統(tǒng)的前端開發(fā)框架。

        Vue.js是一個開源的輕量級前端JavaScript框架,采用自下而上的方式開發(fā)設(shè)計。Vue.js有著名的全家桶系列,包括了Vue-cli、Vue-router、Vuex、Axios等。Vue-cli稱為腳手架,是官方開發(fā)的標(biāo)準(zhǔn)工具,通過Vue-cli可以快速構(gòu)建系統(tǒng)的前端框架。Vue-router是Vue.js官方指定的路由管理器,實現(xiàn)數(shù)據(jù)的全局管理。Vuex是應(yīng)用程序開發(fā)的狀態(tài)管理模式,它將所有組件共享的變量存儲在一個對象里,該對象放在頂層組件供其他組件使用。Axios是基于Promise的HTTP請求包,Vue.js使用Axios進(jìn)行HTTP調(diào)用。Axios把請求封裝起來,看起來像一個整體。Axios的API很豐富,除了常用的請求方法外,還提供了以下功能:①全局?jǐn)?shù)據(jù)請求響應(yīng)與攔截;②轉(zhuǎn)換請求和響應(yīng)數(shù)據(jù);③取消請求;④自動轉(zhuǎn)換為JSON數(shù)據(jù);⑤客戶端防止CSRF/XSRF攻擊;⑥可以創(chuàng)建不同的實例,提供并發(fā)封裝;⑦為復(fù)雜型場景提供靈活定義。有了這些模塊,使得系統(tǒng)的前端開發(fā)能夠快速的實現(xiàn)業(yè)務(wù)功能。

        (2)服務(wù)器端開發(fā)技術(shù)。Python作為當(dāng)今最流行的開發(fā)語言之一,得到廣大編程愛好者的人員的使用。Python Web框架有許多,如Django、Flask、Tornado、Pylons、Web2py、Bottle等,目前最為流行的是Django和Flask,系統(tǒng)采用Django作為服務(wù)器端(后端)開發(fā)框架。Django是一個遵循MVC架構(gòu)模式的Python Web網(wǎng)絡(luò)框架,它包含了創(chuàng)建應(yīng)用需要的幾乎全部功能,可以快速開發(fā)安全和可維護(hù)的網(wǎng)站。Django只需要單獨的安裝包來安裝,框架本身能夠?qū)崿F(xiàn)各種功能,可以不依靠其它的庫來完成。它具有設(shè)計優(yōu)秀、結(jié)構(gòu)合理、性能出眾、功能完善、要素齊全等特點,具體表現(xiàn)在Django提供了完善的幫助文檔;在訪問數(shù)據(jù)庫時提供了豐富的組件功能;Django提供了靈活的URL映射,幫助快速編寫接口;Template模板語言能夠幫助編輯Web頁面;提供了專門的后臺管理系統(tǒng);提供完整的錯誤信息提示幫助系統(tǒng)開發(fā)。Django采用MTV模式的框架基礎(chǔ),它將開發(fā)任務(wù)分為Model、Template、View三大部分,如圖3所示。

        圖3 Django MTV框架

        MTV與MVC模式非常相似,它將開發(fā)工作分為3層,數(shù)據(jù)存取層(Model)實現(xiàn)業(yè)務(wù)對象明模型和數(shù)據(jù)庫之間關(guān)系映射(ORM);表現(xiàn)層(Template)提供了語法模板展示信息頁面;業(yè)務(wù)邏輯層(View)調(diào)用數(shù)據(jù)存取層和表現(xiàn)層,處理用戶請求并返回響應(yīng)。Django響應(yīng)順序如下:①Django收到瀏覽器HTTP請求;②通過URLconf查找對應(yīng)的視圖,進(jìn)行URL路由分發(fā);③視圖接收到業(yè)務(wù)請求后查詢數(shù)據(jù),獲取對應(yīng)的頁面;④視圖函數(shù)處理完成給服務(wù)器返回HTTP響應(yīng);⑤服務(wù)器將響應(yīng)發(fā)送給瀏覽器。

        系統(tǒng)在后端開發(fā)中使用Python語言操作MongoDB時,使用PyMongo、MongoEngine、Djongo等模塊,這些模塊可以很好的操作MongoDB數(shù)據(jù)庫。系統(tǒng)采用Django REST Framework(DRF)進(jìn)行接口的編寫,DRF是Django實現(xiàn)RESTful風(fēng)格API框架,具有以下特點:具有清晰的API Web信息頁面;Django ORM自動序列化;支持OAuth1和OAuth2授權(quán);支持身份認(rèn)證和權(quán)限控制;內(nèi)置訪問頻率限制功能;豐富的定制層級;可擴(kuò)展性,插件豐富,使用廣泛,文檔豐富等。

        3.2 系統(tǒng)架構(gòu)設(shè)計

        軟件系統(tǒng)最開始在大型機(jī)上運行,用戶通過“啞終端”方式登錄使用軟件系統(tǒng)。隨著個人電腦發(fā)展和應(yīng)用,人們開始在電腦客戶端(Client)使用軟件系統(tǒng),數(shù)據(jù)庫運行在服務(wù)器端(Server),這種Client/Server模式簡稱C/S架構(gòu)。隨著Web技術(shù)的不斷發(fā)展,系統(tǒng)開發(fā)逐步向瀏覽器端過渡,由于C/S架構(gòu)需要更新每個客戶端桌面應(yīng)用程序才可以滿足系統(tǒng)的更新,實現(xiàn)起來比較繁瑣。因此新型的Browser/Server架構(gòu)模式開始出現(xiàn),簡稱B/S架構(gòu)。在B/S架構(gòu)中,用戶訪問瀏覽器獲取Web頁面,通過瀏覽器請求服務(wù)器,服務(wù)器端完成應(yīng)用程序的業(yè)務(wù)請求和數(shù)據(jù)存儲功能,這種方式具有極強(qiáng)的交互性。B/S架構(gòu)系統(tǒng)更新十分便捷,只需服務(wù)器端進(jìn)行升級部署,瀏覽器就可以輕松地使用新的應(yīng)用,因此B/S架構(gòu)迅速流行起來。本文研究的系統(tǒng)采用前后端分離的B/S分層架構(gòu)開發(fā)模式,主要基于以下幾點:

        (1)分布性強(qiáng)。系統(tǒng)建立在廣域網(wǎng),不同的用戶可以隨時隨地進(jìn)行數(shù)據(jù)的查詢、瀏覽等操作。在網(wǎng)絡(luò)環(huán)境下,可以利用電腦、平板、手機(jī)等設(shè)備通過瀏覽器進(jìn)行快速訪問。

        (2)擴(kuò)展簡單。通過增加網(wǎng)頁和添加相關(guān)頁面功能即可擴(kuò)展系統(tǒng)業(yè)務(wù)。根據(jù)用戶需求,可定制專門的功能模塊,具有很好的靈活性和較強(qiáng)的耦合性。

        (3)維護(hù)方便。通過更新修改對應(yīng)的組件即可實現(xiàn)系統(tǒng)更新。只需開發(fā)者完成相應(yīng)工作,用戶無需任何操作。

        (4)共享性強(qiáng)。通過網(wǎng)絡(luò)可以實時地實現(xiàn)數(shù)據(jù)的共享,對數(shù)據(jù)進(jìn)行存取管理。

        (5)使用靈活。不僅可以應(yīng)用于Windows平臺,還可以應(yīng)用于Unix/Linux等平臺,在電腦、平板、手機(jī)等設(shè)備上都可以進(jìn)行使用。

        3.3 分布式存儲集群搭建

        (1)硬件環(huán)境配置。硬件配置需要考慮到數(shù)據(jù)庫服務(wù)器的CPU、內(nèi)存、硬盤配置等方面,信息如表3所示。

        表3 硬件環(huán)境配置參數(shù)

        (2)軟件環(huán)境配置。對MongoDB數(shù)據(jù)庫軟件進(jìn)行安裝和相關(guān)參數(shù)的配置,如表4所示。MongoDB 4個節(jié)點部署在虛擬機(jī)Vmware Workstation中的CentOS7.2環(huán)境下。系統(tǒng)使用Virtualenv創(chuàng)建Python虛擬環(huán)境,保證軟件環(huán)境的獨立性和兼容性。

        表4 系統(tǒng)軟件信息

        (3)系統(tǒng)測試環(huán)境。使用不同內(nèi)核瀏覽器進(jìn)行測試,包括:IE11、Chrome 80.0、Firefox 71.0、Safari 14.1等;對系統(tǒng)在電腦端、移動手機(jī)、平板等設(shè)備中的顯示效果和功能進(jìn)行測試。

        (4)分布式存儲集群搭建。地震大數(shù)據(jù)管理系統(tǒng)數(shù)據(jù)源采用MongoDB副本集與分片結(jié)合的方式搭建分布式集群,目前搭建4個節(jié)點,分別在CentOS_master、CentOS_slave1、CentOS_slave2、CentOS_slave3機(jī)器上進(jìn)行部署,具體集群規(guī)劃信息如表5所示。

        表5 服務(wù)器規(guī)劃

        具體分片集群架構(gòu)如圖4所示,每臺機(jī)器具體配置了相關(guān)信息。

        圖4 系統(tǒng)集群部署結(jié)構(gòu)圖

        創(chuàng)建分布式集群相關(guān)目錄。在四臺虛擬機(jī)器CentOS_master、CentOS_slave1、CentOS_slave2、CentOS_slave3中分別配置對應(yīng)文件目錄,下面是每臺機(jī)器的創(chuàng)建相關(guān)文件目錄的具體操作步驟。例如在Master:192.168.55.110節(jié)點創(chuàng)建conf、mongos、config、shard1、shard3、shard4等相關(guān)目錄的命令如下:

        初始化副本集:rs.initiate(config),出現(xiàn)相關(guān)信息,如圖5所示。

        圖5 初始化副本集

        (6)配置分片副本集。在四臺機(jī)器上分別進(jìn)行相關(guān)信息配置,這里以shard1副本集為例。在3個節(jié)點master、slave1、slave2機(jī)器中/usr/local/mydb/conf/shard1.conf目錄下進(jìn)行如下相關(guān)信息配置:

        初始化副本集配置,使用命令rs.initiate(config),出現(xiàn)如圖6所示表示成功。

        圖6 初始化shard1副本集

        (7)配置Mongos。先啟動各節(jié)點配置服務(wù)器Configs,再啟動分片服務(wù)器Shard,最后啟動路由Mongos。分別在對應(yīng)機(jī)器(master、slave1、slave2)/usr/local/mydb/conf/mongos.conf目錄下添加如下內(nèi)容:

        查看集群狀態(tài):通過命令sh.status()查看信息如圖7所示。

        圖7 分片集群狀態(tài)

        (9)分布式存儲集群啟動。啟動所有節(jié)點配置服務(wù)器(節(jié)點master、slave1、slave2),啟動命令如下:

        成功啟動分布式存儲集群,集群連接測試如圖8示。

        3.4 分布式存儲集群測試

        (1)負(fù)載均衡測試。在一般情況下,數(shù)據(jù)在MongoDB數(shù)據(jù)存儲會幾乎均勻的分配到各個節(jié)點,但由于網(wǎng)絡(luò)不穩(wěn)定等原因,有可能會出現(xiàn)數(shù)據(jù)服務(wù)器宕機(jī)的情況。如果系統(tǒng)僅部署一臺數(shù)據(jù)庫服務(wù)器,會造成數(shù)據(jù)丟失,這顯然是不合理的選擇。針對上述可能出現(xiàn)的問題,系統(tǒng)采用MongoDB數(shù)據(jù)庫副本集(Replica Set)的方式來實現(xiàn)數(shù)據(jù)的復(fù)和備份,即均衡負(fù)載特性。本文測試向搭建好的分布式集群中寫入10萬條數(shù)據(jù)進(jìn)行測試,查看其數(shù)據(jù)分布情況,每個節(jié)點的數(shù)據(jù)分布結(jié)果見圖9。

        圖9 分布式集群各節(jié)點數(shù)據(jù)信息

        從圖9中可以統(tǒng)計如下信息:

        從統(tǒng)計信息中可以發(fā)現(xiàn),10萬條數(shù)據(jù)量在各個節(jié)點上維持在25 000條左右,系統(tǒng)搭建分布式集群在插入數(shù)據(jù)時可以達(dá)到負(fù)載均衡的效果。

        (2)集群壓力測試。利用Mongostat可以查看MongoDB的實時性能、QPS和連接數(shù)等信息。使用命令監(jiān)測分片集群,如圖10所示顯示了插入數(shù)據(jù)時監(jiān)控界面。啟動命令如下:

        圖10 分片集群mongostat監(jiān)控界面

        mongostat--host 192.168.55.110:20000

        分片集群通過YCSB進(jìn)行讀寫性能等壓力測試,YCSB(Yahoo!Cloud Serving Benchmark)是一款開源的分布式性能測試工具,常用于測試NoSQL產(chǎn)品的讀寫性能。本文通過MongoDB自帶的Mongostat監(jiān)控配合YCSB進(jìn)行測試,對系統(tǒng)集群進(jìn)行讀寫測試。YCSB中workloads目錄自帶6種壓力測試,信息見表6。

        表6 YCSB場景對應(yīng)關(guān)系

        系統(tǒng)分別對workloads幾種模式進(jìn)行集群測試,這里100%讀的場景為例,配置文件workloadc_mongo信息如下:

        在集群中先進(jìn)行數(shù)據(jù)加載,命令如下,查看系統(tǒng)生成相關(guān)信息如圖11所示。

        圖11 YCSB加載測試數(shù)據(jù)信息

        加載好數(shù)據(jù),進(jìn)行Run測試命令如下:

        分別進(jìn)行workloada、workloadb、workloadc、workloadd、workloade、workloadf等幾種情況下測試,統(tǒng)計各種情況下的運行時間(Runtime)和吞吐量(Throughout),如圖12所示。

        通過圖12可以清晰地發(fā)現(xiàn),在運行100萬條數(shù)據(jù)量情況下workloade情況下運行時間最長,每秒集群吞吐量最少,每秒僅僅達(dá)到約98條數(shù)據(jù);workloadc情況選下運行運行時間最短,每秒的吞吐量大約為2 181條數(shù)據(jù)。通過測試對比這幾種情況,發(fā)現(xiàn)MongoDB分布式集群在寫數(shù)據(jù)的方面表現(xiàn)一般,但在讀數(shù)據(jù)方面比寫數(shù)據(jù)表現(xiàn)出色,比較適合系統(tǒng)開發(fā)中數(shù)據(jù)讀多寫少的特點。

        3.5 數(shù)據(jù)的存儲策略

        中國礦業(yè)大學(xué)(北京)煤炭資源與安全開采國家重點實驗室經(jīng)過幾十年的煤炭地震勘探,積累了海量的地震勘探數(shù)據(jù),這些數(shù)據(jù)包括了結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù),這些寶貴的勘探數(shù)據(jù)的獲取花費了大量的人力和財力,需要科學(xué)、規(guī)范的存儲管理。地震勘探過程中產(chǎn)生的結(jié)構(gòu)化數(shù)據(jù)包括了EXCEL、TXT、CSV等格式數(shù)據(jù),這些結(jié)構(gòu)化數(shù)據(jù)適合于建立索引和自動創(chuàng)建元數(shù)據(jù)。半結(jié)構(gòu)化數(shù)據(jù)包括HTML、XML、JSON等格式和一些NoSQL數(shù)據(jù)庫中的格式。非結(jié)構(gòu)結(jié)構(gòu)化數(shù)據(jù)包括文檔、圖片、音頻、視頻等格式的資料。

        3.5.1 結(jié)構(gòu)化數(shù)據(jù)存儲

        對于地震勘探數(shù)據(jù)中EXCEL、CSV、TXT等數(shù)據(jù)格式,可以轉(zhuǎn)化為BSON格式進(jìn)行存儲。對于存儲特定的空間信息的數(shù)據(jù),系統(tǒng)采用GeoJSON編碼格式。以存儲地理坐標(biāo)為例,系統(tǒng)可以采用引用式和嵌入式兩種存儲方式(見圖13)。其他數(shù)據(jù)在數(shù)據(jù)存儲中需要根據(jù)數(shù)據(jù)的存儲要求采用合適的方式進(jìn)行數(shù)據(jù)存儲。系統(tǒng)支持相關(guān)數(shù)據(jù)的常見格式導(dǎo)出功能,滿足需求。

        圖13 數(shù)據(jù)存儲方式

        3.5.2 非結(jié)構(gòu)化數(shù)據(jù)存儲

        非結(jié)構(gòu)化數(shù)據(jù)的存儲,在關(guān)系型數(shù)據(jù)庫中通常是采用存儲數(shù)據(jù)的路徑方式進(jìn)行管理,本文研究的系統(tǒng)采用MongoDB內(nèi)置的GridFS存儲桶進(jìn)行存取管理,這樣存儲方式可以將數(shù)據(jù)描述信息和GridFS中的數(shù)據(jù)源緊密的聯(lián)系起來,在讀取數(shù)據(jù)時都能夠快速地定位到相關(guān)數(shù)據(jù)。如圖14所示,地震SEG-Y文件數(shù)據(jù)存儲在數(shù)據(jù)庫中,地震數(shù)據(jù)信息表中filedata字段信息與GridFS中ID字段進(jìn)行關(guān)聯(lián),地震數(shù)據(jù)信息表記錄文件名、研究區(qū)域、單位信息、上傳人員等描述信息,GridFS存儲記錄文件名、ID、數(shù)據(jù)大小、數(shù)據(jù)類型、上傳時間等信息。

        圖14 地震勘探數(shù)據(jù)信息關(guān)聯(lián)方式

        3.6 功能頁面的實現(xiàn)

        系統(tǒng)前端使用Vue.js技術(shù)實現(xiàn)地震勘探數(shù)據(jù)管理的Web頁面,采用響應(yīng)式布局的方式適配手機(jī)、平板、筆記本等不同的訪問設(shè)備,實現(xiàn)系統(tǒng)功能界面的友好顯示。如圖15所示,前者是在電腦端瀏覽器顯示結(jié)果,后者是在移動手機(jī)端瀏覽器顯示結(jié)果,系統(tǒng)能夠?qū)崿F(xiàn)響應(yīng)式布局,界面顯示友好。

        圖15 不同設(shè)備下系統(tǒng)界面顯示測試頁面

        系統(tǒng)根據(jù)地震勘探業(yè)務(wù)需求實現(xiàn)相關(guān)功能界面,完成對地震勘探數(shù)據(jù)的存取管理和快速查詢。其中包括了數(shù)據(jù)的上傳、下載、瀏覽、添加、刪除、修改、查詢等基礎(chǔ)功能,還實現(xiàn)了地震勘探數(shù)據(jù)典型的SEG-Y數(shù)據(jù)的數(shù)據(jù)解析查看功能,如圖16所示。

        圖16 地震元數(shù)據(jù)管理頁面

        4 結(jié) 語

        為了滿足煤炭資源與安全開采國家重點實驗室對地震勘探數(shù)據(jù)存取管理,同時為在地球物理學(xué)專業(yè)的教學(xué)中幫助學(xué)生掌握和運用新技術(shù)手段管理和處理海量地震勘探數(shù)據(jù),設(shè)計和實現(xiàn)了地震勘探數(shù)據(jù)管理系統(tǒng)。針對地震勘探數(shù)據(jù)采集、處理及解釋等各階段數(shù)據(jù)需求,對地震勘探Web系統(tǒng)運行業(yè)務(wù)進(jìn)行分析和設(shè)計,簡要闡述了系統(tǒng)的開發(fā)技術(shù)、系統(tǒng)架構(gòu)和底層數(shù)據(jù)源,探索一種基于MongoDB分布式存儲集群作管理系統(tǒng)新的數(shù)據(jù)源,設(shè)計和實現(xiàn)了系統(tǒng)Web功能。

        將NoSQL數(shù)據(jù)庫技術(shù)應(yīng)用到地震勘探領(lǐng)域是石油、煤炭等能源行業(yè)的發(fā)展趨勢。為了滿足實驗室對海量地震勘探數(shù)據(jù)存儲管理新需求,本文提出了基于MongoDB的地震勘探數(shù)據(jù)管理系統(tǒng)的設(shè)計與實現(xiàn)。該系統(tǒng)能夠滿足重點實驗室海量地震勘探數(shù)據(jù)的存儲管理需求,實現(xiàn)高效的地震數(shù)據(jù)管理,為數(shù)據(jù)處理、解釋人員提供了很好的服務(wù),也為地學(xué)的相關(guān)研究提供借鑒和參考。同時,為地震勘探基礎(chǔ)課程和地球物理軟件實踐教學(xué)提供了豐富的案例,幫助學(xué)生理解和掌握新信息技術(shù)在海量地震勘探數(shù)據(jù)中的應(yīng)用。

        猜你喜歡
        數(shù)據(jù)庫信息系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機(jī)系統(tǒng)
        ZC系列無人機(jī)遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        數(shù)據(jù)庫
        財經(jīng)(2017年2期)2017-03-10 14:35:35
        數(shù)據(jù)庫
        財經(jīng)(2016年15期)2016-06-03 07:38:02
        數(shù)據(jù)庫
        財經(jīng)(2016年3期)2016-03-07 07:44:46
        數(shù)據(jù)庫
        財經(jīng)(2016年6期)2016-02-24 07:41:51
        展會信息
        中外會展(2014年4期)2014-11-27 07:46:46
        久久久久久久综合综合狠狠| 中文字幕久久精品波多野结百度| 精品国产一区二区三区香蕉| 人人爽亚洲aⅴ人人爽av人人片| 在线看片免费人成视久网不卡| 国产精品综合女同人妖| 青青河边草免费在线看的视频| 男人添女人囗交做爰视频| 无码国产69精品久久久久孕妇| 久久人人玩人妻潮喷内射人人 | 国产毛片av最新视频| 久久精品国产亚洲av麻豆色欲| 中文在线8资源库| 波多野结衣中文字幕在线视频| 精品久久杨幂国产杨幂| 国产一区二区三区影片| 日韩精品极视频在线观看免费| 友田真希中文字幕亚洲| 亚洲国产成人av在线观看| 亚洲乱码中文字幕综合| 亚洲精品不卡电影| 性感人妻中文字幕在线| 国产一区二区在线免费视频观看| 人人妻人人澡人人爽精品日本| 久久久久免费看成人影片| 中国丰满熟妇xxxx| 国语对白做受xxxxx在线中国| 欧美亚洲国产人妖系列视| 国产一区二区亚洲av| 蜜桃久久综合一区二区| 日韩亚洲中文有码视频| 国产午夜精品一区二区| 乱子伦视频在线看| 91久国产在线观看| 精品一区二区三区婷婷| 99热在线观看| 中文字幕亚洲乱码熟女一区二区| 国产精品丝袜美女在线观看| 日本久久黄色高清视频| 亚洲av免费不卡在线观看| 亚洲一区二区三区四区五区六|