基于Hadoop的RDF數(shù)據(jù)存儲(chǔ)策略的理論分析論文
【 摘 要 】 隨著信息爆炸時(shí)代的到來和語(yǔ)義網(wǎng)的快速發(fā)展,海量RDF數(shù)據(jù)存儲(chǔ)已成為普遍關(guān)注的問題。分布式云計(jì)算技術(shù)為海量RDF的存儲(chǔ)和查詢提供了了新的、更高效的解決方案,而基于Hadoop平臺(tái)的RDF數(shù)據(jù)存儲(chǔ)研究成為了研究焦點(diǎn)。本文對(duì)Hadoop在海量RDF數(shù)據(jù)存儲(chǔ)中應(yīng)用的關(guān)鍵問題進(jìn)行分析,介紹了現(xiàn)有的基于Hadoop平臺(tái)的RDF存儲(chǔ)系統(tǒng)并將它們進(jìn)行綜合分析,最后對(duì)未來發(fā)展方向進(jìn)行了展望。
【 關(guān)鍵詞 】 語(yǔ)義網(wǎng);RDF;存儲(chǔ)系統(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 引言
語(yǔ)義網(wǎng)(Semantic Web)的核心思想是通過給萬維網(wǎng)上的文檔(如: HTML)添加能夠被計(jì)算機(jī)所理解的語(yǔ)義(Meta data),促使互聯(lián)網(wǎng)成為一個(gè)通用的信息交換媒介。資源描述框架(Resource Description Framework,RDF)是 W3C 提出的資源描述標(biāo)準(zhǔn)語(yǔ)言,具有一定的信息表達(dá)和交換能力,還能一定程度上描述語(yǔ)義信息。語(yǔ)義網(wǎng)的快速發(fā)展與應(yīng)用帶給RDF數(shù)據(jù)的劇增,海量RDF數(shù)據(jù)的存儲(chǔ)、檢索成為了難題。
傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)面對(duì)海量RDF處理顯得力不從心,而分布式云計(jì)算技術(shù)在處理海量數(shù)據(jù)方面有著得天獨(dú)厚的優(yōu)勢(shì),而Hadoop憑借其對(duì)分布式計(jì)算的實(shí)現(xiàn)以及開源性,吸引了很多研究者和研究機(jī)構(gòu)進(jìn)行海量RDF數(shù)據(jù)存儲(chǔ)研究,并提出了各自的解決方案,比如上海交通大學(xué)提出的HadoopRDF,Hyunsk Choi等人提出的SPIDER,Nikolaos Papailiou等人提出的H2RDF等。本文分析了用Hadoop相關(guān)技術(shù)解決RDF數(shù)據(jù)存儲(chǔ)時(shí)考慮的關(guān)鍵問題,然后對(duì)當(dāng)前的存儲(chǔ)策略進(jìn)行對(duì)比分析和綜述。
2 RDF數(shù)據(jù)存儲(chǔ)的三個(gè)關(guān)鍵問題
。1)存儲(chǔ)容器的選擇。RDF三元組最簡(jiǎn)單的存儲(chǔ)就是保留RDF三元組(S,P,O)的形態(tài),直接存放在文件系統(tǒng)(如HDFS、RDF-3x)上,這樣做的好處是不用對(duì)三元組結(jié)構(gòu)做額外處理,存儲(chǔ)速度快,缺點(diǎn)是檢索不方便,需要建立大量索引。另一種就是用數(shù)據(jù)庫(kù)HBase來存放,HBase是一種Key-value鍵值對(duì)的存儲(chǔ)模式,這樣存儲(chǔ)的好處是可以有效利用MapReduce算法進(jìn)行高效檢索,但是缺點(diǎn)是存儲(chǔ)的時(shí)候需要改變?nèi)M的結(jié)構(gòu),而且如何拆分三元組進(jìn)行存儲(chǔ)才更有利于高效檢索和重組也是一個(gè)值得探究的問題。
。2)數(shù)據(jù)庫(kù)的選擇與劃分。在使用HBase表進(jìn)行存儲(chǔ)的時(shí)候,可以將三元組(S,P,O)中的一個(gè)元素(S或P或O)或者元素組合分開存儲(chǔ)在key和value中,充分利用HBase行鍵RowKey的默認(rèn)字典索引方便檢索,不過往往要通過建立冗余表來實(shí)現(xiàn)對(duì)不同元素的索引來方便檢索。另一種方案就是按照類和屬性進(jìn)行劃分,將同一類或同一屬性的RDF數(shù)據(jù)集中存儲(chǔ)。但是如何建表才能使表的數(shù)目、數(shù)據(jù)冗余度、檢索效率之間找到平衡有待研究。
。3)索引策略的設(shè)計(jì)。索引的建立是為了查詢時(shí)的高效,利用HDFS上的三元組存儲(chǔ)需要建立HDFS的一級(jí)或者多級(jí)索引,如果表的數(shù)目太多,索引文件很難維護(hù)。利用HBase進(jìn)行存儲(chǔ)可以利用HBase的RowKey索引,但是查詢往往是RDF基本圖或者更為復(fù)雜的查詢模式,這樣就涉及不同查詢變量和表間連接,為了配合查詢,往往需要將(S,P,O)中不同的元素和元素組合作為RowKey來建立不同索引。如何建立簡(jiǎn)單、有效索引才能將RDF基本圖的查詢化繁為簡(jiǎn)還值得討論。
3 RDF存儲(chǔ)策略
3.1 HDFS&MapReduce策略
這種存儲(chǔ)模式將海量RDF數(shù)據(jù)直接以三元組的形式保存在HDFS文件中,并且可以利用Jena等推理工具或者算法對(duì)數(shù)據(jù)進(jìn)行劃分,通過Hash函數(shù)分開存儲(chǔ)在不同節(jié)點(diǎn),并利用指針或者h(yuǎn)ash索引將具有相同查詢特性的數(shù)據(jù)存放在磁盤上的連續(xù)區(qū)域來提高查詢效率。
文獻(xiàn)[12]將RDF數(shù)據(jù)按照謂語(yǔ)及賓語(yǔ)的類型劃分成多個(gè)類并分別存儲(chǔ)在HDFS中的多個(gè)小文件中,利用貪心算法生成多個(gè)MapReduce作業(yè)迭代處理SPARQL查詢的連接操作,并優(yōu)先處理出現(xiàn)次數(shù)最多的變量所在的子句。文獻(xiàn)[13]根據(jù)主語(yǔ)所屬類劃分RDF數(shù)據(jù)并將劃分后的RDF數(shù)據(jù)所在文件存儲(chǔ)在HDFS,一個(gè)MapReduce作業(yè)處理一條Triple Pattern查詢,所有Triple Pattern查詢都順序執(zhí)行。文獻(xiàn)[14]將RDF數(shù)據(jù)按照N-Triple文件的形式存儲(chǔ),查詢時(shí)采用多個(gè)MapReduce作業(yè)查詢RDF三元組數(shù)據(jù)并迭代處理SPARQL查詢的連接操作,提出了貪婪選擇以及多路選擇兩種連接選擇策略。
3.2 HBase&MapReduce策略
基于HBase的RDF存儲(chǔ)模式主要利用HBase的RowKey的默認(rèn)索引并通過建立冗余表(擁有不同RowKey)來建立不同索引,方法是將需要索引的主語(yǔ)(S)、謂語(yǔ)(P)、賓語(yǔ)(O)(后邊我們用S、P、O簡(jiǎn)稱)中的一個(gè)或多個(gè)組合放在RowKey中,充分利用HBase表RowKey的默認(rèn)索引,這樣我們就可以用不同組合來建立不同索引表,用空間來?yè)Q時(shí)間。
文獻(xiàn)[15]用SP_O、P_SO、O_SP、PS_O、SO_P、PO_S六張表來存放RDF數(shù)據(jù),其中SP_O代表以(主語(yǔ),謂語(yǔ))為RowKey、賓語(yǔ)為列名,以此類推,查詢時(shí)提出一種以選擇度為標(biāo)準(zhǔn)的貪心的MapReduce多路連接。文獻(xiàn)[6]用SP_O、PO_S、OS_P三張表來存儲(chǔ)RDF數(shù)據(jù),查詢時(shí)用Jena解析SPARQL,然后利用連接算法確定查詢模式是集中式還是分布式連接,如果是分布式則用MapReduce處理,如圖1所示。文獻(xiàn)[16]用Ts、Tp、To三張表來存儲(chǔ)RDF三元組,Ts表中S為RowKey、P|O為Value,Tp表中P為RowKey、S|O為Value,To表中O為RowKey、S|P為Value,并使用HBase API實(shí)現(xiàn)三個(gè)SPARQL查詢算法,分別是三元組與Triple Pattern的匹配算法、Triple Patte rn的匹配算法以及SPARQL BGP的匹配算法。
3.3 Hadoop&自定義算法策略
由于RDF數(shù)據(jù)查詢模式中幾乎是SPARQL BGP 基本圖模式查詢,而MapReduce算法適用于批處理而在圖匹配上并不是原生算法,而且啟動(dòng)MapReduce的時(shí)間對(duì)于整個(gè)查詢的響應(yīng)都會(huì)有影響,所以結(jié)合HBase的存儲(chǔ)可以設(shè)計(jì)查詢效率更高的算法。
文獻(xiàn)[17]將RDF數(shù)據(jù)存放在Hadoop文件系統(tǒng)中,采用一種基于BSP的查詢策略,利用圖匹配算法替代了原有的MapReduce算法,算法分為匹配和迭代兩個(gè)階段,先匹配出要查詢的單個(gè)三元組模式,然后通過迭代使部分解逐步逼近完全解,借此來優(yōu)化查詢性能。
3.4 自定義存儲(chǔ)&MapReduce策略
這種存儲(chǔ)模式為了避免大量索引以及對(duì)RDF三元組結(jié)構(gòu)的破壞,利用第三方RDF存儲(chǔ)系統(tǒng)來提高存儲(chǔ)與檢索效率,代表性的有HadoopRDF。
HadoopRDF采用利用一種圖分區(qū)算法來劃分RDF數(shù)據(jù)集,將RDF數(shù)據(jù)存儲(chǔ)到集群中的RDF-3x數(shù)據(jù)庫(kù)中,每個(gè)RDF-3x都存儲(chǔ)了數(shù)據(jù)集中S、P、O三者及其組合的統(tǒng)計(jì)信息來進(jìn)行查詢定位。集群的每個(gè)節(jié)點(diǎn)上都部署了Sesame RDF管理系統(tǒng)實(shí)例,實(shí)例提供了查詢RDF數(shù)據(jù)的接口。Sesame成熟的存儲(chǔ)管理系統(tǒng)加上Hadoop集群的高可靠性和容錯(cuò)機(jī)制,還有MapReduce來實(shí)現(xiàn)并行處理SPARQL 查詢,HadoopRDF借此來提供高效的RDF查詢。
4 綜合分析
現(xiàn)有的基于Hadoop相關(guān)技術(shù)的RDF存儲(chǔ)與查詢策略的研究主要集中在RDF數(shù)據(jù)模型設(shè)計(jì)和查詢優(yōu)化兩個(gè)方面。存儲(chǔ)系統(tǒng)方面除了采用Hadoop自身的文件系統(tǒng)HDFS以及數(shù)據(jù)庫(kù)HBase存儲(chǔ)外,還有新的文件系統(tǒng)和數(shù)據(jù)庫(kù)被采用,而存儲(chǔ)系統(tǒng)的優(yōu)化主要是針對(duì)RDF數(shù)據(jù)存儲(chǔ)系統(tǒng)(文件系統(tǒng)或者數(shù)據(jù)庫(kù)系統(tǒng))索引的優(yōu)化,然而建立何種索引、用什么數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn)索引才能既不浪費(fèi)空間又能提供高效檢索,仍待廣大研究者深入討論。查詢優(yōu)化主要是用MapReduce分布式算法進(jìn)行多路連接,用選擇算法來優(yōu)化查詢連接順序,用圖模式來開發(fā)更適合SPARQL BGP基本圖模式的查詢,但是還沒有一種統(tǒng)一的高效的查詢策略。
5 結(jié)束語(yǔ)
本文對(duì)基于Hadoop平臺(tái)相關(guān)技術(shù)的RDF存儲(chǔ)研究現(xiàn)狀以及關(guān)鍵問題進(jìn)行討論,并介紹和分析了現(xiàn)有的基于Hadoop的存儲(chǔ)與查詢策略,未來還有很多方面值得探究,主要有:(1)尋找更適合RDF三元組的存儲(chǔ)結(jié)構(gòu),既能最大程度上保留源數(shù)據(jù)結(jié)構(gòu),又能盡可能少地減少數(shù)據(jù)冗余,方便快速查詢;(2)現(xiàn)有查詢策略大多集中在連接優(yōu)化、選擇度優(yōu)化、并行查詢優(yōu)化上,缺乏一種與存儲(chǔ)結(jié)構(gòu)無縫配合的查詢策略,廣大研究者可以將存儲(chǔ)結(jié)構(gòu)和查詢算法深入結(jié)合,提出一個(gè)完整的海量RDF存儲(chǔ)與查詢策略。
參考文獻(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ù)存儲(chǔ)策略的理論分析論文】相關(guān)文章:
基于中國(guó)制造業(yè)企業(yè)數(shù)據(jù)的分析論文02-19
基于JAVA的畢業(yè)審查系統(tǒng)的設(shè)計(jì)策略分析論文02-16
服務(wù)補(bǔ)救理論在物流企業(yè)中的應(yīng)用策略分析論文02-21
調(diào)度數(shù)據(jù)網(wǎng)安全防護(hù)新策略分析論文02-25
基于Hadoop分布式文件系統(tǒng)的單點(diǎn)問題的研究論文12-17
服務(wù)營(yíng)銷策略分析論文02-25
基于Copula理論的股市風(fēng)險(xiǎn)分析提綱12-02
計(jì)算機(jī)存儲(chǔ)技術(shù)對(duì)GIS數(shù)據(jù)管理的應(yīng)用論文03-08
基于能力拓展目標(biāo)的計(jì)算機(jī)課程改革策略分析論文02-13
- 相關(guān)推薦