图数据库JanusGraph实战[1]: JanusGraph简介

图数据库JanusGraph实战[1]: JanusGraph简介

作者:胡佳辉(家辉)  CSDN博客:https://blog.csdn.net/gobitan

 

图数据库JanusGraph实战是一个系列文章,将全面介绍JanusGraph的各个方面。

本文是该系列的第一篇《图数据库JanusGraph实战[1]: JanusGraph简介》,主要包括JanusGraph的介绍、JanusGraph与Tinkerpop的关系以及JanusGraph与Neo4j的简单对比。

 

JanusGraph介绍

JanusGraph是一个开源的分布式图数据库。它的前身是著名的开源图数据库Titan,但Titan被DataStax收购之后就不再开源了。JanusGraph是在原Titan的基础上继续以开源的形式开发和发布,它的授权许可是Apache2 license,具有很好的商用友好性。

JanusGraph于2017年发布0.1.0版本,当前(截止2018-12-06)最新版本为0.3.1。JanusGraph 具有很好的扩展性,通过多机集群可支持存储和查询数百亿的顶点和边的图数据。JanusGraph是一个事务数据库,支持大量用户高并发地执行复杂的实时图遍历。

它提供了如下特性:

  • 支持数据和用户增长的弹性和线性扩展;

  • 通过数据分发和复制来提升性能和容错;

  • 支持多数据中心的高可用和热备份;

  • 支持ACID 和最终一致性;

    • 支持多种后端存储:

    • Apache Cassandra

    • Apache HBase

    • Google Cloud Bigtable

    • Oracle BerkeleyDB

  • 支持全局的图数据分析,报表以及和如下大数据平台的ETL集成:

    • Apache Spark

    • Apache Giraph

    • Apache Hadoop

  • 支持geo, 数值范围以及通过如下工具进行全文检索:

    • ElasticSearch

    • Apache Solr

    • Apache Lucene

  • 支持与Apache TinkerPop图栈进行原生集成:

    • Gremlin 图查询语言

    • Gremlin 图服务器

    • Gremlin 应用

  • 在Apache 2 license下开源

  • 可以通过如下工具来可视化存储在JanusGraph中的图数据:

    • Cytoscape

    • Apache TinkerPop的Gephi插件

    • Graphexp

    • KeyLines by Cambridge Intelligence

    • Linkurious

详细参见文末JanusGraph官网链接

 

JanusGraph与Tinkerpop

经常有朋友询问这两者之间的关系,这里简单聊一下。

想要深入了解JanusGraph,必须了解Tinkerpop。Tinkerpop是Apache基金会下的一个开源的图数据库与图计算框架(OLTP与OLAP),JanusGraph与Tinkerpop的关系可以认为是JanusGraph是基于Tinkerpop这个框架来开发的。

Tinkerpop有个组件叫Gremlin,它是一门用于图操作和图遍历的语言(也称查询语言)。Gremlin Console 和Gremlin Server分别提供了控制台和远程执行Gremlin查询语言的方式。Gremlin Server在JanusGraph中被成为JanusGraph Server。

Tinkerpop这个图数据库与图计算框架被很多厂商采用,比如百度开源的HugeGraph,华为的图引擎服务GES等。

详细参见文末Tinkerpop官网链接

 

JanusGraph与Neo4j

相同点

Neo4j和JanusGraph都是非常优秀的图数据库,都支持ACID,都是基于Java语言开发等等。

不同点

[1] 市场占比

Neo4j目前图数据库市场份额排第一的图数据库,占比达45%。

JanusGraph是图数据库中的一颗新星,发展速度很快,目前已经从2017年第13名上升到第7名,占比1.26%。详细排名参考文末链接。

[2] 技术特点

Neo4j为用户提供了一站式服务,生态成熟、工具齐全,而JanusGraph由于其灵活的架构,对后端存储和索引提供了很多选择,需要用户自己组合。从某种程度上来说,使用JanusGraph对团队的技术能力要求更高。

[3] 查询语言

Neo4j使用Cypher查询语言操作和遍历图数据,而JanusGraph用Gremlin语言。

[4] 开源情况

Neo4j区分社区版和企业版,社区版开源,企业版闭源。而JanusGraph无版本区分,均开源。

[5] 分布式

Neo4j支持高可用集群,但不支持分布式。JanusGraph是一个分布式的图数据库。

 

参考资料:

[1] http://janusgraph.org/

[2] http://tinkerpop.apache.org/

[3] https://db-engines.com/en/ranking/graph+dbms

本文原发于 "图数据库与图计算"公众号,欢迎关注!也可以加入"图数据库与图计算"QQ群(463749267)  

 

你可能感兴趣的:(5.,大数据,图数据库与图计算)