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

2022-03-21 00:00:00 数据库 语言 支持 开源 是一个

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


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


JanusGraph介绍

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


JanusGraph2017年发布0.1.0版本,当前(截止2018-12-06)新版本为0.3.1JanusGraph 具有很好的扩展性,通过多机集群可支持存储和查询数百亿的顶点和边的图数据。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 TinkerPopGephi插件

    • Graphexp

    • KeyLines by Cambridge Intelligence

    • Linkurious

详细参见文末JanusGraph官网链接


JanusGraph与Tinkerpop

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


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


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


Tinkerpop这个图数据库与图计算框架被很多厂商采用,比如百度开源的HugeGraph,华为的图引擎服务GES等。详细参见文末Tinkerpop官网链接


JanusGraph与Neo4j

相同点

Neo4jJanusGraph都是非常的图数据库,都支持ACID,都是基于Java语言开发等等。

 

不同点

[1] 市场占比

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

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


[2] 技术特点

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

 

[3] 查询语言

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

 

[4] 开源情况

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

 

[5] 分布式

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


参考资料:

[1] http://janusgraph.org/

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

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


相关文章