图数据库(1):图数据库介绍 - 简书 (jianshu.com)
图数据库的概念和背景已经有了了解。市场上众多的图数据库软件各有优劣,今天整理学习各种图数据库的特点以进行对比选型。我们先罗列一下有哪些主要图数据库产品。
数据库按照类型分为纯图模型数据库(代表Neo4j、JanusGraph、TigerGraph等)和多模型数据库服务(代表ArangoDB、OrientDB等),就目前的趋势来说虽然Neo4j的市场占有率是第一,但是越来越多的厂商尝试开始使用ArangoDB等多模型数据库,在大数据厂商中使用JanusGraph的也不少。
Neo4j是老牌的图数据库,是一个世界领先的开源图形数据库。 它是由Neo技术使用Java语言完全开发的,可以把Neo看作是一个高性能的图引擎,该引擎具有成熟和健壮的数据库的所有特性。
Neo4J使用原生图存储,以高度自由且规范的方式管理和存储数据。它可以明快地显示数据每个相关部分之间的链接,也可以在数据库查询中忽略不必要的细节。对比非原生图解决方案中,随着信息量的增加,使用面向对象的数据库存储数据库使数据操作变得越来越慢。Neo4J可以以每秒一百万条的惊人速度提供结果,因为数据中的链接部分或实体在物理上是已经相互连接的。NEO4J的另一个特点是ACID事务,它确保实时显示数据的合法性和准确性,这是企业级应用的重要特性。
2018年末Neo4j宣布对Neo4j企业版的许可进行重大更改,从Neo4j 3.5版本候选版开始,企业版仅在商业许可下提供。这也就是说Neo4j企业版闭源。
JanusGraph是非常成功的开源图数据库TitanDB的Fork版(TitanDB已经不维护)。这是一个高度可扩展的分布式图数据库,底层依赖于大数据组件,所以可以很好的和企业的大数据平台进行结合,并且能够支持实时图遍历和分析查询。 JanusGraph 是一个事务处理型数据库,可以支持数千个并发用户实时执行复杂的图遍历。
HugeGraph是百度开源的图数据库,实现了Apache TinkerPop3框架并完全兼容Gremlin查询语言, 具备完善的工具链组件。HugeGraph在大的架构上与JanusGraph类似,但在很多细节上与JanusGraph有很多不同之处。如支持的后端存储系统、提供了可视化的工具等。
OrientDB是第二代分布式图数据库(据说吞吐量10倍与Neo4j),以混合数据模型为特点,工作速度快,可以在普通的硬件上每秒存储220000条记录,并且支持无模式、完整和混合模式,可以使用SQL作为查询语言之一。OrientDB使用身份验证、密码和静态数据加密等方式为所有机密数据提供安全保护。OrientDB为确保更好的性能,引入了节点的快速重新同步,即使处理数十亿条记录,遍历速度也不会受到影响。
OrientDB 也属于 NoSQL 系列,是一个开源的多模型 数据库,支持原生图形、文档全文、响应性、地理空间和面向对象等概念。
OrientDB因为是商用版,所以了解不多,虽然有社区版本,但是没有Neo4j好用。
Arangodb以一种非常创造性和灵活的方式安排数据。数据可以存储为键或值对、图或文档,所有这些都可以通过一种查询语言(AQL)访问。ArangoDB 从第一行代码开始就是按照原生多模型数据库来设计编写。您可以灵活地为您的数据建立模型,并广泛应用在不同项目中。
MongoDB是第一个文档存储的NoSQL开源数据库。而ArangoDB添加了更多重要的特性,如可扩展性,JOINS, 复杂事务处理,等等。
多模型数据库将是未来发展趋势。
Nebula Graph(原阿里巴巴团队创业开发)是一个开源的分布式图数据库,存储计算分离,使用查询语言 nGQL,支持多种后端存储,除了原生的引擎外,也支持 HBase。和 HBase 的 CoProcessor 一样,Nebula Graph 支持数据计算下推。数据过滤,包括一些简单的聚合运算,能够在存储层就做掉,这样对于性能来讲能提升会非常大。Nebula 通过多 Space 来实现多租户,Space 是物理隔离。
Dgraph 是基于 golang 开发的开源的分布式图数据库,是可扩展的,分布式的,低延迟的图数据库。.它诞生时间不长, 发展却很迅速. 目前是 v21.x 版本。dgraph 是 golang 开发的, 所以部署非常简单, 更简单的方式是使用 docker。
DGraph (原 Google 团队创业开发)的目标是提供 Google 生产水平的规模和吞吐量,在超过TB的结构数据里,为用户提供足够低延迟的实时查询。DGraph 支持 GraphQL 作为查询语言,响应 JSON。
网友评论