陳亞杰 王鋒,2? 鄧輝 劉應(yīng)波
(1昆明理工大學(xué)云南省計(jì)算機(jī)技術(shù)應(yīng)用重點(diǎn)實(shí)驗(yàn)室 昆明 650500) (2中國(guó)科學(xué)院云南天文臺(tái) 昆明 650011)
E lasticSearch分布式搜索引擎在天文大數(shù)據(jù)檢索中的應(yīng)用研究?
陳亞杰1王鋒1,2?鄧輝1劉應(yīng)波1
(1昆明理工大學(xué)云南省計(jì)算機(jī)技術(shù)應(yīng)用重點(diǎn)實(shí)驗(yàn)室 昆明 650500) (2中國(guó)科學(xué)院云南天文臺(tái) 昆明 650011)
天文觀測(cè)數(shù)據(jù)是天文研究的基礎(chǔ),但傳統(tǒng)的集中式數(shù)據(jù)檢索方法已難以滿足日益增長(zhǎng)的海量天文數(shù)據(jù)的高性能檢索和查詢需求.提出了一種基于ElasticSearch分布式搜索引擎,通過(guò)River機(jī)制對(duì)現(xiàn)有的海量FITS(Flexib le Image Transport System)數(shù)據(jù)進(jìn)行索引構(gòu)建,從而實(shí)現(xiàn)海量FITS數(shù)據(jù)高效檢索的方法,并討論了其中的近實(shí)時(shí)檢索和查詢的關(guān)鍵技術(shù).實(shí)測(cè)結(jié)果表明,在百萬(wàn)到千萬(wàn)級(jí)的天文數(shù)據(jù)量下,該方法可獲得極高的檢索性能,并能夠很方便地集成到現(xiàn)有的天文數(shù)據(jù)歸檔系統(tǒng)中,完全可以滿足當(dāng)前國(guó)內(nèi)各類(lèi)望遠(yuǎn)鏡系統(tǒng)天文數(shù)據(jù)的歸檔要求.
方法:數(shù)值,方法:解析,天文數(shù)據(jù)庫(kù):其他諸多方面
FITS(Flexible Image Transport System)[1]是國(guó)際天文學(xué)聯(lián)合會(huì)(IAU)于1982年確定的用于各天文臺(tái)之間數(shù)據(jù)傳輸、交換的統(tǒng)一標(biāo)準(zhǔn)格式,是天文學(xué)界常用的數(shù)據(jù)格式.目前,大量的天文數(shù)據(jù)都以FITS格式進(jìn)行存儲(chǔ).隨著天文觀測(cè)技術(shù)和數(shù)據(jù)獲取及處理技術(shù)的逐漸成熟,各天文觀測(cè)站獲取的天文FITS數(shù)據(jù)已經(jīng)非常龐大[2];此外,由于不同觀測(cè)站根據(jù)其自身的考慮會(huì)采用不同的存儲(chǔ)規(guī)范,FITS數(shù)據(jù)文件基本沒(méi)有完全統(tǒng)一的存儲(chǔ)標(biāo)準(zhǔn).因此,在當(dāng)前海量數(shù)據(jù)增長(zhǎng)背景下,對(duì)海量的FITS數(shù)據(jù)進(jìn)行統(tǒng)一、高效以及近實(shí)時(shí)的檢索成為天文學(xué)領(lǐng)域亟待解決的一個(gè)難題.
采用分布式[3?4]的存儲(chǔ)方式是應(yīng)對(duì)海量數(shù)據(jù)的有效措施.Crestani等人討論了基于云的海量數(shù)據(jù)存儲(chǔ)與檢索問(wèn)題[5];Berrim an等人討論了基于云的數(shù)據(jù)存儲(chǔ)在天文領(lǐng)域中的應(yīng)用[6].由此可見(jiàn),基于云的分布式數(shù)據(jù)管理方式具有有效應(yīng)對(duì)海量FITS數(shù)據(jù)存儲(chǔ)與檢索問(wèn)題的可行性.之前,已有很多研究人員對(duì)FITS數(shù)據(jù)的存儲(chǔ)和檢索問(wèn)題做了一些很有價(jià)值的研究.樊東衛(wèi)等人設(shè)計(jì)了FITS文件管理器,實(shí)現(xiàn)了對(duì)中小型規(guī)模FITS文件的管理[7];王歆設(shè)計(jì)并實(shí)現(xiàn)了基于非關(guān)系型數(shù)據(jù)庫(kù)的圖像數(shù)據(jù)庫(kù)系統(tǒng)[8?9];劉應(yīng)波等人分析了使用NoSQL對(duì)可變FITS文件頭元數(shù)據(jù)進(jìn)行存儲(chǔ)和檢索的可行性[10];崔辰州等人采用存儲(chǔ)FITS頭的方式,實(shí)現(xiàn)了通過(guò)FITS頭對(duì)FITS文件的存儲(chǔ)與檢索[11].FITS數(shù)據(jù)對(duì)于天文學(xué)的研究來(lái)說(shuō)非常重要,然而,FITS數(shù)據(jù)的海量性以及其非結(jié)構(gòu)化的特性,為其高效存儲(chǔ)和檢索帶來(lái)了難題.本文結(jié)合前人的研究,繼續(xù)探究海量天文FITS數(shù)據(jù)的存儲(chǔ)和檢索問(wèn)題,在使用分布式搜索引擎ElasticSearch關(guān)鍵技術(shù)的基礎(chǔ)上,分析并研究了對(duì)海量FITS數(shù)據(jù)進(jìn)行高效檢索的可行性解決方案.
2.1 FITS文件
FITS文件由文件頭和數(shù)據(jù)矩陣兩部分組成.文件頭能夠唯一標(biāo)識(shí)一個(gè)FITS文件,其中包含了FITS文件的標(biāo)識(shí)符、FITS數(shù)據(jù)的來(lái)源、圖像的維數(shù)、每個(gè)維的大小、圖像的大小、圖像的最大值和最小值、波長(zhǎng)、經(jīng)度、緯度、圖像觀測(cè)者和望遠(yuǎn)鏡、觀測(cè)目標(biāo)、拍攝日期、拍攝時(shí)間等一系列描述FITS文件的信息.除固定長(zhǎng)的FITS文件頭信息外,其他部分均為文件的具體數(shù)據(jù).然而,不同的天文觀測(cè)站都有其實(shí)施規(guī)范,存儲(chǔ)的天文FITS數(shù)據(jù)也都有其獨(dú)特的風(fēng)格,并且不同F(xiàn)ITS文件描述的天文信息也不盡相同,并不是所有的FITS文件頭中都含有相同的信息.文中采用存儲(chǔ)FITS文件頭的方式實(shí)現(xiàn)對(duì)FITS數(shù)據(jù)的存儲(chǔ),為了對(duì)FITS數(shù)據(jù)進(jìn)行統(tǒng)一管理,需要將FITS文件頭處理成為一種統(tǒng)一的規(guī)范.
2.2 FITS文件頭
FITS文件頭由80字符長(zhǎng)的行記錄組成,其中行記錄是用ASCII字符串寫(xiě)成的.它由N個(gè)記錄構(gòu)成,每個(gè)記錄由關(guān)鍵字、值和注釋3個(gè)部分組成,值和注釋部分可為空.每個(gè)FITS文件的文件頭中必須含有SIMPLE、BITPIX、NAXIS和END這4個(gè)關(guān)鍵字信息,并且這4個(gè)關(guān)鍵字的順序是一定的,它們之間可以存在其他關(guān)鍵字.第1個(gè)關(guān)鍵字必須為SIMPLE,標(biāo)識(shí)此文件是否為FITS標(biāo)準(zhǔn)格式;最后一個(gè)關(guān)鍵字必須為END,作為文件結(jié)束標(biāo)志;關(guān)鍵字BITPIX表示圖像數(shù)據(jù)的格式,其值為8、16、32、?32或?64;NAXIS表示圖像數(shù)據(jù)矩陣的維數(shù),NAXIS不為0時(shí),其后緊跟著的關(guān)鍵字表示每個(gè)維的大小[12].
由于不同F(xiàn)ITS數(shù)據(jù)的文件頭中的N個(gè)記錄并不完全相同,這就給所有FITS文件的統(tǒng)一規(guī)范存儲(chǔ)造成了不便.然而每個(gè)FITS文件的文件頭能夠唯一標(biāo)識(shí)一個(gè)FITS文件.因此,可以將所有不同F(xiàn)ITS文件頭的所有記錄抽取出來(lái)形成文件頭集合,集合中的每個(gè)元素作為一個(gè)記錄項(xiàng),這樣,每條記錄便可作為一個(gè)FITS文件的元數(shù)據(jù)來(lái)標(biāo)識(shí)此文件.則一個(gè)FITS文件的元數(shù)據(jù)集合可表示為:
由此,提取出每個(gè)FITS文件的元數(shù)據(jù),將每個(gè)FITS文件的元數(shù)據(jù)作為一行記錄標(biāo)識(shí)一個(gè)FITS文件,便可實(shí)現(xiàn)在關(guān)系型數(shù)據(jù)庫(kù)中按文件頭統(tǒng)一存儲(chǔ)FITS元數(shù)據(jù),為數(shù)據(jù)檢索和訪問(wèn)提供條件.
分布式搜索引擎(ElasticSearch)[13]是一個(gè)開(kāi)源的、基于Lucene1h ttp://lucene.apache.org/的分布式搜索引擎. ElasticSearch可以提供穩(wěn)定、實(shí)時(shí)、可靠的檢索服務(wù),具有高可用、易擴(kuò)展以及近實(shí)時(shí)的特點(diǎn).它采用REST ful的架構(gòu)風(fēng)格,提供了簡(jiǎn)單易用的查詢和共享接口;使用GET獲得請(qǐng)求對(duì)象的當(dāng)前狀態(tài),使用POST改變請(qǐng)求對(duì)象的狀態(tài),使用PUT創(chuàng)建一個(gè)新對(duì)象,使用DELETE刪除請(qǐng)求對(duì)象.
ElasticSearch擁有的River機(jī)制使得用戶可以并行地將大量數(shù)據(jù)快速同步到集群.另外,使用ElasticSearch能夠方便地為數(shù)據(jù)建立索引,可將一個(gè)索引分割成多個(gè)索引分片(索引分片數(shù)可由用戶指定,默認(rèn)為5),然后將多個(gè)分片均衡地分布在集群的所有可用節(jié)點(diǎn)上,形成分布式結(jié)構(gòu),減輕了單個(gè)節(jié)點(diǎn)的負(fù)擔(dān).在ElasticSearch集群中,還可以為每個(gè)索引分片設(shè)置副本(副本數(shù)仍然可以由用戶自行指定,默認(rèn)為1),當(dāng)某索引分片失效時(shí),可以及時(shí)使用副本恢復(fù)數(shù)據(jù).ElasticSearch還擁有自動(dòng)發(fā)現(xiàn)節(jié)點(diǎn)機(jī)制和快速數(shù)據(jù)恢復(fù)機(jī)制,當(dāng)有新節(jié)點(diǎn)加入集群時(shí),ElasticSearch可及時(shí)發(fā)現(xiàn)并自動(dòng)重新進(jìn)行負(fù)載均衡,為新節(jié)點(diǎn)分配數(shù)據(jù);當(dāng)某節(jié)點(diǎn)失效時(shí),它同樣會(huì)自動(dòng)重新為可用節(jié)點(diǎn)分配數(shù)據(jù).
天文觀測(cè)站每天都在不停地觀測(cè),隨著時(shí)間的推進(jìn)和大型天文望遠(yuǎn)鏡技術(shù)的日益成熟,天文數(shù)據(jù)逐漸累積,天文觀測(cè)站正面臨PB級(jí)海量天文數(shù)據(jù)的存儲(chǔ)和檢索問(wèn)題[8].關(guān)系型數(shù)據(jù)庫(kù)已逐漸無(wú)法容納這些快速增長(zhǎng)的天文數(shù)據(jù),隨著數(shù)據(jù)量的暴增,其存儲(chǔ)和檢索效率也越來(lái)越低.雖然,通過(guò)元數(shù)據(jù)可實(shí)現(xiàn)對(duì)非結(jié)構(gòu)化FITS數(shù)據(jù)的存儲(chǔ),但是,海量的數(shù)據(jù)卻難以使用單機(jī)來(lái)解決.將分布在不同地域用于存儲(chǔ)數(shù)據(jù)的機(jī)器組成集群,形成分布式結(jié)構(gòu),可解決海量數(shù)據(jù)的統(tǒng)一管理問(wèn)題;當(dāng)數(shù)據(jù)量持續(xù)增加時(shí),只需要在集群中增加節(jié)點(diǎn),而無(wú)需改變已有數(shù)據(jù)和節(jié)點(diǎn).
如2.2節(jié)所述,提取FITS元數(shù)據(jù),將每個(gè)FITS文件的元數(shù)據(jù)作為一行記錄寫(xiě)入關(guān)系型數(shù)據(jù)庫(kù)SQLServer,可實(shí)現(xiàn)對(duì)FITS文件元數(shù)據(jù)的結(jié)構(gòu)化管理.然而,當(dāng)FITS數(shù)據(jù)的數(shù)據(jù)量較大時(shí),相應(yīng)地,元數(shù)據(jù)記錄也會(huì)隨之增長(zhǎng).隨著元數(shù)據(jù)記錄的增長(zhǎng),其檢索效率將會(huì)受到影響,而使用分布式的方式進(jìn)行檢索和訪問(wèn)將能夠大大提高其效率. ElasticSearch能夠利用自身機(jī)制將不同數(shù)據(jù)庫(kù)中的數(shù)據(jù)并行導(dǎo)入到ElasticSearch分布式集群,因此,利用ElasticSearch分布式檢索集群可以很方便地解決FITS數(shù)據(jù)的海量性帶來(lái)的難題.所以,使用關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ)FITS元數(shù)據(jù),不斷將數(shù)據(jù)庫(kù)中的數(shù)據(jù)同步到ElasticSearch分布式集群,利用ElasticSearch對(duì)海量數(shù)據(jù)進(jìn)行統(tǒng)一的分布式管理具有一定的可行性.
4.1 FITS數(shù)據(jù)處理流程
基于ElasticSearch的FITS數(shù)據(jù)處理流程如圖1所示.首先,從FITS文件中提取出FITS文件頭的行記錄信息,將每個(gè)記錄作為關(guān)系型數(shù)據(jù)庫(kù)表中的一個(gè)字段,則表中一行記錄便可唯一標(biāo)識(shí)一個(gè)FITS文件;然后,將FITS文件頭記錄批量導(dǎo)入關(guān)系型數(shù)據(jù)庫(kù).使用ElasticSearch提供的JDBC的River插件2h ttps://github.com/jp ran te/elasticsearch-jdb c4可方便快速地將關(guān)系型數(shù)據(jù)庫(kù)中的FITS元數(shù)據(jù)導(dǎo)入ElasticSearch集群;然后,使用ElasticSearch分布式檢索集群便可對(duì)海量FITS數(shù)據(jù)進(jìn)行快速、穩(wěn)定的檢索.
圖1 FITS數(shù)據(jù)處理流程Fig.1 The p rocessing flow of FITS data
4.2 FITS元數(shù)據(jù)提取
由2.2節(jié)所述,不同組織機(jī)構(gòu)在存儲(chǔ)FITS文件時(shí),根據(jù)自身需要,關(guān)注的元數(shù)據(jù)信息可能并不相同,所以寫(xiě)入FITS頭的內(nèi)容也存在不同.本文在實(shí)驗(yàn)過(guò)程中提取FITS頭的所有Key/Value字段,每個(gè)Key作為關(guān)系型數(shù)據(jù)庫(kù)的一列,對(duì)應(yīng)的Value構(gòu)成了關(guān)系型數(shù)據(jù)庫(kù)中的一行數(shù)據(jù).
使用JAVA類(lèi)庫(kù)jfits-0.94.jar訪問(wèn)FITS文件3h ttp://www.eso.org/p?grosbo l/fits java/jfits.h tm l,通過(guò)類(lèi)庫(kù)中FitsFile類(lèi)的getHDUnit方法返回一個(gè)FitsHDUnit類(lèi)的對(duì)象,通過(guò)該FitsHDUnit類(lèi)對(duì)象的getHearder方法返回一個(gè)FitsHeader類(lèi)的對(duì)象,然后通過(guò)該FitsHeader類(lèi)對(duì)象的getKeywords方法獲取FITS文件頭的行記錄關(guān)鍵字列表.由此,可批量提取每個(gè)FITS文件的文件標(biāo)識(shí)記錄.將提取出的每個(gè)FITS文件頭的關(guān)鍵字列表作為獨(dú)立一行,提取所有FITS文件頭統(tǒng)一寫(xiě)入關(guān)系型數(shù)據(jù)庫(kù)SQLServer.
4.3 FITS元數(shù)據(jù)的索引構(gòu)建
提取出FITS的標(biāo)識(shí)字段信息寫(xiě)入內(nèi)存緩存區(qū)或臨時(shí)文件后,從緩存中獲取數(shù)據(jù),將存儲(chǔ)的所有FITS標(biāo)識(shí)記錄寫(xiě)入數(shù)據(jù)庫(kù)的相應(yīng)數(shù)據(jù)表中,數(shù)據(jù)寫(xiě)入流程如圖2所示.
圖2 FITS記錄寫(xiě)入數(shù)據(jù)庫(kù)流程圖Fig.2 The flow chart of the FITS records w ritten in to the database
當(dāng)關(guān)系型數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)量超過(guò)一定程度的時(shí)候,其檢索效率會(huì)大大降低,而將這些數(shù)據(jù)導(dǎo)入ElasticSearch分布式檢索集群,采用分布式結(jié)構(gòu)進(jìn)行存儲(chǔ)和檢索,將會(huì)大大提高數(shù)據(jù)的檢索效率.使用ElasticSearch中JDBC的River插件可將數(shù)據(jù)快速導(dǎo)入ElasticSearch集群,并建立索引,以400萬(wàn)條記錄的索引構(gòu)建為例,構(gòu)建方式如圖3.
使用圖3所示方式為數(shù)據(jù)構(gòu)建索引后,可以根據(jù)需要構(gòu)造查詢條件,可方便地進(jìn)行結(jié)構(gòu)化查詢,這極大地降低了索引開(kāi)發(fā)管理的難度,其示意圖如圖4、圖5所示.
此外,由于ElasticSearch本身提供了分布式集群方式的檢索管理機(jī)制,因此,除了對(duì)單一元數(shù)據(jù)建立索引之外,使用ElasticSearch還能夠方便地對(duì)元數(shù)據(jù)庫(kù)集群建立索引.
圖3 在SQLServer數(shù)據(jù)庫(kù)上通過(guò)R iver構(gòu)建索引Fig.3 Bu ild ing the index in the SQLServer database by using the R iver
圖4 索引構(gòu)建示意圖Fig.4 The schem atic d iagram of the index bu ild ing
圖5 結(jié)構(gòu)化查詢示意圖Fig.5 The schem atic d iagram of the structu red query
5.1 實(shí)驗(yàn)數(shù)據(jù)
本實(shí)驗(yàn)使用1 600萬(wàn)條模擬數(shù)據(jù)來(lái)完成.4.2節(jié)提取出的每個(gè)FITS元數(shù)據(jù)作為數(shù)據(jù)表的一行記錄.實(shí)驗(yàn)中,將1 600萬(wàn)條數(shù)據(jù)分成400萬(wàn)條、800萬(wàn)條、1 200萬(wàn)條和1 600萬(wàn)條4組,在不同條件下進(jìn)行不同測(cè)試.
5.2 實(shí)驗(yàn)環(huán)境
在w indows7(CPU為Pentium(R)Dual-Core CPU E6500@2.93GHz,內(nèi)存為4G)下,使用IntelliJ IDEA 14.0.2編譯器編寫(xiě)JAVA程序來(lái)提取FITS文件的元數(shù)據(jù)信息,并將數(shù)據(jù)批量導(dǎo)入SQLServer數(shù)據(jù)庫(kù)中;根據(jù)已導(dǎo)入的數(shù)據(jù)使用sql data generator隨機(jī)生成更多數(shù)據(jù).使用系統(tǒng)配置為Quad-Core AMD Op teron(TM)Processor 2352 CPU@2.10 GHz,內(nèi)存為4G的服務(wù)器(操作系統(tǒng)為CentOS release 6.4)配置ElasticSearch分布式搜索引擎.測(cè)試工具為JM eter.
5.3 實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)中共設(shè)置以下4個(gè)查詢條件進(jìn)行測(cè)試:
Q1.查詢2015年1月11日拍攝的天文圖像;
Q2.查詢緯度為45°(即:latitude=45°)的天文圖像;
Q3.查詢緯度和經(jīng)度均為45°(即:latitude=45°且longitude=45°)的天文圖像;
Q4.查詢2015年拍攝的,并且經(jīng)緯度均在45°到90°之間(即年份為2015,45°<latitude<90°且45°<longitude<90°)的天文圖像.
測(cè)試分為2組進(jìn)行:
TEST 1:單機(jī)環(huán)境下的測(cè)試
測(cè)試在4個(gè)條件下進(jìn)行查詢時(shí),當(dāng)數(shù)據(jù)量逐漸增加時(shí),其查詢響應(yīng)時(shí)間的變化規(guī)律.
TEST 2:多機(jī)擴(kuò)展環(huán)境下的測(cè)試
測(cè)試某一固定條件下,在集群節(jié)點(diǎn)數(shù)逐漸增加時(shí),其查詢響應(yīng)時(shí)間的變化規(guī)律.
響應(yīng)時(shí)間的測(cè)試工具為JMeter,使用10組100個(gè)線程,模擬同時(shí)進(jìn)行100個(gè)并發(fā)用戶的訪問(wèn),最后取10組結(jié)果的平均值.
5.3.1 單機(jī)實(shí)驗(yàn)
為了對(duì)比,先設(shè)計(jì)單機(jī)實(shí)驗(yàn),實(shí)驗(yàn)使用ElasticSearch的默認(rèn)設(shè)置(分片數(shù)為5,副本數(shù)為1).單機(jī)測(cè)試即ElasticSearch集群中只有一個(gè)節(jié)點(diǎn)的情況:僅有一個(gè)節(jié)點(diǎn)時(shí),所有索引分片全部分配在這個(gè)唯一節(jié)點(diǎn)上,副本分片未分配,此時(shí)集群狀態(tài)為亞健康狀態(tài).
在單機(jī)實(shí)驗(yàn)中,構(gòu)建ElasticSearch標(biāo)準(zhǔn)的查詢條件進(jìn)行測(cè)試,以在400萬(wàn)條數(shù)據(jù)情況下Q4的查詢?yōu)槔?其查詢條件構(gòu)建方式如圖6所示.
按照?qǐng)D6所示方式構(gòu)建查詢條件進(jìn)行查詢,分別測(cè)試了查詢條件Q1-Q4,在數(shù)據(jù)量為400萬(wàn)條、800萬(wàn)條、1 200萬(wàn)條和1 600萬(wàn)條4種情況下得到結(jié)果條數(shù)和查詢響應(yīng)時(shí)間.所有查詢的結(jié)果數(shù)量如表1所示,查詢響應(yīng)時(shí)間如圖7所示.
圖6 Q 4在400萬(wàn)條數(shù)據(jù)下的查詢條件構(gòu)建Fig.6 The query cond ition build ing of Q 4 w hen the num ber of the data is 4 m illion
圖7 單機(jī)下查詢響應(yīng)時(shí)間Fig.7 T he resp onse tim e of query in a single com pu ter
表1 查詢結(jié)果數(shù)(單位:萬(wàn)條)Tab le 1 The num ber of the query resu lts(un it:ten thousand)
如表1和圖7所示,在同一條件下,隨著數(shù)據(jù)量的增加,顯然,查得的結(jié)果數(shù)量相應(yīng)增加,而且查詢響應(yīng)時(shí)間隨之增加;此外,不同的查詢條件在數(shù)據(jù)量相同時(shí),其響應(yīng)時(shí)間也有差距.圖7表明,在同一查詢條件下,查詢響應(yīng)時(shí)間與數(shù)據(jù)量成正相關(guān);數(shù)據(jù)量相同時(shí),查詢響應(yīng)時(shí)間與查詢條件的復(fù)雜程度也成正相關(guān).
5.3.2 多機(jī)擴(kuò)展實(shí)驗(yàn)
在多機(jī)擴(kuò)展實(shí)驗(yàn)中,集群節(jié)點(diǎn)數(shù)逐漸增加,當(dāng)節(jié)點(diǎn)數(shù)大于等于2時(shí),所有分片(包括副本分片)都被均衡地分配到所有可用節(jié)點(diǎn)上,此時(shí)集群狀態(tài)為健康狀態(tài).為研究集群中節(jié)點(diǎn)數(shù)對(duì)查詢響應(yīng)時(shí)間的影響,在條件Q1下,每增加一個(gè)節(jié)點(diǎn),就分別查詢一次在不同數(shù)據(jù)量情況下Q1的查詢響應(yīng)時(shí)間.
在400萬(wàn)條數(shù)據(jù)的情況下,其查詢條件構(gòu)建方式如圖8所示.
圖8 Q 1在400萬(wàn)條數(shù)據(jù)下的查詢條件構(gòu)建Fig.8 The query cond ition bu ild ing of Q 1 w hen the num ber of data is 4 m illion
使用相同的方式構(gòu)建查詢條件進(jìn)行測(cè)試,在不同數(shù)據(jù)量和不同節(jié)點(diǎn)數(shù)情況下,其查詢響應(yīng)時(shí)間結(jié)果如圖9所示.
圖9表明,在不同數(shù)據(jù)量下,當(dāng)集群節(jié)點(diǎn)數(shù)增加時(shí),查詢響應(yīng)時(shí)間都會(huì)隨之降低;隨著節(jié)點(diǎn)數(shù)的增加,響應(yīng)時(shí)間會(huì)逐漸趨于平穩(wěn);但是,對(duì)于不同的數(shù)據(jù)量,響應(yīng)時(shí)間達(dá)到穩(wěn)定的節(jié)點(diǎn)數(shù)卻不相同,例如:在400萬(wàn)條數(shù)據(jù)量的情況下,節(jié)點(diǎn)數(shù)到達(dá)3時(shí),響應(yīng)時(shí)間便開(kāi)始趨于穩(wěn)定;而在1 600萬(wàn)條數(shù)據(jù)量的情況下,節(jié)點(diǎn)數(shù)到達(dá)5時(shí),響應(yīng)時(shí)間才趨于穩(wěn)定.在集群節(jié)點(diǎn)數(shù)增加到一定值時(shí),查詢響應(yīng)時(shí)間總會(huì)達(dá)到盡可能的最小值,因此,對(duì)于海量數(shù)據(jù)的檢索來(lái)說(shuō),只需要根據(jù)數(shù)據(jù)量增加集群節(jié)點(diǎn)數(shù),對(duì)分布式檢索集群進(jìn)行水平擴(kuò)展便可達(dá)到高效檢索的目的.
圖9 多機(jī)集群下查詢響應(yīng)時(shí)間Fig.9 The response tim e of query in the cluster
由于天文數(shù)據(jù)的急速增長(zhǎng)和海量觀測(cè)數(shù)據(jù)的檢索需要,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)在存儲(chǔ)和檢索海量數(shù)據(jù)時(shí)存在著諸多的不足,本文研究了一種基于ElasticSearch分布式搜索引擎的天文海量FITS數(shù)據(jù)的高效檢索方法.通過(guò)存儲(chǔ)FITS文件元數(shù)據(jù)的方式,實(shí)現(xiàn)了FITS數(shù)據(jù)的統(tǒng)一存儲(chǔ);利用ElasticSearch對(duì)索引的易擴(kuò)展、易管理和易維護(hù)的特點(diǎn)來(lái)解決海量FITS數(shù)據(jù)的高效檢索問(wèn)題.實(shí)驗(yàn)證明,這種基于ElasticSearch的海量數(shù)據(jù)檢索方法在檢索效率和擴(kuò)展性方面都有較大優(yōu)勢(shì),可以滿足用戶高效檢索的需求.論文研究的方法不僅僅適用于天文FITS數(shù)據(jù),也可以為其他天文數(shù)據(jù)格式提供參考和借鑒.
[1]Pence W D,Ch iappetti L,Page C G,et al.A&A,2010,524:A 42
[2]Lin Q,Lu X M,Jiang X J.New A,2013,21:33
[3]And reeva J,An jum A,Barrass T,et a l.ITNS,2005,52:884
[4]X iao W,Ji C L,Li J D.AMM,2013,303:2235
[5]C restani F,M arkov I.Advances in In form ation Retrieval,2013,7814:865
[6]Berrim an G B,G room S L.Comm un ications of the ACM,2011,54:52
[7]樊東衛(wèi),崔辰州,趙永恒.天文研究與技術(shù),2011,8:306
[8]王歆.天文學(xué)報(bào),2013,54:382
[9]W ang X.ChA&A,2014,38:211
[10]劉應(yīng)波,王鋒,季凱帆,等.計(jì)算機(jī)應(yīng)用研究,2015,32:461
[11]崔辰州,李文,于策,等.天文研究與技術(shù),2008,5:116
[12]季凱帆,曹文達(dá),宋謙.云南天文臺(tái)臺(tái)刊,1996:60
[13]Ra faˊl K,M arek R.E lasticSearch可擴(kuò)展的開(kāi)源彈性搜索解決方案.時(shí)金橋,柳廳文,徐菲,等,譯.北京:電子工業(yè)出版社,2015:25
The A pp lication of E lasticSearch in the M assive A stronom ical Data Retrieval
CHEN Ya-jie1WANG Feng1,2DENG Hui1LIU Ying-bo1
(1 Yunnan K ey Labo ra tory of Com pu ter Techno logy A pp lica tion,K unm ing U n iversity of Science an d Techno logy,Kunm ing 650500) (2 Yunnan A stronom ica l O bserva to ries,Chinese A cadem y of Sciences,K unm ing 650011)
Astronom ical observational data are the fundamental element formodern astronom ical researches.However,with the rapid increase of astronom ical data,the traditional centralized retrievalmethods are hard to meet the requirements of highperformance data retrieval.In the study,we present a novelmethod which is based on the ElasticSearch distributed retrieval engine and River mechanism to create data indexes,and provide high performance data retrieval for massive FITS(Flexible Image Transport System)data.We discuss the key technologies of the nearly real-time retrieval and query.The experimental results show that themethod is capable of obtaining high retrieval performance especially for the cases in which the number of the FITS data exceedsm illions or even tens of m illions.Meanwhile,themethod can be easily integrated into the current astronom ical data archiving system s,and completely meet the archive requirements of all kinds of astronom ical telescope systems.
methods:numerical,methods:analytical,astronom ical databases:m iscellaneous
P112
A
10.15940/j.cnki.0001-5245.2016.02.011
2015-09-21收到原稿,2015-10-06收到修改稿
?國(guó)家自然科學(xué)基金項(xiàng)目(U1231205,11303011,11263004,11463003,11163004)及云南省應(yīng)用基礎(chǔ)基金重點(diǎn)項(xiàng)目(2013FA 013,2013FA 032)資助
?w f@cnlab.net