什么是图数据库

Posted by Wan Peng on 2021-03-01T03:47:57.000Z

图形数据库是NoSQL数据库的一种类型,它应用图形理论存储实体之间的关系信息。图形数据库是一种非关系型数据库,它应用图形理论存储实体之间的关系信息。最常见例子就是社会网络中人与人之间的关系。关系型数据库用于存储“关系型”数据的效果并不好,其查询复杂、缓慢、超出预期,而图形数据库的独特设计恰恰弥补了这个缺陷。

组成

在一个图形数据库中,最主要的组成有两种,结点集和连接结点的关系(有的也称泡泡和箭头)。结点集就是图中一系列结点的集合,比较接近于关系数据库中所最常使用的表,而关系则是图形数据库所特有的组成。

常见图形数据库

Neo4j

Neo4j是一个流行的图形数据库,它是开源的。最近,Neo4j的社区版已经由遵循AGPL许可协议转向了遵循GPL许可协议。尽管如此,Neo4j的企业版依然使用AGPL许可。Neo4j基于Java实现,兼容ACID特性,也支持其他编程语言,如Ruby和Python。

FlockDB

FlockDB是Twitter为进行关系数据分析而构建的。FlockDB迄今为止还没有稳定的版本,对于它是否是一个真正的图形数据库,尚有争议。FlockDB和其它图形数据库(如Neo4j、OrientDB)的区别在于图的遍历,Twitter的数据模型不需要遍历社交图谱。尽管如此,由于FlockDB应用于Twitter这样的大型站点,以及它相比其它图形数据库的简洁性,仍然值得我们值得关注。

AllegroGrap

AllegroGrap是一个基于W3c标准的为资源描述框架构建的图形数据库。它为处理链接数据和Web语义而设计,支持SPARQL、RDFS++和Prolog。

GraphDB

GraphDB是德国sones公司在.NET基础上构建的。Sones公司于2007年成立,近年来陆续进行了几轮融资。GraphDB社区版遵循AGPL v3许可协议,企业版是商业化的。GraphDB托管在Windows Azure平台上。

InfiniteGraph

InfiniteGraph基于Java实现,它的目标是构建“分布式的图形数据库”,已被美国国防部和美国中央情报局所采用。除此之外,还有其他一些图形数据库,如OrientDB、InfoGrid和HypergraphDB。Ravel构建在开源的Pregel实现之上,微软研究院的Trinity项目也是一个图形数据库项目。

HugeGraph

百度开源的分布式图数据库。 支持标准的Apache Tinkerpop Gremlin图查询语言,支持属性图,可支持千亿级规模关系数据;支持多种后端存储(Cassandra,HBase,RocksDB,MySQL,PostgreSQL,ScyllaDB);支持各类索引(二级索引、范围索引、全文索引、联合索引,均无需依赖第三方索引库);提供可视化的Web界面,可用于图建模、数据导入、图分析;提供导入工具支持从多种数据源中导入数据到图中,支持的数据源包括:CSV、HDFS、关系型数据库(MySQL、Oracle、SQL Server、PostgreSQL);支持REST接口,并提供10+种通用的图算法;支持与Hadoop、Spark GraphX等大数据系统集成。