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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論