基于分布式的數(shù)字化數(shù)據(jù)存儲檢索系統(tǒng)_第1頁
基于分布式的數(shù)字化數(shù)據(jù)存儲檢索系統(tǒng)_第2頁
基于分布式的數(shù)字化數(shù)據(jù)存儲檢索系統(tǒng)_第3頁
基于分布式的數(shù)字化數(shù)據(jù)存儲檢索系統(tǒng)_第4頁
基于分布式的數(shù)字化數(shù)據(jù)存儲檢索系統(tǒng)_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

基于分布式的數(shù)字化數(shù)據(jù)存儲檢索系統(tǒng)

高速數(shù)據(jù)是云計算領域提出的要求數(shù)據(jù)加載效率、存儲效率和數(shù)據(jù)搜索效率。通常,數(shù)據(jù)加載效率在gbps或gbps的范圍內(nèi),數(shù)據(jù)存儲規(guī)模在tb或pb的范圍內(nèi)。對于大規(guī)模數(shù)據(jù)存儲和數(shù)據(jù)搜索(本文稱之為大數(shù)據(jù)集),大規(guī)模數(shù)據(jù)存儲和數(shù)據(jù)搜索(本文稱為大數(shù)據(jù)集)是一種典型的應用,如大量日志、網(wǎng)絡消息、web2.0框架下的ss、電子商務、數(shù)據(jù)結構等。在數(shù)據(jù)匹配條件下,由于數(shù)據(jù)匹配的限制,傳統(tǒng)的randomforest在管理大數(shù)據(jù)集存儲方面的工作量較低。在某些情況下,本地數(shù)據(jù)的失敗和系統(tǒng)擴展的效率較低。解決方法是:通過簡化數(shù)據(jù)匹配的要求,消除復雜的相關性請求,并將具體應用改進系統(tǒng)。然而,大量記錄存儲在同一個表的另一個表中,單個表達到了數(shù)十億或數(shù)十億記錄。在這種大數(shù)據(jù)存儲條件下,效率數(shù)據(jù)存儲和搜索存在著新的課題。Google對這一問題進行深入分析,結合Google的業(yè)務背景,提出Bigtable數(shù)據(jù)管理方法,建立列存儲數(shù)據(jù)結構,提供基于Row-Key的數(shù)據(jù)檢索接口.此后,業(yè)界也紛紛提出分布式結構化數(shù)據(jù)存儲管理模型,也稱為No-SQL(notonlySql)數(shù)據(jù)庫.典型的No-SQL數(shù)據(jù)庫包括Dynamo,Cassandra,PNUTS,Hbase以及Hypertable等.但是目前的分布式No-SQL數(shù)據(jù)管理系統(tǒng)對于數(shù)據(jù)的多列查詢支持較弱,僅提供基于KEY的讀取和寫入操作,不具備多列查詢、數(shù)值統(tǒng)計分析等復雜的查詢功能.另外一種BigData管理思路是基于Hadoop建立BigData管理工具,利用MapReduce加速檢索過程.這類系統(tǒng)提供了橫向擴展規(guī)模,但是不支持流數(shù)據(jù)的高效加載與查詢的功能.由于MapReduce的每個Map過程、Reduce結果都要把文件寫入到文件系統(tǒng)中進行緩存,導致整個系統(tǒng)的檢索效率低下.針對該問題,本文基于Hadoop建立面向結構化流數(shù)據(jù)提出具有在線數(shù)據(jù)加載和快速檢索的分布式數(shù)據(jù)存儲系統(tǒng)MDSS(massivedatastoragesystem),建立二維表空間數(shù)據(jù)管理模型,重點解決數(shù)據(jù)的分布存儲與復雜條件的高效查詢問題.1存儲數(shù)據(jù)存儲系統(tǒng)升級存儲“大數(shù)據(jù)集”要求較高的數(shù)據(jù)加載效率、數(shù)據(jù)存儲效率以及數(shù)據(jù)檢索效率,目前主要的解決思路是利用多機協(xié)同的分布式存儲環(huán)境提高系統(tǒng)處理效率.MDSS分布式系統(tǒng)結構如圖1所示,系統(tǒng)包括4個部分:加載機集群、查詢機集群、元數(shù)據(jù)節(jié)點集群以及存儲節(jié)點集群.加載機集群:整個系統(tǒng)的數(shù)據(jù)加載端.可以以進程為單位,在多臺設備上同時建立多個并發(fā)加載客戶端,通過并發(fā)加載提高系統(tǒng)整體加載效率.在MDSS中,加載機集群同時緩存近期入庫的數(shù)據(jù),經(jīng)過固定的時間周期,把緩存數(shù)據(jù)通過千兆Ethernet寫到數(shù)據(jù)存儲管理裝置中.查詢機集群:用戶在查詢機上發(fā)出查詢指令建立查詢規(guī)劃,查詢機根據(jù)元數(shù)據(jù)節(jié)點集群保存的元數(shù)據(jù)信息,向存儲節(jié)點分發(fā)查詢?nèi)蝿?最后匯總多個存儲節(jié)點返回的查詢結果,提交給用戶.存儲節(jié)點集群:持久存儲長期保存的歷史數(shù)據(jù).把數(shù)據(jù)源進行分塊存儲,通常把一次或幾次從加載機刷新到集群中的數(shù)據(jù)作為數(shù)據(jù)分塊單位.元數(shù)據(jù)節(jié)點集群:用來協(xié)調(diào)整個集群的工作,保存整個系統(tǒng)工作所需的元數(shù)據(jù)信息.元數(shù)據(jù)節(jié)點集群存儲的元數(shù)據(jù)包括:數(shù)據(jù)節(jié)點狀態(tài)信息;索引分片具體的存儲位置信息;表空間元數(shù)據(jù);每個表空間內(nèi)的一些輔助信息以及系統(tǒng)日志等.MDSS系統(tǒng)主要支持分布式的數(shù)據(jù)存儲和檢索,具體數(shù)據(jù)查詢流程如圖2所示:(1)用戶在查詢機上提交查詢請求.(2)查詢機根據(jù)具體的查詢?nèi)蝿?向元數(shù)據(jù)節(jié)點查詢對應表空間元數(shù)據(jù)和所需的元數(shù)據(jù)信息.(3)元數(shù)據(jù)節(jié)點集群根據(jù)查詢條件,提供檢索所需的元數(shù)據(jù),例如:對應的表空間結構數(shù)據(jù),索引分塊與節(jié)點的映射關系等.(4)查詢機根據(jù)元數(shù)據(jù)信息,建立查詢規(guī)劃,決定向哪些存儲節(jié)點發(fā)送查詢命令.某些查詢可以利用元數(shù)據(jù)信息優(yōu)化查詢過程.由于加載機會緩存有近期的數(shù)據(jù),針對近期數(shù)據(jù)的查詢會發(fā)送到加載機.(5)數(shù)據(jù)存儲節(jié)點根據(jù)檢索條件,檢索符合條件的數(shù)據(jù)集,并發(fā)回給查詢機,查詢機對查詢結果進行最后的匯總、統(tǒng)計,以及必要的后期數(shù)據(jù)處理工作.(6)查詢機對結果集按照用戶指定的格式封裝,返回給查詢用戶,完成一次完整的數(shù)據(jù)查詢過程.2sd數(shù)據(jù)的模型和結構2.1表結構編碼設計MDSS為用戶提供二維表空間數(shù)據(jù)管理模型.以記錄為單位,每個記錄內(nèi)包含多個字段或屬性.表空間利用表結構描述字段類型.數(shù)據(jù)類型由表結構文件描述.表結構文件在創(chuàng)建表空間時生成,保持到元數(shù)據(jù)節(jié)點集群中.MDSS設計了一種針對單表空間內(nèi)面向流記錄的數(shù)據(jù)統(tǒng)計與分析語言,語法規(guī)則與標準的SQL相同,但是取消了標準SQL中關聯(lián)查詢、嵌套查詢、視圖等復雜的檢索功能,本文簡稱為MQL語言.具體支持的查詢功能如表1所示:2.2存儲位置設置數(shù)據(jù)在存儲節(jié)點上采用列存儲結構,把字段值按照字典序排序存儲,不同字段分別保存到文件的不同位置,一定長度的數(shù)據(jù)作為一個單獨的文件保存,稱為分片(shard).shard是并發(fā)檢索和分布存儲的基本單位,目前通常以加載機一次或幾次刷新到集群中的數(shù)據(jù)源作為一個shard.在每個shard內(nèi)部引入塊內(nèi)索引,用來標記索引分塊內(nèi)部不同字段屬性數(shù)據(jù)的具體存儲位置.索引塊的大小通常使用固定大小空間存儲,便于一次性加載到內(nèi)存中進行數(shù)據(jù)統(tǒng)計.由于內(nèi)容相同的字段根據(jù)字典序排序后相鄰存儲,因此引入壓縮技術會顯著提高數(shù)據(jù)的存儲效率.在日志、流記錄等應用場合,時間屬性是最常用的檢索屬性,MDSS采用時間屬性對數(shù)據(jù)進行分區(qū)管理,索引分片之間保持時間有序.同時建立基于時間屬性的分布式B+Tree,加快分區(qū)數(shù)據(jù)的檢索過程.B+Tree的葉節(jié)點保存每個索引分片對應的最大時間屬性和索引分片的存儲節(jié)點的位置.分布式B+Tree保存在元數(shù)據(jù)節(jié)點集群中.具體結構如圖3所示:索引分片數(shù)據(jù)作為基本的調(diào)度和計算單位,持久存儲到存儲節(jié)點上.當數(shù)據(jù)從加載機刷新到存儲節(jié)點集群時,根據(jù)設置的副本冗余度和集群存儲節(jié)點列表,按序選擇可用的存儲節(jié)點,寫入數(shù)據(jù).當設置副本冗余度時,加載機會選擇不同的節(jié)點分別寫入數(shù)據(jù).在數(shù)據(jù)檢索時,一個索引分片檢索結果如果超過返回時間限制,可以選擇對應的索引分片的副本重新執(zhí)行檢索操作,實現(xiàn)數(shù)據(jù)容錯功能.限于篇幅,關于數(shù)據(jù)詳細的組織方式不再詳述.3查詢子任務合并MDSS執(zhí)行復雜查詢條件的基本原則是對查詢條件劃分成查詢子任務,每個子任務在分布式環(huán)境下的不同層次上并發(fā)實現(xiàn),充分發(fā)揮分布式環(huán)境下并發(fā)、并行的計算能力,提高查詢效率.3.1查詢條件使用主鍵MDSS把具體的查詢條件分解為3類基本條件,每類基本條件作為一類查詢子任務.分區(qū)查詢條件:分區(qū)查詢條件直接定位于滿足查詢條件的目標數(shù)據(jù)文件,大大縮小海量數(shù)據(jù)的查詢范圍.MDSS使用主鍵作為分區(qū)檢索條件,默認選擇時間屬性作為主鍵.過濾查詢條件:過濾類查詢條件是針對每列獨立設置查詢條件.字符類字段支持模糊查詢;數(shù)字類字段支持比較,大于、小于等查詢;多列查詢條件之間通過邏輯運算符號ANDORNOT進行連接,構成多個邏輯組合查詢條件.過濾類查詢條件相當于關系代數(shù)中的選擇和投影操作.統(tǒng)計分析查詢條件:統(tǒng)計分析類查詢條件需要面向全局數(shù)據(jù)集的統(tǒng)計、分析操作.具體的查詢條件包括:數(shù)據(jù)分組操作(GROUPBY)、數(shù)據(jù)排序操作(ORDERBY)、TOP-K以及聚合函數(shù),如SUM,AVG,MAX,MIN等.3.2存儲節(jié)點的及時檢索在分布式環(huán)境下,可以把一個具體的復雜查詢?nèi)蝿瞻凑丈鲜龇诸惙椒ǚ纸獬?類基本查詢條件,每類查詢條件對應一種查詢子任務,利用分布式環(huán)境下的不同層次執(zhí)行具體的查詢子任務.MDSS默認采用時間屬性作為主鍵,根據(jù)檢索條件中的時間屬性可以直接檢索到符合條件的目標索引分片,加速檢索過程,符合日志類數(shù)據(jù)、流數(shù)據(jù)應用場景.對于統(tǒng)計分析類查詢條件通常是聚合函數(shù)(如SUM,AVG等)和分組、排序等操作同時存在,此時為了保證檢索結果的正確性,需要首先在每個存儲節(jié)點上執(zhí)行過濾查詢條件,每個存儲節(jié)點向查詢客戶端返回結果集,查詢機上針對所有存儲節(jié)點返回的數(shù)據(jù)做最后階段的統(tǒng)一處理后得到正確結果集.MDSS針對部分查詢做了特殊優(yōu)化處理.具有分組、排序等操作,MDSS會把這類查詢條件與過濾類查詢條件一起發(fā)送到存儲節(jié)點上執(zhí)行,此時各個節(jié)點返回的子查詢結果集是已經(jīng)分好組、排好序或去重后的結果集,會大大提高數(shù)據(jù)匯總階段的執(zhí)行效率.4實驗結果與分析為了測試系統(tǒng)的具體性能,針對某運營商DNS訪問記錄進行落地存儲.實驗環(huán)境為:加載機為兩個節(jié)點,配置為AMDOpteron23788核800MHz8GB內(nèi)存;查詢機一個節(jié)點,配置為AMDOpteron23788核800MHz16GB內(nèi)存;元數(shù)據(jù)集群一個節(jié)點,具體配置為AMDOpteron23788核800MHz16GB內(nèi)存.4個存儲節(jié)點,具體配置為AMDOpteron83804核800MHz.存儲節(jié)點加載磁盤陣列,每個節(jié)點加載5TB磁盤空間,集群提供20TB存儲空間.系統(tǒng)連續(xù)運行50天左右,平均每天入庫數(shù)據(jù)量4~5億條記錄,保存DNS記錄230億條左右,占用的存儲空間14TB.在當前數(shù)據(jù)規(guī)模條件下進行具體的實驗測試.首先給出不同的檢索時間間隔對檢索效率的影響.針對2011-07-01T00:00:00到2011-07-01T24:00:00期間內(nèi),連續(xù)24h的數(shù)據(jù)進行實驗分析.該時間段內(nèi)的保存的記錄數(shù)目為510335051條.具體的檢索條件包括下列條件:3)分區(qū)檢索條件TIME=T.設檢索時間為T為參數(shù),當T取不同時間間隔時,檢索效率與具體的時間關系如圖4所示:從圖4可以看出檢索效率基本上與檢索條件的時間間隔呈線性增長.在數(shù)據(jù)庫規(guī)模為230億記錄存儲空間為14TB4個存儲節(jié)點條件下,對24h內(nèi)的數(shù)據(jù)進行多屬性檢索時,檢索時間在140s左右返回查詢結果.該結果遠遠高于傳統(tǒng)數(shù)據(jù)庫的查詢效率.其主要時間消耗在查詢機從元數(shù)據(jù)節(jié)點查詢元數(shù)據(jù)信息以及多查詢節(jié)點間的數(shù)據(jù)通信和匯總上.圖5給出了MDSS檢索效率與返回結果集數(shù)目的之間的關系,從圖5中可以看出,MDSS檢索效率與返回的結果集有關.當結果集過大時,不僅傳輸數(shù)據(jù)、數(shù)據(jù)匯總占用更多的時間,在使用列存儲結構、重構整條原始記錄都會占用更多的時間.圖6給出,當使用多個邏輯條件組合時,檢索條件通過OR或AND進行連接,檢索效率與多檢索條件個數(shù)之間的關系.通過圖6可以看出,邏輯條件的個數(shù)增加時(實驗中增加到32個檢索條件),檢索時間基本不發(fā)生變化.由于過濾類檢索條件在分布式存儲節(jié)點上并發(fā)執(zhí)行,每個節(jié)點針對具體的索引分片啟動多線程檢索,同時MDSS索引分片采用列存結構,適于應用在大數(shù)據(jù)集、復雜檢索條件的分析應用中.結合上述實驗,可以得出MDSS具體的查詢效率主要與檢索結果集數(shù)目有關,當結果集過大,由分布式系統(tǒng)的磁盤IO、數(shù)據(jù)通信、查詢機上數(shù)據(jù)匯總等操作會占用較多的時間,進而導致系統(tǒng)檢索效率下降.對于相對復雜的檢索條件可以根據(jù)具體索引結構、數(shù)據(jù)存儲組織方式

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論