基于Hadoop的RDF數(shù)據(jù)存儲策略的理論分析論文
【 摘 要 】 隨著信息爆炸時代的到來和語義網(wǎng)的快速發(fā)展,海量RDF數(shù)據(jù)存儲已成為普遍關(guān)注的問題。分布式云計算技術(shù)為海量RDF的存儲和查詢提供了了新的、更高效的解決方案,而基于Hadoop平臺的RDF數(shù)據(jù)存儲研究成為了研究焦點。本文對Hadoop在海量RDF數(shù)據(jù)存儲中應(yīng)用的關(guān)鍵問題進(jìn)行分析,介紹了現(xiàn)有的基于Hadoop平臺的RDF存儲系統(tǒng)并將它們進(jìn)行綜合分析,最后對未來發(fā)展方向進(jìn)行了展望。
【 關(guān)鍵詞 】 語義網(wǎng);RDF;存儲系統(tǒng);查詢;Hadoop
【 Abstract 】 With the arrival of the era of information explosion and the rapid development of the semantic web, the storage for large-scale RDF data has become an issue of common concern. A distributed cloud computing technology, which is more efficient, provides a new solution for large-scale RDF's storage and query and the research on storing RDF data based on Hadoop platform has become the focus of research. This paper carries on the analysis to the key issues of the application of the Hadoop in the massive RDF data storage and introduces the existing RDF Storage System based on Hadoop platform and summarize them . Finally this paper proposes the future development direction.
【 Keywords 】 semantic web; RDF; storage system; query; hadoop
1 引言
語義網(wǎng)(Semantic Web)的核心思想是通過給萬維網(wǎng)上的文檔(如: HTML)添加能夠被計算機(jī)所理解的語義(Meta data),促使互聯(lián)網(wǎng)成為一個通用的信息交換媒介。資源描述框架(Resource Description Framework,RDF)是 W3C 提出的資源描述標(biāo)準(zhǔn)語言,具有一定的信息表達(dá)和交換能力,還能一定程度上描述語義信息。語義網(wǎng)的快速發(fā)展與應(yīng)用帶給RDF數(shù)據(jù)的劇增,海量RDF數(shù)據(jù)的存儲、檢索成為了難題。
傳統(tǒng)的關(guān)系數(shù)據(jù)庫面對海量RDF處理顯得力不從心,而分布式云計算技術(shù)在處理海量數(shù)據(jù)方面有著得天獨厚的優(yōu)勢,而Hadoop憑借其對分布式計算的實現(xiàn)以及開源性,吸引了很多研究者和研究機(jī)構(gòu)進(jìn)行海量RDF數(shù)據(jù)存儲研究,并提出了各自的解決方案,比如上海交通大學(xué)提出的HadoopRDF,Hyunsk Choi等人提出的SPIDER,Nikolaos Papailiou等人提出的H2RDF等。本文分析了用Hadoop相關(guān)技術(shù)解決RDF數(shù)據(jù)存儲時考慮的關(guān)鍵問題,然后對當(dāng)前的存儲策略進(jìn)行對比分析和綜述。
2 RDF數(shù)據(jù)存儲的三個關(guān)鍵問題
。1)存儲容器的選擇。RDF三元組最簡單的存儲就是保留RDF三元組(S,P,O)的形態(tài),直接存放在文件系統(tǒng)(如HDFS、RDF-3x)上,這樣做的好處是不用對三元組結(jié)構(gòu)做額外處理,存儲速度快,缺點是檢索不方便,需要建立大量索引。另一種就是用數(shù)據(jù)庫HBase來存放,HBase是一種Key-value鍵值對的存儲模式,這樣存儲的好處是可以有效利用MapReduce算法進(jìn)行高效檢索,但是缺點是存儲的時候需要改變?nèi)M的結(jié)構(gòu),而且如何拆分三元組進(jìn)行存儲才更有利于高效檢索和重組也是一個值得探究的問題。
(2)數(shù)據(jù)庫的選擇與劃分。在使用HBase表進(jìn)行存儲的時候,可以將三元組(S,P,O)中的一個元素(S或P或O)或者元素組合分開存儲在key和value中,充分利用HBase行鍵RowKey的默認(rèn)字典索引方便檢索,不過往往要通過建立冗余表來實現(xiàn)對不同元素的索引來方便檢索。另一種方案就是按照類和屬性進(jìn)行劃分,將同一類或同一屬性的RDF數(shù)據(jù)集中存儲。但是如何建表才能使表的數(shù)目、數(shù)據(jù)冗余度、檢索效率之間找到平衡有待研究。
。3)索引策略的設(shè)計。索引的建立是為了查詢時的高效,利用HDFS上的三元組存儲需要建立HDFS的一級或者多級索引,如果表的數(shù)目太多,索引文件很難維護(hù)。利用HBase進(jìn)行存儲可以利用HBase的RowKey索引,但是查詢往往是RDF基本圖或者更為復(fù)雜的查詢模式,這樣就涉及不同查詢變量和表間連接,為了配合查詢,往往需要將(S,P,O)中不同的元素和元素組合作為RowKey來建立不同索引。如何建立簡單、有效索引才能將RDF基本圖的查詢化繁為簡還值得討論。
3 RDF存儲策略
3.1 HDFS&MapReduce策略
這種存儲模式將海量RDF數(shù)據(jù)直接以三元組的形式保存在HDFS文件中,并且可以利用Jena等推理工具或者算法對數(shù)據(jù)進(jìn)行劃分,通過Hash函數(shù)分開存儲在不同節(jié)點,并利用指針或者h(yuǎn)ash索引將具有相同查詢特性的數(shù)據(jù)存放在磁盤上的連續(xù)區(qū)域來提高查詢效率。
文獻(xiàn)[12]將RDF數(shù)據(jù)按照謂語及賓語的類型劃分成多個類并分別存儲在HDFS中的多個小文件中,利用貪心算法生成多個MapReduce作業(yè)迭代處理SPARQL查詢的連接操作,并優(yōu)先處理出現(xiàn)次數(shù)最多的變量所在的子句。文獻(xiàn)[13]根據(jù)主語所屬類劃分RDF數(shù)據(jù)并將劃分后的RDF數(shù)據(jù)所在文件存儲在HDFS,一個MapReduce作業(yè)處理一條Triple Pattern查詢,所有Triple Pattern查詢都順序執(zhí)行。文獻(xiàn)[14]將RDF數(shù)據(jù)按照N-Triple文件的形式存儲,查詢時采用多個MapReduce作業(yè)查詢RDF三元組數(shù)據(jù)并迭代處理SPARQL查詢的連接操作,提出了貪婪選擇以及多路選擇兩種連接選擇策略。
3.2 HBase&MapReduce策略
基于HBase的RDF存儲模式主要利用HBase的RowKey的默認(rèn)索引并通過建立冗余表(擁有不同RowKey)來建立不同索引,方法是將需要索引的主語(S)、謂語(P)、賓語(O)(后邊我們用S、P、O簡稱)中的一個或多個組合放在RowKey中,充分利用HBase表RowKey的默認(rèn)索引,這樣我們就可以用不同組合來建立不同索引表,用空間來換時間。
文獻(xiàn)[15]用SP_O、P_SO、O_SP、PS_O、SO_P、PO_S六張表來存放RDF數(shù)據(jù),其中SP_O代表以(主語,謂語)為RowKey、賓語為列名,以此類推,查詢時提出一種以選擇度為標(biāo)準(zhǔn)的貪心的MapReduce多路連接。文獻(xiàn)[6]用SP_O、PO_S、OS_P三張表來存儲RDF數(shù)據(jù),查詢時用Jena解析SPARQL,然后利用連接算法確定查詢模式是集中式還是分布式連接,如果是分布式則用MapReduce處理,如圖1所示。文獻(xiàn)[16]用Ts、Tp、To三張表來存儲RDF三元組,Ts表中S為RowKey、P|O為Value,Tp表中P為RowKey、S|O為Value,To表中O為RowKey、S|P為Value,并使用HBase API實現(xiàn)三個SPARQL查詢算法,分別是三元組與Triple Pattern的匹配算法、Triple Patte rn的匹配算法以及SPARQL BGP的匹配算法。
3.3 Hadoop&自定義算法策略
由于RDF數(shù)據(jù)查詢模式中幾乎是SPARQL BGP 基本圖模式查詢,而MapReduce算法適用于批處理而在圖匹配上并不是原生算法,而且啟動MapReduce的時間對于整個查詢的響應(yīng)都會有影響,所以結(jié)合HBase的存儲可以設(shè)計查詢效率更高的算法。
文獻(xiàn)[17]將RDF數(shù)據(jù)存放在Hadoop文件系統(tǒng)中,采用一種基于BSP的查詢策略,利用圖匹配算法替代了原有的MapReduce算法,算法分為匹配和迭代兩個階段,先匹配出要查詢的單個三元組模式,然后通過迭代使部分解逐步逼近完全解,借此來優(yōu)化查詢性能。
3.4 自定義存儲&MapReduce策略
這種存儲模式為了避免大量索引以及對RDF三元組結(jié)構(gòu)的破壞,利用第三方RDF存儲系統(tǒng)來提高存儲與檢索效率,代表性的有HadoopRDF。
HadoopRDF采用利用一種圖分區(qū)算法來劃分RDF數(shù)據(jù)集,將RDF數(shù)據(jù)存儲到集群中的RDF-3x數(shù)據(jù)庫中,每個RDF-3x都存儲了數(shù)據(jù)集中S、P、O三者及其組合的統(tǒng)計信息來進(jìn)行查詢定位。集群的每個節(jié)點上都部署了Sesame RDF管理系統(tǒng)實例,實例提供了查詢RDF數(shù)據(jù)的接口。Sesame成熟的存儲管理系統(tǒng)加上Hadoop集群的高可靠性和容錯機(jī)制,還有MapReduce來實現(xiàn)并行處理SPARQL 查詢,HadoopRDF借此來提供高效的RDF查詢。
4 綜合分析
現(xiàn)有的基于Hadoop相關(guān)技術(shù)的RDF存儲與查詢策略的研究主要集中在RDF數(shù)據(jù)模型設(shè)計和查詢優(yōu)化兩個方面。存儲系統(tǒng)方面除了采用Hadoop自身的文件系統(tǒng)HDFS以及數(shù)據(jù)庫HBase存儲外,還有新的文件系統(tǒng)和數(shù)據(jù)庫被采用,而存儲系統(tǒng)的優(yōu)化主要是針對RDF數(shù)據(jù)存儲系統(tǒng)(文件系統(tǒng)或者數(shù)據(jù)庫系統(tǒng))索引的優(yōu)化,然而建立何種索引、用什么數(shù)據(jù)結(jié)構(gòu)來實現(xiàn)索引才能既不浪費空間又能提供高效檢索,仍待廣大研究者深入討論。查詢優(yōu)化主要是用MapReduce分布式算法進(jìn)行多路連接,用選擇算法來優(yōu)化查詢連接順序,用圖模式來開發(fā)更適合SPARQL BGP基本圖模式的查詢,但是還沒有一種統(tǒng)一的高效的查詢策略。
5 結(jié)束語
本文對基于Hadoop平臺相關(guān)技術(shù)的RDF存儲研究現(xiàn)狀以及關(guān)鍵問題進(jìn)行討論,并介紹和分析了現(xiàn)有的基于Hadoop的存儲與查詢策略,未來還有很多方面值得探究,主要有:(1)尋找更適合RDF三元組的存儲結(jié)構(gòu),既能最大程度上保留源數(shù)據(jù)結(jié)構(gòu),又能盡可能少地減少數(shù)據(jù)冗余,方便快速查詢;(2)現(xiàn)有查詢策略大多集中在連接優(yōu)化、選擇度優(yōu)化、并行查詢優(yōu)化上,缺乏一種與存儲結(jié)構(gòu)無縫配合的查詢策略,廣大研究者可以將存儲結(jié)構(gòu)和查詢算法深入結(jié)合,提出一個完整的海量RDF存儲與查詢策略。
參考文獻(xiàn)
[1] Mary Burke, (2009),"The semantic web and the digital library", Aslib Proceedings,Vol.61 Iss 3 pp. 316 - 322.
[2] Klyne G, Carroll J J,McBride B. Resource description framework (RDF): Concepts and abstract syntax[J]. W3C recommendation, 2004, 10.
[3] Apache. Hadoop[EB/OL]. http://hadoop.apache.org/.
[4] J.H.Du, H.F.Wang, Y.Ni, and Y.Yu. HadoopRDF: AScalable Semantic Data Analytical Endine,ICIC 2012.633-641.
[5] Choi H, Son J,Cho Y H, et al. SPIDER: a system for scalable, parallel/distributed evaluation of large-scale RDF data[C]. Proceedings of the 18th ACM conference on Information and knowledge management. ACM, 2009: 2087-2088.
【基于Hadoop的RDF數(shù)據(jù)存儲策略的理論分析論文】相關(guān)文章:
基于中國制造業(yè)企業(yè)數(shù)據(jù)的分析論文02-19
基于JAVA的畢業(yè)審查系統(tǒng)的設(shè)計策略分析論文02-16
服務(wù)補救理論在物流企業(yè)中的應(yīng)用策略分析論文02-21
調(diào)度數(shù)據(jù)網(wǎng)安全防護(hù)新策略分析論文02-25
基于Hadoop分布式文件系統(tǒng)的單點問題的研究論文12-17
服務(wù)營銷策略分析論文02-25
基于Copula理論的股市風(fēng)險分析提綱12-02
煤礦企業(yè)營銷策略分析論文02-21
計算機(jī)存儲技術(shù)對GIS數(shù)據(jù)管理的應(yīng)用論文03-08
基于能力拓展目標(biāo)的計算機(jī)課程改革策略分析論文02-13
- 相關(guān)推薦