任會民,楊旭輝,劉憲紅,劉飛
?
關于混凝土行業MongoDB數據庫應用的研究
任會民,楊旭輝,劉憲紅,劉飛
(中建商品混凝土有限公司,湖北 武漢 430074)
隨著移動互聯網、云計算、大數據、物聯網等信息技術的廣泛應用,混凝土行業信息系統使用的數據庫也有了更多的選擇。MongoDB是當前比較流行的NoSQL數據庫之一。很多情況下,MongoDB數據庫可用于替代混凝土行業傳統的關系型數據庫。為了提高混凝土行業的管理水平,針對混凝土企業常見的業務,結合MongoDB數據庫的特點,對MongoDB數據庫進行了研究,并分析出MongoDB數據庫在混凝土行業適用的場景。MongoDB數據庫適用于大多數混凝土企業。
互聯網;混凝土;MongoDB數據庫;分布式架構
在互聯網時代,我們的社會結構、生活方式、工作場景、思維范式等都呈現出全新的特點,一切傳統的思維和習慣都面臨著重塑。混凝土企業正加緊向“互聯網+”轉型,業務電商化、管理智能化、產業鏈生態化等成為混凝土市場新的主力場。
混凝土行業需要使用新的信息技術來滿足互聯網+的需求。MongoDB是最近流行的NoSql數據庫中的一種,MongDB數據庫的存儲方式、查詢方法、架構、數據處理方式等特點,在混凝土行業使用可以起到更好的效果。
NoSQL(NoSQL=Not Only SQL),即“不僅僅是SQL”。
NoSQL,指的是非關系型的數據庫。NoSQL有時被稱為Not Only SQL的縮寫,它是與傳統關系數據庫不同的數據庫管理系統的通用術語。NoSQL用于超大規模數據的存儲。例如,谷歌或Facebook每天為其用戶收集數萬億比特的數據。這些類型的數據存儲不需要固定模式,并且可以橫向擴展。NoSQL這個術語最早出現于1998年,是一個由Carlo Strozzi開發的輕量級、開源、非SQL啟用的關系數據庫。NoSQL最常見的解釋是“非關聯”,強調Key-Value Stores和文檔數據庫的優勢[1]。
MongoDB是一個基于分布式文件存儲的數據庫,屬于非關系數據庫,用C++語言編寫而成,旨在為Web應用程序提供可擴展的高性能數據存儲解決方案。
MongoDB是一個高性能、開源、無模式的文檔數據庫,是比較流行的NoSql數據庫之一。MongoDB是處于關系數據庫和非關系數據庫之間的產品。他支持的數據結構非常寬松,類似于Json的Bjson格式,因此它可以存儲更復雜的數據類型[2]。
MongoDB的最大特點是支持的查詢語言功能非常強大,其語法有些類似于面向對象的查詢語言。幾乎所有單表查詢的功能(如關系數據庫)都可以實現,并且還支持數據索引。MongoDB服務器在Linux、Windows或Mac OS X平臺上運行,并支持32位和64位應用程序。建議在64位平臺上運行,因為MongoDB在32位模式下運行時支持的最大文件大小為2 GB。
MongoDB具有高性能、易于部署和使用、用戶可以輕松存儲數據等優點。主要功能特性有:①對于集合存儲,很容易存儲對象類型的數據;②模式自由;③支持動態查詢;④支持完全索引,包含內部對象;⑤支持查詢;⑥支持復制和故障恢復;⑦使用高效的二進制數據存儲,包括大對象(如視頻);⑧自動處理碎片以支持云計算層次結構的可伸縮性;⑨支持RUBY、PYTHON、JAVA、C++、PHP、C#等多種語言;⑩文件存儲格式為BSON(一種JSON的擴展);?可通過網絡訪問。
國外的應用案例很多,在MongoDB的官網上有詳細說明,涉及金融、傳統等各類行業,下面主要來說一下國內的案例。
奇虎360技術有限公司是大家非常熟悉的病毒軟件防護公司,同時為網絡以及移動平臺提供產品。2011年起,奇虎360成為MongoDB的用戶,至今奇虎已經在MongoDB上構建了100多個不同的應用,其中包括新服務以及從傳統數據庫Mysql上遷移過來的服務。每天都會在MongoDB上運行超過1 000多個實例,并且支持200億次查詢。
中國東方航空2015開始開發全新航空電商系統,選用了可橫向擴展的NoSQL數據庫MongoDB。預估將來要能承載一天10億次數據查詢。東方航空開始先評估了Oracle關聯式數據庫。
東方航空航班數據庫每秒鐘都要接收幾百筆的數據更新,數據來自中國全球分銷系統GDS,航班數據一有變更就需要馬上同步,整個過程必須經過查詢、比較、計算以及插入等動作,他們評估的Oracle數據庫顯然無法加載,因此他們選擇了MongoDB數據庫。
攜程國際機票數據的緩存數據,從Redis上遷移到MongoDB數據庫上后,可以緩存數百億條國際機票查詢記錄,并能夠做到實時處理高并發的增刪改查。遷移完成之后,數據準確度提高了20%,速度提高80%.
MongoDB在高德得到廣泛應用,AOS、云圖、收藏夾等業務都使用了MongoDB數據庫,考慮到schema free、開發成本低以及高可用等特性,結合高德的發展需要,高德選擇了MongoDB。
根據MongoDB數據庫的特點,MongoDB適合以下場景:數據量大、讀寫次數高、需求多變、數據模型無法確認,需要對接多個數據源等。結合混凝土行業特征,MongoDB可用于下列范圍。
MongoDB數據庫適合需求多變的ERP系統設計。在經濟新常態下,隨著國家和地方的經濟轉型升級和結構調整,預拌混凝土行業的經營環境和市場形勢都發生著劇烈變化,特別是信息技術與互聯網技術的創新和應用,對預拌混凝土企業的傳統商業模式、經營方式、管理手段等方面,都提出了更大的挑戰。混凝土行業為了順應、把握和引領新時勢下的經營與發展,進行了大量的探索和實踐,特別是在精細化改革與建設方面,投入很大精力,開展了一系列攻堅工作。精細化改革離不開信息化手段的支撐,混凝土行業ERP需要隨著行業大環境適時進行調整、優化,MongoDB數據庫結構靈活,表結構更改比較自由,適合混凝土行業ERP系統設計。
MongoDB數據庫適用于存儲大容量混凝土生產消耗數據。材料消耗是混凝土企業的主要成本之一,混凝土ERP系統中需要對消耗數據進行采集、存儲、分析。混凝土消耗以盤次為單位,區分不同的貨倉材料,平均1車混凝土3~4盤,12種不同的貨倉材料,按1個中型廠站,月產量3×104m3,僅僅消耗一項,1個月約產生14.4萬條數據,長久以往,將產生數百萬級的數據,對系統造成較大的壓力,增加維護難度。可以將消耗存儲與ERP系統主數據庫分開,單獨存放于MongoDB數據庫中,MongoDB非常適合實時查詢、修改、新增,它具有網站實時數據存儲所需的可重復性和高靈活性,適用于具體生產消費數據的存儲[4]。
MongoDB適合多個系統之間數據對接。混凝土攪拌站存在ERP、工業控制系統、質量管理系統、磅房稱重系統等多種信息系統。多個系統之間可以采用webservice、WCF等技術進行數據對接。MongoDB以文檔方式進行數據存儲,文檔以BSON格式存在,這是一種JSON類文檔的二進制編碼格式,該結構類似于嵌套的鍵值對,每個文檔都有唯一的標識符。MongoDB可以支持豐富的查詢表達式、可以方便使用webservice技術在各個系統之間進行數據對接。
MongoDB可以存儲系統日志、配置信息。影響混凝土攪拌站管理的因素有:①混凝土攪拌站工控的品牌較多,有思偉、中建機械、三和、三一等多種品牌;②每個地區的實際情況不一樣,如環保等,有的地區有特殊要求;③每個區域公司會根據自身發展情況制定不同的管理要求等。混凝土信息系統設計時需要考慮通用性,在系統前臺增加響應功能,并根據不同情況進行配置,滿足通用性的要求。由于其高性能,MongoDB適合作為信息系統的緩存層。
混凝土對生產實時性要求較高,并要求信息系統有較高的穩定性,一旦出現故障,要求能快速排查,迅速解決問題;同時,需要對后續原因進行總結和分析,以避免后續的類似故障。混凝土企業內部運行的各類信息系統會產生大量的運行及訪問日志,日志里會包含一些錯誤、警告及用戶行為等各類信息,通常系統會以文本的形式記錄日志信息,但當產生大量的日志之后,要想從大量日志里挖掘出有價值的內容,則需要對數據進行進一步的存儲和分析,文本方式就難以滿足要求。當信息系統發生故障時,日志可以存儲在MongoDB數據庫中,這樣日志數據的價值就可以實現最大化,并加速問題的處理[5]。
MongoDB支持分布式文件存儲。針對混凝土行業對數據安全性要求較高、數據量較大的特點,MongoDB可以將數據同步在多個服務器。MongoDB的復制技術提供數據的冗余備份,并跨多個服務器存儲數據副本,從而提高數據可用性并確保數據安全。
MongoDB分片技術可以滿足MongoDB數據量的巨大增長。當MongoDB存儲大量數據時,一臺機器可能不足以存儲數據,并且可能不足以提供可接受的讀寫吞吐量。此時,我們可以通過在多臺機器上拆分數據來使數據庫系統存儲和處理更多數據[3]。
隨著信息化技術的不斷發展,MongoDB在混凝土行業ERP系統數據庫設計、大容量數據存儲、分布式系統設計、日志存儲、配置信息存儲等方面可以發揮巨大的作用,提高混凝土行業信息化水平。
[1]陳浩.非關系型與關系型空間數據庫協同應用探究[J].電子測試,2014(12).
[2]吳鵬,劉恒旺,丁慧君.基于本體和NoSQL的機械產品方案設計的知識表示與存儲研究[J].情報學報,2017(3).
[3]劉彬.分布式數據注冊中心數據分區存儲策略研究[D].成都:成都理工大學,2016.
[4]金鑫.商品水泥攪拌站管理決策及控制系統研究[D].重慶:重慶大學,2008.
[5]張迪.基于NoSQL的大規模Web日志分析系統的設計與實現[D].上海:復旦大學,2013.
2095-6835(2018)20-0038-02
F426.92
A
10.15913/j.cnki.kjycx.2018.20.038
任會民(1974—),男,湖北人,本科,工程師,研究方向為信息化管理。楊旭輝(1989—),男,湖北人,本科,研究方向為信息化管理。劉憲紅(1982—),男,湖北人,本科,研究方向為信息化管理。劉飛(1992—),男,安徽人,碩士,研究方向為城市計算、現代電子商務。
〔編輯:嚴麗琴〕