预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

基于Hadoop的RDF数据存储策略的理论分析论文 【摘要】随着信息爆炸时代的到来和语义网的快速发展,海量RDF数据存储已成为普遍关注的问题。分布式云计算技术为海量RDF的存储和查询提供了了新的、更高效的解决方案,而基于Hadoop平台的RDF数据存储研究成为了研究焦点。本文对Hadoop在海量RDF数据存储中应用的关键问题进行分析,介绍了现有的基于Hadoop平台的RDF存储系统并将它们进行综合分析,最后对未来发展方向进行了展望。【关键词】语义网;RDF;存储系统;查询;Hadoop【Abstract】Withthearrivaloftheeraofinformationexplosionandtherapiddevelopmentofthesemanticweb,thestorageforlarge-scaleRDFdatahasbecomeanissueofcommonconcern.Adistributedcloudcomputingtechnology,whichismoreefficient,providesanewsolutionforlarge-scaleRDF'sstorageandqueryandtheresearchonstoringRDFdatabasedonHadoopplatformhasbecomethefocusofresearch.ThispapercarriesontheanalysistothekeyissuesoftheapplicationoftheHadoopinthemassiveRDFdatastorageandintroducestheexistingRDFStorageSystembasedonHadoopplatformandsummarizethem.Finallythispaperproposesthefuturedevelopmentdirection.【Keywords】semanticweb;RDF;storagesystem;query;hadoop1引言语义网(SemanticWeb)的核心思想是通过给万维网上的文档(如:HTML)添加能够被计算机所理解的语义(Metadata),促使互联网成为一个通用的信息交换媒介。资源描述框架(ResourceDescriptionFramework,RDF)是W3C提出的资源描述标准语言,具有一定的信息表达和交换能力,还能一定程度上描述语义信息。语义网的快速发展与应用带给RDF数据的剧增,海量RDF数据的存储、检索成为了难题。传统的关系数据库面对海量RDF处理显得力不从心,而分布式云计算技术在处理海量数据方面有着得天独厚的优势,而Hadoop凭借其对分布式计算的实现以及开源性,吸引了很多研究者和研究机构进行海量RDF数据存储研究,并提出了各自的解决方案,比如上海交通大学提出的HadoopRDF,HyunskChoi等人提出的SPIDER,NikolaosPapailiou等人提出的H2RDF等。本文分析了用Hadoop相关技术解决RDF数据存储时考虑的关键问题,然后对当前的存储策略进行对比分析和综述。2RDF数据存储的三个关键问题(1)存储容器的选择。RDF三元组最简单的存储就是保留RDF三元组(S,P,O)的形态,直接存放在文件系统(如HDFS、RDF-3x)上,这样做的好处是不用对三元组结构做额外处理,存储速度快,缺点是检索不方便,需要建立大量索引。另一种就是用数据库HBase来存放,HBase是一种Key-value键值对的存储模式,这样存储的好处是可以有效利用MapReduce算法进行高效检索,但是缺点是存储的时候需要改变三元组的结构,而且如何拆分三元组进行存储才更有利于高效检索和重组也是一个值得探究的问题。(2)数据库的选择与划分。在使用HBase表进行存储的时候,可以将三元组(S,P,O)中的一个元素(S或P或O)或者元素组合分开存储在key和value中,充分利用HBase行键RowKey的默认字典索引方便检索,不过往往要通过建立冗余表来实现对不同元素的索引来方便检索。另一种方案就是按照类和属性进行划分,将同一类或同一属性的RDF数据集中存储。但是如何建表才能使表的数目、数据冗余度、检索效率之间找到平衡有待研究。(3)索引策略的设计。索引的建立是为了查询时的高效,利用HDFS上的三元组存储需要建立HDFS的一级或者多级索引,如果表的数目太多,索引文件很难维护。利用HBase进行存储可以利用HBase的RowKey索引,但是查询往往是RDF基本图或者更为复杂的查询模式,这样就涉及不同查询变量和表间连接,为了配合查询,往往需要将(S,P,O)中不同的元素和元素组合作为RowKey来建立不同索引。如何建立简单、