图数据库
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
AllegroGrap是一个基于W3c标准的为资源描述框架构建的图形数据库。它为处理链接数据和Web语义而设计, 支持SPARQL、RDFS++和Prolog。
GraphDB是德国sones公司在.NET基础上构建的。Sones公司于2007年成立,近年来陆续进行了几轮融资。 GraphDB社区版遵循AGPL v3许可协议,企业版是商业化的。GraphDB托管在Windows Azure平台上。
图模型
图模型主要包含属性图、RDF图两种。
属性图
属性图模型由顶点、边及其属性构成。顶点和边都可以带有属性,节点可以通过“标签(Label)”进行分 组。表示关系的边总是从一个开始点指向一个结束点,而且边是一定是有方向的,这使得图成为了有向图。关系 上的属性可以为节点的关系提供额外的元数据和语义。
不同图数据库的底层存储机制可能存在很大不同。根据存储和处理模型的不同,图数据库之间也会做一些区 分。比如,一些图数据库使用原生图存储,这类存储是经过优化的,专门为了存储和管理图数据而设计的。这类 数据库一般称为原生图数据库,例如如Galaxybase,Neo4j,tigergraph。有些图数据库依赖关系引擎将图数据 存储在关系型数据库的表中,通过在数据实际所在的底层存储系统之上增加一个具备图语义的抽象层来进行数据 交互。也有使用键值型存储方式或文档型存储方式作为底层存储的图数据库。这些类型图数据库统称为非原生图 数据库,比如ArrangoDB, OrientDB, JanusGraph等。原生图存储相比非原生更具有性能优势。原生图数据库底 层存储不依赖第三方存储系统,计算和存储一体化,极大的简化了系统架构。开发人员和运维人员可以更业务水 平的提升,避免花费大量时间在底层存储的管理和运维。同时,原生图数据库不需要和第三方技术黑盒进行沟通, 少了这部分的通讯开销,系统的性能也更高
常见图形数据库
Neo4j Galaxybase
AllegroGrap GraphDB
HugeGraph
InfiniteGraph
StellarDB
Neo4j是一个流行的图形数据库,它是开源的。最近,Neo4j的社区版已经由遵循AGPL许可协议转向了遵循 GPL许可协议。尽管如此,Neo4j的企业版依然使用AGPL许可。Neo4j基于Java实现,兼容ACID特性,也支持其他 编程语言,如Ruby和Python。
截至2013年6月底,我国民规模达5.91亿人,随着越来越多用户的加入,数据量呈指数增长,对社交络的分 析将面临很大的困难。Aggarwal等在文献中介绍了一些社交络分析应用场景,以及在中心地位分析、角色分析、 络建模等方面研究中存在的问题。针对在社交络分析面临数据增量较大和图形数据库更适于存储和处理社交络关 系的特点,R.Soussi等提出了一种从关系数据库数据转换成图形数据库数据的机制,并从图形数据库中抽取社交 络关系的方法。S.Kadge等提出了基于图预测社交站,预测是基于有向加权的社交图,方法是构建用户行为的社 交络图,用图挖掘技术预测未来的社交行为,并与Apriori和F-Tree两种算法的预测效率进行了对比。J.Cao等 分析和模拟企业社交络中的用户交互行为,形成企业用户的组织图和社交图,用两类图构建用户交互模型,用于 预测企业用户之间的交互行为。李孝伟等提出了一种融合节点与链接属性的社交络社区划分算法,该算法融合节 点属性的相似度、节点间链接权值等链接属性信息,结合聚类算法实现了对社交络的社区划分。
与关系型数据库相比,图数据库把关系也映射到数据结构中,对于关联度高的数据集查询更快,尤其适合那 些面向对象的应用程序。同时图数据库可以更自然的扩展到大数据应用场景,因为图数据库Schema更加灵活,所 以更加适合管理临时或不断变化的数据。
关系型数据库对大量的数据元素进行相同的操作时通常更快,因为这是在其自然的数据结构中操作数据。图 数据库在很多方面比关系型数据库更具有优势,而且变得越来越流行,但是图数据库和关系型数据库并非是简单 的替代关系,在具体应用场景中图数据库可以带来性能的提升和降低延迟才是适合的应用场景。
图数据库(graph database)不同于图引擎(graph engine)。图数据库主要应用为联机事务处理OLTP (on-line transaction processing),针对数据做事务(ACID)处理。图引擎用于联机分析处理OLAP(OnLine Analytical Processing),进行数据的批量分析。
免索引邻接是一种原生图数据库的存储方式。数据查找性能取决于从一个特定节点到另一个节点的访问速度。 由于免邻索引的存储方式,节点具有直接的物理 RAM并在物理上指向其他相邻节点,因此可以实现快速检索。具 有免索引邻接的原生图存储系统不必通过任何其他类型的数据结构来查找节点之间的链接。一旦检索到其中一个 节点,图中与其直接相关的节点就会存储在缓存中,这使得数据查找甚至比用户第一次获取节点时更快。然而, 这种优势是有代价的。免邻索引牺牲了不使用图遍历的查询的效率。原生图数据库使用免邻索引来处理对存储数 据的 CRUD操作。
在关系型数据库设计的时候需要进行严格的数据规范化,将数据分成不同的表并删除其中的重复数据,这种 规范化保证了数据的强一致性并支持ACID事务。然而,这也对关系查询带来的限制。
快速的实现逐行访问是关系型数据库的设计原理之一,当数据的数据之间形成复杂的关联时,跨表的关联查 询增加,就会出现问题。虽然可以通过将存在不同表中的不同属性进行关联从而实行复杂查询,但是开销是非常 大的。
Resource Description Framework(RDF)
RDF模型在顶点和边上没有属性,只有一个资源描述符,这是RDF与属性图模型间最根本的区别。在RDF中每 增加一条信息都要用一个单独的节点表示。比如,在图中给表示人的节点添加姓名。在属性图中只需要在节点添 加属性即可,而在RDF中必须添加一个名字的单独加节点,并用hasName与原始节点相连。
以属性图为核心数据模型的现代图数据库从诞生到大规模应用分为三个阶段
Graph 1.0:单机原生图数据库
2002-2010年,图数据库的使用开始兴起。这个阶段的图数据库采用小规模原生图存储,与传统数据库相比, 原生图数据库遍历查询时无需索引,能够极大减少系统开销、提升查询效率。但基于单机的小规模原生图数据库 扩展性较差,受制于单机性能的瓶颈,无法支持大规模数据的分布式存储查询以及并行计算。典型代表如: N、通用的商业化分布式并行图平台。Galaxybase是原生分布式存储架构,支持百 万亿点边规模的大图数据的高性能在线查询。它的内置分布式并行计算引擎,支持了数百种图算法及定制化函数, 具备优秀的实时图分析能力。此外,Galaxybase具备动态数据压缩算法能够以高压缩比对图数据进行压缩,数据 落盘文件格式紧凑。
发展历史
图数据库发展有着非常长的历史。早在1960年代,IBM的IMS导航型数据库已经支持了层次模型以及树状结构, 这些都是特殊形式的图 。在1960年代后期的络模型数据库(Network model Databases)已经可以支持图结构, CODASYL (Conference/Committee on Data SystemsLanguages)于 1959年定义了 COBOL,1969年定义了络 数据库语言。由于当时的硬件的性能无法支持复杂的查询需求,没有大范围的推广使用。期间图数据库一直不断 的进化发展,到了2000年代,随着互联时代大量关联数据的产生、RDF资源描述框架在络交换资源中的普遍应用、 以及具备ACID事务保证的图数据库的出现,che Tinkerpop Gremlin图查询语言,支持属性图,可支持 千亿级规模关系数据;支持多种后端存储(Cassandra,HBase,RocksDB,MySQL,PostgreSQL,ScyllaDB); 支持各类索引(二级索引、范围索引、全文索引、联合索引,均无需依赖第三方索引库); 提供可视化的Web界 面,可用于图建模、数据导入、图分析;提供导入工具支持从多种数据源中导入数据到图中,支持的数据源包括: CSV、HDFS、关系型数据库(MySQL、Oracle、SQL Server、PostgreSQL);支持REST接口,并提供10+种通用 的图算法;支持与Hadoop、Spark GraphX等大数据系统集成。
图数据库
专业术语
01 发展历史
03 图模型
目录
02 组成 04 特性
05 应用
07 研究现状
目录
06 常见图形数据库
图数据库是以点、边为基础存储单元,以高效存储、查询图数据为设计原理的数据管理系统。
图概念对于图数据库的理解至关重要。图是一组点和边的集合,“点”表示实体,“边”表示实体间的关系。 在图数据库中,数据间的关系和数据本身同样重要,它们被作为数据的一部分存储起来。这样的架构使图数据库 能够快速响应复杂关联查询,因为实体间的关系已经提前存储到了数据库中。图数据库可以直观地可视化关系, 是存储、查询、分析高度互联数据的最优办法。
InfiniteGraph基于Java实现,它的目标是构建“分布式的图形数据库”,已被美国国防部和美国中央情报 局所采用。除此之外,还有其他一些图形数据库,如OrientDB、InfoGrid和HypergraphDB。Ravel构建在开源 的Pregel实现之上,微软研究院的Trinity项目也是一个图形数据库项目。
边:也称作关系,将节点连接到其他节点的线;代表节点之间的关系。在探索节点、属性和边的连接和互连 时,往往会得到意想不到的价值洞见。边可以是有向的,也可以是无向的。在无向图中,连接两个节点的边具有 单一含义。在有向图中,连接两个不同节点的边,根据它们的方向具有不同的含义。边是图数据库中的关键概念, 图数据库独有的数据抽象概念,而关系型数据库和文件型数据库并没有“边”这一概念,它们的关系查询必须在 运行时进行具体化。
图数据库属于非关系型数据库(NoSQL)。图数据库对数据的存储、查询以及数据结构都和关系型数据库有 很大的不同。图数据结构直接存储了节点之间的依赖关系,而关系型数据库和其他类型的非关系型数据库则以非 直接的方式来表示数据之间的关系。图数据库把数据间的关联作为数据的一部分进行存储,关联上可添加标签、 方向以及属性,而其他数据库针对关系的查询必须在运行时进行具体化操作,这也是图数据库在关系查询上相比 其他类型数据库有巨大性能优势的原因。
特性
特点 存储
免索引邻接
与关系型数据库的对 比
更直观的模型 图数据模型直接还原业务场景,相比传统数据模型更直观,提升产品与工程师的沟通效率。 更简洁的查询语言 图数据库支持查询语言在关联查询中更简洁,以最通用的Cypher图查询语言为例,复杂关联查询时代码量比 SQL大幅降低,能够帮助程序员提升开发效率。 更高效的关联查询性能 图数据库在处理关联性强的数据以及天然的图问题场景时具有强大的关联查询性能优势。因为传统关系型数 据库在进行关联查询时需要做昂贵的表连接(JOIN),涉及到大量的IO操作及内存消耗。而图数据库对关联查询 有针对性的优化,能防止局部数据的查询引发全部数据的读取,可以高效查询关联数据。
应用
在许多情报和执法程序中,重要的是要寻找一个模式的事件。这些事件中的任何一个都可能看起来是无害的, 但他们观点以及他们是怎样直接或间接相关的,概念是不一样的。再例如社会络分析(SNA)对许多供应商的消费 品非常感兴趣,他是构建人与人之间的关系图。Facebook是一个社交络,它可以与家人和朋友之间保持。图形数 据库能很好地显示出这个人在他/她的朋友圈中是否有影响力,这群朋友是否有着共同的兴趣爱好。
Graph 2.
组成
图数据库是基于图论为数据基础的数据管理系统。它的组成包含点、边。数据通过点和边的形式进行表示, 把数据转化成点,数据间的关系转化成边。图的存储方式可以整合多源异构数据。
点:代表实体或实例,例如人员、企业、帐户或要跟踪的任何其他项目。它们大致相当于关系数据库中的记 录、关系或行,或者文档存储数据库中的文档。