您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页基于图形数据库Neo4j的RDF数据存储研究

基于图形数据库Neo4j的RDF数据存储研究

来源:筏尚旅游网
2015年第6期 文章编号:1009—2552(2015)06—0115—03 DOI:10.13274/j.cnki.hdzj.2015.06.030 基于图形数据库Neo4j的RDF数据存储研究 康杰华,罗章璇 (河海大学计算机与信息学院,南京211lOO) 摘要:现有的RDF数据分布式存储方式大多将RDF数据分成多个维度,存储多份数据,这无 疑大幅度地增加了数据的存储空间,同时给数据的管理带来了很大的难度。本文通过将RDF数 据以图的形式存储在图形数据库Neo4j中,大幅度地减少了RDF数据存储的数量。同时,图形 数据库Neo4j在数据查询时建立多维索引机制,大大提高了大量复制RDF数据的处理效率。 关键词:RDF图;Neo4j;图形数据库;数据存储 中图分类号:TP3l1.13 文献标识码:A Research on RDF data storage based on graph database Neo4j KANG Jie.hua.LU0 Zhang—xuan (School of Computer and Information,Hohai University,Na ̄mg 211100,China) Abstract:The PDF data were separated into multiple dimensions in most existing storage mode.The data were stored muhiple copies.The storage space was undoubtedly increased.And it brings a great dififculty in data management.In this paper,the data are stored as PDF graph in the graph database Neo4j.The number of RDF data was reduced substantially.Meanwhile,a multidimensional index was made in Neo4j,which greatly improved the processing efifciency of large RDF data replication. Key words:RDF graph;Neo4j;graph database;data storage 0 引言 计算机技术不断发展,伴随着技术进步而来的 是数据量的与日俱增。在大量数据分析时不可避免 求。针对数据间内在关系复杂且动态变化的问题,人 们再次将目光转向图形数据库,图形数据库可以看作 是节点和关系的集合,能够有效地管理,存储,更新数 据及其内在关系,并能高效执行多层复杂操作,对于大 地迎来了各种挑战。 RDF(Resource Description Framework,资源描 述框架)是一种用来描述万维网上的元数据的语 言,独立于任何语言,适用于任何领域。语义网的快 规模复杂的RDF图数据的存储和查询,用图形数据库 存储无疑是一个很有效的方法。 l 相关工作 1.1 RDF图数据模型简介 RDF是W3C提出的用于描述网络资源的标 速发展,使RDF数据格式被越来越多地采用在各种 系统当中,成为了处理元数据的基础,如互联网应 用、生物技术系统等。实际应用中的RDF数据集三 元组数目和关系复杂程度呈爆炸式增长,数据的存 储面临前所未有的压力,原始的简易架构模型无可 避免地遭遇了性能瓶颈,在存储能力到查询响应性 能方面都不能满足日益增长的需求。 关系数据库虽然在成熟度和安全性方面有保障, 但随着数据规模的膨胀及复杂性的增加,在面对大量、 复杂、动态的网络数据时,已不能满足领域应用的需 准。采用了一种简易的描述方式,即用主体(Sub— ject),谓词(predicate),客体(Object)构成的三元组 来表示资源。RDF数据通用表示形式为(S,P,0) 三元组,一组RDF数据可构成一个RDF有向图。 RDF图可以通过带有标签的结点和带有标签的边 收稿日期:2014—06—05 作者简介:康杰华(1989一),女,硕士研究生,研究方向为基于图形 数据库Neo4j的RDF数据存储研究。 一115— 来表示,其中每一个三元组对应为图上的一个“结 点一边一结点”的子图,陈述了由谓语表示的在主 语和宾语所指的事物之间的关系。一个RDF图的 结点就是它包含的所有三元组的主语和宾语,而边 的方向总是指向宾语。通常可以把RDF图看作一 个有向标记图。 RDF图的含义就是其所有三元组陈述的合取。 如图1所示,三元组集合表示的RDF图的含义如 下:Person是一名教授,他在Universityl工作,他是 Departmentl的成员,Departmentl是University1的一 个下属机构。 (Person,rdf:type,Professor) (Person,worksFor,University1) (Person,memberOf,Department1) (Departmentl,subOrgnizationOf,University1) 图1 RDF结构图示 1.2图形数据库Neo4j Neo4j遵循着属性图形数据模型,基元是节点 (nodes)、关系(relationships)以及属性(properties)。 通过这3个基元可以完整地描述任意一个用户的情 况。在关系(relationships)上赋予属性,可以灵活扩 展其网络模型;节点(nodes)属性,可以随时增删,从 而有效地解决存储半结构化、非结构化数据时内存 浪费的问题,通过其独有的深度(deep)遍历接口, 可以快速找到不同关联关系下的任意深度节点。 Neo4j被称为property graph,除了顶点(Node) 和关系(Relationship,其包含一个类型),还有一种 重要的部分——属性。数据的存储主要分为节点、 关系、节点或关系上属性这三类数据存储。无论是 顶点还是关系,都可以有任意多的属性,属性的存放 类似于一个hashMap。 Neo4j重点解决了出现大量连接查询时性能衰 退的问题。通过围绕图形进行数据建模,Neo4j会 以相同的速度遍历结点与关系,其遍历速度与构成 图形的数据量没有任何关系。Neo4j以一种延迟风 格遍历图中节点和关系,只有在结果迭代器需要访 问它们的时候才会被遍历并返回,对于大规模深度 遍历而言,这极大地提高了性能。 此外,Neo4j还提供了非常快的图形算法、推荐 系统和OLAP风格的分析,Neo4j是一个高性能、高 一1 1 6一 可抗靠性、可扩展的、完全兼容ACID的图数据库。 数据以一种针对图网络进行过优化的格式保存在磁 盘上。 2存储模式设计 2.1 设计理念 大规模的图数据存储依赖云计算环境的分布式 系统存储。图数据的存储模型无非两种:简单图和 超图。 Neo4j中每个Node,Relationship,Property都是 独立存储的,遵循自然顺序。由于RDF图中节点名 称的存在,如果人们想在图中找到对应节点,那么必 须依靠索引。节点与关系可以被赋予属性,一般用 键一值对表示。 Graph存储方式直接将整个数据集建模成一个 大型的网络结构,再采用一系列图操作实现对数据 的应用与管理。由于图由结点和关系构成,对于海 量数据的图不能完全装入内存中,因此,Graph存储 方式通常是基于DISK的,NoSQL系统实现图索引, 完成图在内存中的调入调出。使用这种存储方式的 NoSQL是基于Graph数据模型的。Neo4j主要提供 基于Lucene的Full—text索引机制,以实现对结点 和关系的搜索。 2.2存储模式设计介绍 基于图形数据库Neo4j的RDF数据存储模型 图如图2所示。node和relationship组成了一个有 向图,通过property就可以使其带上对应的数据,成 为对应的图形数据库。 图2 Neo4j存储模型 模型中各元素介绍及存在的约束条件如下: node(节点) (1)每个节点可以和多个节点之间建立多个关 系(relationship)。 (2)单个节点可以设置多个(Key,Value)的 properties属性的键值对。 relationships(关系) (1)每个关系都会包含一个start Node和end Node。 (2)每个关系可以设置多个(Key,Value)的 properties属性的键值对。 (3)可以为关系定义对应的关系类型(Relation. ship Type)。 Traversal(遍历) Order:对应的图的遍历算法 (1)DEPTH—FIRST:深度优先搜索,就是找到第 一个节点,递归的一直往下找,直到找不到合适的节 点后,才进行回溯。 (2)BREADTH—FIRST:广度优先搜索,是最简 便的图的搜索算法之一,这一算法也是很多重要的 图的算法的原型,属于一种盲目搜寻法,它并不考虑 结果的可能位置,彻底地搜索整张图,直到找到结果 为止。 2.3 索引介绍 云计算环境下,原始数据保留在分布式系统中, 索引必然也是分布式的。Neo4j中,索引可以分为 两类:基于node的索引和基于relationship的索引。 通常所说的索引指第二种情况,即关于relationship 的索引实现,基于独立的索引引擎,如Apache Lu. cene的索引机制。 由于Neo4j每个node,relationship,和property 按照自然顺序独立存储,本文在RDF图存储的基础 上提出了一种三维索引图存储机制,分别对node、 relationship和property建立索引,以便可以迅速地 找到相应的节点、关系及属性。 在数据存储方面,按照本文提出Neo4j存储模 式,把完整的RDF图数据存储在Neo4j数据库中。 图中,节点表示RDF三元组中的主语或者宾语,边 表示的是两者之间的关系,即三元组中的谓词。 3 实验与分析 实验对RDF三元组多维存储和RDF图存储所 占用空间大小进行了对比。在这里本文列举了对于 RDF三元组多维度存储的方法进行对比。 表1实验结果统计 由表1可以看出,本文的存储方式在存储相同 数据量的数据时候,可以大量节省不必要的空间浪 费,有效地节省了存储空间和硬件资源。 图3所示是对于在查询同一节点的时间花费, 由图可以看出本文的存储索引模式比文献[4]存储 查询有优势。 .◆-存储查询 -I-本文存 储查询 图3查询性能比较 4 结束语 本文针对现有的RDF数据储方式大多将RDF 数据分成多个维度,存储多份数据,浪费了极大空间 的问题,提出了将RDF数据以图的形式存储在图形 数据库Neo4j中的方法。该方法大幅度地减少了 RDF数据存储的数量,同时建立了三维索引机制, 提高了查询效率。 本文设计的索引结构下,索引维护时有一点需 要特别注意:更新索引时,需要手工删除对应的更新 项,然后再添加更新后的项,如果不删除旧项,否则 会同时存在指向fishburn的两个key—value。所以, 本文设计的索引不够完善,需要编程人员干预的内 容较多。也正是因此,其灵活性是比较强的,但无疑 增加了程序人员的工作量,下阶段将对于这个问题 做进一步优化。 参考文献: [1]陈崇成,林剑峰,吴小竹,等.基NoSQL的海量空间数据云存储 与服务方法【J].地球信息科学学报,2013,15:166—174. [2]AnglesR,Gutierrez C.Survey of graph databasemodels[J].ACM Computing Surveys(csun),2008,40(1):1. [3]陈锐.网络结构与数据库模式在陕西科技信息网中的应用[J]. 情报杂志,2004,23(10):57—58. [4]Abraham J,Brazier P,Chebotko A,et a1 Distributed storage and querying techniques for a Semantic Web of scientific workflow prove- nance[C].Services Computing(SCC),2010 IEEE International Conference on.IEEE,2010:178—185. [5]尤惠芬.移动社交网络中的数据库应用fJ].山西青年管理干部 学院学报,2013,26(3):106—108. [6]王余蓝.图形数据库Neo4j的内嵌式应用研究[J].现代电子技 术,2013,35(22):36—38. [7]王余蓝.图形数据库NEO4J与关系据库的比较研究[J].现代电 子技术,2012,35(20):77—79. 责任编辑:么丽苹 一117— 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务