概述
本文介绍分布式图数据库JanusGraph的基本概念和优势。
基本概念
JanusGraph是一个可扩展的图数据库(graph database),针对存储和查询包含分布在多机群集中的数千亿个顶点和边的图进行了优化。JanusGraph是一个事务数据库,可以支持数千个并发用户实时执行复杂的图遍历。
此外,JanusGraph还提供以下功能:
-
弹性和线性可扩展性,适用于不断增长的数据和用户群。
-
用于性能和容错的数据分布和复制。
-
多数据中心高可用性和热备份。
-
支持ACID和最终的一致性。
-
支持各种存储后端:
- Apache Cassandra®
- Apache HBase®
- Google Cloud Bigtable
- Oracle BerkeleyDB
-
通过与以下的大数据平台整合,支持全局图数据分析,报告和ETL:
-
通过以下方式支持地理位置,数值范围和全文搜索:
-
与Apache TinkerPop™图堆栈的本地集成:
-
Apache 2许可下的开源。
-
您可以通过以下任何工具可视化存储在JanusGraph中的图数据:
-
可以从以下链接下载JanusGraph:
-
可以在这里读取JanusGraph的文档。
JanusGraph的优势
JanusGraph的目的是支持巨大图数据的处理,所以它需要超出单个机器所能提供的存储和计算能力。为实时遍历和分析查询提供的可扩展图数据处理(Scaling graph data processing)是JanusGraph的基本优势。
JanusGraph的一般优势
- 支持非常大的图数据。JanusGraph根据群集中的计算机数量进行缩放。
- 支持大并发事务和图操作处理。JanusGraph的事务容量随群集中的计算机数量而变化,并以毫秒为单位响应巨大图上的复杂遍历查询。
- 通过Hadoop框架支持全局图分析和批处理图数据处理。
- 支持对巨大的图上的顶点和边缘进行地理,数值范围和全文搜索。
- 对Apache TinkerPop公开的流行属性图数据模型的本地支持。
- 原生支持图遍历语言Gremlin。
- 与Gremlin Server轻松集成,实现与编程语言无关的连接。
- 众多图级配置提供了调整性能的配置项。
- 以顶点为中心的索引提供顶点级查询,以解决难解的超级节点问题(super node problem)。
- 提供优化磁盘的方式,以便有效地使用存储和优化访问速度。
- 在Apache 2许可下开源。
JanusGraph和HBase整合的优势
- 与Apache Hadoop生态系统无缝集成。
- 原生态支持强一致性。
- 通过添加更多机器实现线性可扩展。
- 强一致性的读写操作。
- 方便的基类,用于使用HBase表支持Hadoop MapReduce作业。
- 支持通过JMX导出指标数据。
JanusGraph与Cassandra整合的优势
- 持续可用,没有单点故障。
- 由于没有主/从架构,因此图没有读/写瓶颈。
- 弹性可扩展性允许引入和移除机器。
- 缓存层可确保内存中可连续访问的数据。
- 通过向群集添加更多计算机来增加缓存的大小。
- 与Apache Hadoop集成。
JanusGraph与一致性理论
- 使用数据库时,应充分考虑CAP定理(C =一致性,A =可用性,P =可分区性)。JanusGraph与3个支持后端一起发布:Apache Cassandra,Apache HBase和Oracle Berkeley DB Java Edition。请注意,BerkeleyDB JE是一个非分布式数据库,通常仅与JanusGraph一起用于测试和探索目的。
- HBase以生产过程为代价优先考虑一致性,即完成请求的概率。Cassandra以最终结果为代价优先考虑可用性,即查询答案的完整性(可用数据/完整数据)。
参考文献