陳啟崧
【摘要】 本文通過分析“互聯網+”時代傳統(tǒng)企業(yè)互聯網化轉型,企業(yè)大數據在“存”、“管”、“用”技術支撐上面臨的問題,比較關系型數據庫系統(tǒng)與大數據技術平臺的應用特點,提出了企業(yè)大數據的存儲混搭架構思路。
【關鍵詞】 大數據 關系型數據庫 NoSQL 存儲架構
一、引言
“互聯網+”時代越來越多的企業(yè)認識到數據是企業(yè)很重要的核心資產,并開始通過信息應用來改造傳統(tǒng)行業(yè)。許多傳統(tǒng)企業(yè)開始探索互聯網化轉型之路,企業(yè)數據爆炸性增長,隨之而來出現了“存”、“管”、“用”這三個方面的難題:“存”——如何解決PB 級別海量數據的存儲問題?“管”——如何解決結構化、非結構化數據并存的管理問題?“用”——如何解決這種大規(guī)模復雜結構下的實時應用問題?
傳統(tǒng)關系型數據庫系統(tǒng)與新興的大數據技術平臺是兩條技術解決路線,本文將通過對比這兩種技術,為企業(yè)大數據的存儲與應用提供一個技術解決思路。
二、企業(yè)大數據的組成與技術支持
企業(yè)的傳統(tǒng)數據主要來自于業(yè)務運營支撐系統(tǒng)、企業(yè)管理系統(tǒng)等,主要是結構化數據;企業(yè)當前爆炸式增長的新數據主要來源于互聯網、移動互聯網上的圖片、文本、音頻、視頻等非結構化數據;結構化傳統(tǒng)數據和非結構化新數據一起構成了企業(yè)的大數據。目前業(yè)界對大數據還沒有統(tǒng)一的定義,但各大研究機構與國際組織對大數據的定義都至少包含這2層意思:一是要能對大體量、多類型的數據進行快速的處理,二是在成本可接受的前提下從大數據中提取有用的價值。概括的說,企業(yè)的大數據具備“4V”的特征:超量(Volume),需要存儲的數據量越來越大;多樣(Variety),存儲的數據類型種類越來越多;高速(Velocity),數據處理速度與應用速度要求越來越快;價值(Value),從低密度的數據中提取有價值的信息。因此,在技術層面上面臨3大挑戰(zhàn):(1)海量數據存哪里,才能既滿足高效率存儲和訪問的需求,又使存儲成本可控制?(2)如何滿足海量數據的高并發(fā)、實時動態(tài)獲取和更新數據?(3)如何保障數據庫系統(tǒng)的高可擴展性和7*24小時不間斷服務的高可用性需求?目前有兩條技術解決路線:一是將傳統(tǒng)關系型數據庫系統(tǒng)進行整合升級,如Oracle、EMC等企業(yè)設計了采用Shared-Nothing與MPP體系架構的數據庫一體機作為解決方案;二是專門設計了NoSQL數據庫系統(tǒng),以Apache的Hadoop、IBM PureData為代表的大數據平臺為主要的解決方案。
三、關系型數據庫系統(tǒng)與大數據技術平臺的比較
3.1關系型數據庫如何應對大數據
工程師們對關系型數據庫系統(tǒng)進行升級與優(yōu)化,通過分庫、分表,緩解數據增長壓力;采用主從數據庫分離、讀寫分離思路,緩解寫壓力,增強讀庫的可擴展性;采用主從結構Master-Slave,增強讀庫的可擴展性,并采用MMM(Master-Master Replication Manager for MySQL)技術來解決分布式存儲問題。在產品支持上主流數據庫廠商紛紛推出數據庫一體機產品,如Oracle Exadata、IBM Netezza、EMC GreenPlum等。
數據庫一體機的核心是SQL體系,可以兼顧企業(yè)中OLTP和OLAP兩類系統(tǒng)的應用要求,但這條技術路線仍有瑕疵:如分庫、分表受業(yè)務規(guī)則影響,維護變得十分復雜,系統(tǒng)數據訪問層代碼需要大量修改;Master-Slave架構在實時性很高的場合Slave實時性保障存在瓶頸,在高可用性上Master容易產生單點故障;MMM本身擴展性差,一次只能允許一個Master寫入,只能解決有限數據量下的可用性。
3.2大數據技術如何應對大數據
相對于傳統(tǒng)關系型數據庫的行存儲模式,大數據技術采用列存儲模式滿足海量數據的高效存儲和訪問要求,以NoSQL體系的非關系型數據庫服務器架構應用而生。其中Hadoop是一個典型代表,海量的數據交給Hadoop處理后,Hadoop提供一個分布式文件系統(tǒng)(HDFS)及分布式數據庫(Hbase)用來存儲或部署到各個計算點上,最終在內部采取MapReduce的模式對其數據進行分布式并行計算與合并處理,然后輸出處理結果。
NoSQL數據庫大都只是提供了海量數據的分布式存儲與基于索引的快速讀取機制,對復雜Join的操作性能低下,因此對OLTP系統(tǒng)的支持成為它的短板。
3.3兩種技術的異同點比較
從硬件集成角度上看,大數據技術與數據庫一體機基本相同。兩種技術最核心的區(qū)別在軟件體系上,具體比較如下表:
四、企業(yè)大數據的存儲架構建設思路
針對企業(yè)大數據的存儲與應用需求,大數據技術與關系型數據庫架構技術是相輔相成的,而不是互相替代的。它們針對不同的應用場景設計,可以相互補充與合作。
數據庫一體機較適用于存儲關系復雜的數據模型,如企業(yè)核心業(yè)務數據,并且需要限制為基于二維表的關系模型;同時適合進行一致性與事務性要求高的計算,以及復雜的BI計算。大數據技術則更適合于存儲較簡單的數據模型,并且可以不受模式的約束,因而其可存儲管理的數據類型更豐富。大數據技術同時適合進行一致性與事務性要求不高的計算,如NoSQL的查詢操作等,以及對超大規(guī)模海量數據的、批量的分布式并行計算。
因此,在“互聯網+”時代,當前企業(yè)的大數據存儲架構建設思路是采用大數據平臺與關系型數據庫系統(tǒng)混搭的架構。具體來講:業(yè)務支撐系統(tǒng)仍然部署在關系型數據庫上,傳統(tǒng)關系型數據庫技術還是作為企業(yè)數據倉庫的主流技術,它存儲與計算最主要的、有重大價值的企業(yè)關鍵業(yè)務數據。大數據技術可以處理企業(yè)內海量的、模型簡單、類型多樣的非結構化與半結構化數據,其處理結果可以被直接使用,也同時可以被當成是新的輸入存儲到企業(yè)級數據倉庫中,這時大數據技術相當于是面向大數據源的新的ETL手段。
五、結束語
進入“互聯網+”時代,在一個信息爆炸的環(huán)境下,企業(yè)更需要搭建合適的企業(yè)大數據存儲架構來存儲好、管理好和使用好這些數據,以真正將企業(yè)的數據資產變成企業(yè)的核心競爭力。