(1)JanusGraph学习----简介

2022-03-21 00:00:00 索引 查询 数据 支持 是一个

一、简介

1.1.基本介绍

JanusGraph是一个分布式的图数据库。是由linux基金会2017年开源的,完全继承了titan(2012-2016年,后被收购gameover)。通过hadoop来进行数据处理和分析,支持全文索引。和neo4j单机版不同,本身不存储图数据。依赖于后端支持的数据库,标配的有:hbase,Apache Cassandra。

1.2.特性

  • 支持非常大的图数据。JanusGraph根据群集中的计算机数量进行缩放。

  • 支持很多并发事务和操作图处理。JanusGraph的事务容量随群集中的计算机数量而变化,并以毫秒为单位回答巨大图数据上的复杂遍历查询。

  • 通过Hadoop框架支持全局图分析和批处理图处理。

  • 支持对非常大的图上的顶点和边缘进行地理,数值范围和全文搜索

  • 对Apache TinkerPop公开的流行属性图数据模型的本机支持。

  • 对图遍历语言Gremlin的原生支持。

  • 与Gremlin Server轻松集成,实现与编程语言无关的连接。

  • 众多图形级配置提供了调整性能的旋钮。

  • 以顶点为中心的索引提供顶点级查询,以缓解臭名昭着的超级节点问题。

  • 提供优化的磁盘表示,以便有效地使用存储和访问速度。

  • 在Apache 2许可下开源。

1.3.JanusGraph与Apache Cassandra结合的优点

  • 连续可用,没有单点故障。

  • 由于没有主/从架构,因此图库没有读/写瓶颈。

  • 弹性可扩展性允许引入和移除机器。

  • 缓存层可确保内存中可连续访问的数据。

  • 通过向群集添加更多计算机来增加缓存的大小。

  • 与Apache Hadoop集成。

  • 在Apache 2许可下开源

1.4.JanusGraph与HBase结合的优点

  • 与Apache Hadoop生态系统紧密集成。

  • 本机支持强一致性。

  • 通过添加更多机器实现线性可扩展性。

  • 严格一致的读写操作。

  • 方便的基类,用于使用HBase表支持Hadoop MapReduce作业。

  • 支持通过JMX导出指标。

  • 在Apache 2许可下开源。

1.5.JanusGraph和CAP定理

        使用数据库时,应充分考虑CAP定理(C =一致性,A =可用性,P =可分区性)。JanusGraph与3个支持后端一起发布:Apache Cassandra,Apache HBase和Oracle Berkeley DB Java Edition。请注意,BerkeleyDB JE是一个非分布式数据库,通常仅与JanusGraph一起用于测试和探索目的。HBase以产量为代价优先考虑一致性,即完成请求的概率。Cassandra以收获为代价优先考虑可用性,即查询答案的完整性(可用数据/完整数据)。

二、体系结构概述

JanusGraph是一个图数据库引擎。JanusGraph本身专注于紧凑图序列化,丰富的图数据建模和高效的查询执行。此外,JanusGraph利用Hadoop进行图分析和批量图处理。JanusGraph为数据持久性,数据索引和客户端访问实现了强大的模块化接口。JanusGraph的模块化架构使其能够与各种存储,索引和客户端技术进行互操作; 它还简化了扩展JanusGraph以支持新的组件的过程。

在JanusGraph和磁盘之间有一个或多个存储和索引适配器。JanusGraph标配以下适配器,但JanusGraph的模块化架构支持第三方适配器。

  • 数据存储:

    • Apache Cassandra

    • Apache HBase

    • Oracle Berkeley DB Java版

  • 索引,加速并启用更复杂的查询:

    • Elasticsearch

    • Apache Solr

    • Apache Lucene

从广义上讲,应用程序可以通过两种方式与JanusGraph进行交互:

  • 将JanusGraph嵌入到执行Gremlin查询的应用程序中,直接针对同一JVM中的图形。查询执行,JanusGraph的缓存和事务处理都发生在与应用程序相同的JVM中,而从存储后端进行的数据检索可能是本地的或远程的。

  • 通过向服务器提交Gremlin查询来与本地或远程JanusGraph实例交互。JanusGraph本身支持Apache TinkerPop堆栈的Gremlin Server组件。

图2.1 JanusGraph架构和上下文:


相关文章