摘 要:本文結(jié)合大數(shù)據(jù)結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)檢索系統(tǒng)的設(shè)計(jì)思想并借鑒了云存儲(chǔ)中常用的數(shù)據(jù)管理方式,建立面向結(jié)構(gòu)化大數(shù)據(jù)存儲(chǔ)檢索系統(tǒng),系統(tǒng)支持結(jié)構(gòu)化數(shù)據(jù)的高效加載、分布存儲(chǔ)與復(fù)雜條件的查詢等功能,進(jìn)一步改進(jìn)的方向,建立分布式環(huán)境下面向復(fù)雜條件的高效查詢規(guī)劃。
關(guān)鍵詞:大數(shù)據(jù);倒排索引;高效檢索
建立面向結(jié)構(gòu)化數(shù)據(jù)的海量數(shù)據(jù)存儲(chǔ)檢索系統(tǒng),具有明顯的優(yōu)勢(shì),不僅提高了數(shù)據(jù)存儲(chǔ)的效率,還具備較多的功能,例如高效加載功能、分布存儲(chǔ)功能以及復(fù)雜條件的查詢功能。結(jié)合具體的應(yīng)用,綜合利用分區(qū)索引條件、列存儲(chǔ)結(jié)構(gòu)等技術(shù),會(huì)顯著提高海量結(jié)構(gòu)化數(shù)據(jù)的查詢效率;充分利用、挖掘分布式環(huán)境下的并發(fā)、并行計(jì)算能力,是提高面向大數(shù)據(jù)集、復(fù)雜查詢條件查詢效率的主要途徑。MDSS系統(tǒng)在查詢效率方面雖然取得了一定的成效,對(duì)數(shù)據(jù)存儲(chǔ)發(fā)揮了重要的作用,如何提高元數(shù)據(jù)的管理、訪問(wèn)效率;如何建立分布式環(huán)境下面向復(fù)雜條件的高效查詢規(guī)劃,減少中間結(jié)果集的傳遞、結(jié)果集匯總等時(shí)間消耗,都是進(jìn)一步提高系統(tǒng)查詢效率的關(guān)鍵所在。
1.大數(shù)據(jù)存儲(chǔ)檢索系統(tǒng)的工作機(jī)理
“大數(shù)據(jù)集”要求較高的數(shù)據(jù)加載效率、數(shù)據(jù)存儲(chǔ)效率以及數(shù)據(jù)檢索效率,目前主要的解決思路是利用多機(jī)協(xié)同的分布式存儲(chǔ)環(huán)境提高系統(tǒng)處理效率。大數(shù)據(jù)的處理對(duì)數(shù)據(jù)的加載效率、存儲(chǔ)效率和檢索效率提出了更高的要求,因此為了滿足大數(shù)據(jù)的需求,需要利用多機(jī)協(xié)同機(jī)進(jìn)行分布式存儲(chǔ),進(jìn)而提高系統(tǒng)對(duì)數(shù)據(jù)的處理效率。對(duì)于海量結(jié)構(gòu)化大數(shù)據(jù)存儲(chǔ)檢索系統(tǒng)而言,其中包括加載機(jī)集群、查詢機(jī)集群、元數(shù)據(jù)節(jié)點(diǎn)集群以及存儲(chǔ)點(diǎn)的集群。加載機(jī)集群系統(tǒng)的數(shù)據(jù)加載端,以進(jìn)程為單位,在多臺(tái)設(shè)備上同時(shí)建立多個(gè)并發(fā)加載客戶端,通過(guò)并發(fā)加載提高系統(tǒng)整體加載效率,在MDSS中,加載機(jī)集群同時(shí)緩存近期入庫(kù)的數(shù)據(jù),經(jīng)過(guò)固定的時(shí)間周期,把緩存數(shù)據(jù)通過(guò)千兆寫到數(shù)據(jù)存儲(chǔ)管理裝置中。用戶在查詢機(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é)果,提交給用戶。元數(shù)據(jù)節(jié)點(diǎn)集群是用來(lái)協(xié)調(diào)整個(gè)集群的工作,保存整個(gè)系統(tǒng)工作所需的元數(shù)據(jù)信息。存儲(chǔ)節(jié)點(diǎn)集群是持久存儲(chǔ)長(zhǎng)期保存的歷史數(shù)據(jù),把數(shù)據(jù)源進(jìn)行分塊存儲(chǔ),通常把一次或幾次從加載機(jī)刷新到集群中的數(shù)據(jù)作為數(shù)據(jù)分塊單位。
2.結(jié)構(gòu)化大數(shù)據(jù)存儲(chǔ)檢索系統(tǒng)的檢索方法
2.1查詢條件的分解
分區(qū)查詢條件屬于目標(biāo)索引文件,這樣查詢目標(biāo)為指導(dǎo),可以大大的縮小海量數(shù)據(jù)的查詢范圍,降低了查詢的難度,因此在系統(tǒng)的應(yīng)用中,需要先執(zhí)行分區(qū)查詢條件,對(duì)每一個(gè)表空間設(shè)置一個(gè)分區(qū)查詢條件,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的有效索引;過(guò)濾查詢條件是在邏輯運(yùn)算符號(hào)的銜接下,形成多個(gè)邏輯組合并進(jìn)行查詢,因?yàn)槎鄠€(gè)字段共同構(gòu)成了結(jié)構(gòu)化數(shù)據(jù)的記錄,并且其屬性支持模糊查詢,利用過(guò)濾查詢條件機(jī)械能比較查詢等模糊查詢,提高了查詢的針對(duì)性;統(tǒng)計(jì)分析查詢條件是指對(duì)經(jīng)過(guò)前兩個(gè)環(huán)節(jié)的查詢后,對(duì)返回的結(jié)果集的查詢,是對(duì)全集數(shù)據(jù)集的統(tǒng)計(jì)和分析,一般來(lái)說(shuō),統(tǒng)計(jì)分析查詢主要包括數(shù)據(jù)分組操作、排序操作和統(tǒng)計(jì)函數(shù)。為了對(duì)二維表空間的操作起到積極的促進(jìn)作用,推進(jìn)結(jié)構(gòu)化數(shù)據(jù)的統(tǒng)計(jì)與檢索,需要設(shè)計(jì)新的分析語(yǔ)言,既要符合一般的語(yǔ)法規(guī)則和標(biāo)準(zhǔn),同時(shí)還要取消關(guān)聯(lián)查詢、嵌套查詢和視圖等一些復(fù)雜的檢索功能。多個(gè)查詢的語(yǔ)句共同構(gòu)成了一個(gè)查詢?nèi)蝿?wù),因此為了提高查詢工作的效率和準(zhǔn)確性,需要將查詢條件進(jìn)行分解,在MDSS的作用下,查詢條件一般分為三個(gè)基本的類型,并且每一個(gè)基本條件都等同于一項(xiàng)查詢子任務(wù)。
2.2查詢子任務(wù)的執(zhí)行
在分布式環(huán)境下,不同的層次會(huì)執(zhí)行不同的子任務(wù),分區(qū)類查詢條件結(jié)合元數(shù)據(jù)信息在具體的存儲(chǔ)節(jié)點(diǎn)上進(jìn)行索引文件級(jí)別的查詢;過(guò)濾類查詢條件針對(duì)目標(biāo)索引文件內(nèi)的具體記錄進(jìn)行過(guò)濾,這兩類條件在多數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)中并發(fā)執(zhí)行。在對(duì)海量化大數(shù)據(jù)進(jìn)行查詢時(shí),為了簡(jiǎn)化查詢的工作,需要把一個(gè)復(fù)雜的查詢?nèi)蝿?wù)進(jìn)行細(xì)化,分為幾個(gè)查詢子任務(wù),對(duì)于查詢子任務(wù)的分解,可以根據(jù)上述的分類進(jìn)行查詢。統(tǒng)計(jì)分析類查詢條件在查詢機(jī)上,針對(duì)過(guò)濾類查詢條件返回的結(jié)果集進(jìn)行匯總后再進(jìn)行統(tǒng)一計(jì)算處理,保證查詢語(yǔ)義的正確性。統(tǒng)計(jì)分析類查詢是對(duì)有具體分組和排序的數(shù)值分析,是建立在對(duì)全部的結(jié)果集進(jìn)行統(tǒng)計(jì)的基礎(chǔ)之上的,只有對(duì)全部的數(shù)據(jù)集進(jìn)行統(tǒng)計(jì)和分析,才能夠得出正確的查詢結(jié)果。一般而言,對(duì)分組和排序的操作主要是在查詢機(jī)上進(jìn)行,在此環(huán)節(jié)中,Bloom Filter算法起到了加速分組的操作,并且消除了重復(fù)的計(jì)算過(guò)程,這樣就極大的提高了數(shù)據(jù)查詢的效果。不同的查詢條件要對(duì)應(yīng)相應(yīng)的查詢機(jī)和合適的查詢時(shí)間,MDSS中的查詢機(jī)制主要有兩種,即在線查詢和離線查詢,前者的數(shù)據(jù)查詢時(shí)間響應(yīng)的要求很高,在幾秒內(nèi)便反應(yīng)出查詢的結(jié)果,用戶可以花費(fèi)較短的時(shí)間得到查詢的結(jié)果,后者的數(shù)據(jù)查詢模式比較復(fù)雜,主要是對(duì)數(shù)據(jù)的挖掘和分析,甚至有時(shí)候需要對(duì)全部的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)和分析,只有經(jīng)過(guò)這些必要的程序才能夠獲得查詢的結(jié)果,這就需要較長(zhǎng)的數(shù)據(jù)查詢響應(yīng)時(shí)間。上述的兩種查詢機(jī)制在MDSS中得到了廣泛的應(yīng)用,為了充分發(fā)揮兩者的優(yōu)勢(shì),需要引入分批返回機(jī)制,即在執(zhí)行子查詢中,設(shè)置子查詢檢索結(jié)果集的閨值,如果檢索到結(jié)果集超過(guò)閾值,返回當(dāng)前的檢索結(jié)果,同時(shí)存儲(chǔ)節(jié)點(diǎn)保存當(dāng)前的檢索狀態(tài)、緩存剩余的結(jié)
果集。
3.結(jié)束語(yǔ)
本文結(jié)合具體的應(yīng)用,綜合利用分區(qū)索引條件、列存儲(chǔ)結(jié)構(gòu)等技術(shù),會(huì)顯著提高海量結(jié)構(gòu)化數(shù)據(jù)的查詢效率;索引分片數(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é)果如果超過(guò)返回時(shí)間限制,可以選擇對(duì)應(yīng)的索引分片的副本重新執(zhí)行檢索操作,實(shí)現(xiàn)數(shù)據(jù)容錯(cuò)功能。
參考文獻(xiàn):
[1]信俊昌,基于海量數(shù)據(jù)高效查詢處理方式研究[J].企業(yè)文化,2013
[2]王小芳,大數(shù)據(jù)分區(qū)管理模型及其應(yīng)用研究[J].科技傳播,2014