美文网首页
JanusGraph(一)--简介

JanusGraph(一)--简介

作者: _空格键_ | 来源:发表于2020-05-17 17:24 被阅读0次

开始学习JanusGraph,第一入手资源 官网
JanusGraph是分布式,开源,可大规模扩展的图形数据库。

概述

1. 什么是图

大学的《数据结构》课程中介绍:它是一种用来描述现实世界中个体和个体之间网络关系的数据结构。是一个抽象的数据结构概念。

在计算机科学中,图的组成结构可以描述为:一个图(G)就是一些顶点(V)的集合,这些顶点之间的关系通过一系列边(E)连接起来。顶点用圈表示,关系边使用线条表示,形成如下结构拓扑图:

图结构模型

2. 什么是图形数据库

图数据库就是用来存储图结构的数据库。大多数人接触最多,并且容易理解的是关系型数据库(RDB)。一般的关系型数据库都可以存储图结构,但对于复杂的关系模型,比如微信用户关系网模型构建分析,关系型数据库就显的力不从心。图数据库就是为了解决这类复杂的关系问题而产生的。

图库也是属于NoSQL一种。

NoSQL数据库大致可以分为以下几类:

  • 键值对(key-value)数据库:如Memcache,Redis
  • 列簇式数据库:如HBase
  • 文档型数据库:如Mongodb
  • 图数据库:如Neo4j,JanusGraph

3. 常见图库对比

目前主流数据库分为两个派系:Neo4j派 和 Tinkerpop派

有兴趣可以看下这里 https://blog.csdn.net/wjandy0211/article/details/102707202

4. JanusGraph 与 Tinkerpop 与 Gremlin

Tinkerpop 是Apache基金会下的一个开源的图数据库与图计算框架(OLTP与OLAP)。

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

JanusGraph是基于Tinkerpop这个框架来开发的,使用的查询语言也是Gremlin。

JanusGraph

1. 概述

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

2. 交互

应用程序可以通过两种方式与JanusGraph交互:

  • 嵌入式: 将JanusGraph嵌入到自己的图Gremlin查询应用中,与自己的应用公用同一JVM。
    查询执行时,JanusGraph的缓存和事务处理都在与应用程序相同的JVM中进行,当数据模型大时,很容易OOM,并且耦合性太高,生产上一般不这么搞。
  • 服务式: JanusGraph单独运行在一个或一组服务器上,对外提供服务。(推荐的模式)
    客户端通过向服务器提交Gremlin查询,与远程JanusGraph实例进行交互。

3. 架构

JanusGraph架构模型

4. JanusGraph特点

1. 可扩展

  • 弹性和线性可扩展性,可用于不断增长的数据和用户群
  • 数据分发和复制以提高性能和容错能力
  • 多数据中心高可用性和热备份

2. 开源

所有功能 都是完全免费的。无需购买商业许可证。JanusGraph在Apache 2许可下完全开放源代码。

3. 事务

JanusGraph是一个事务数据库,可以支持数千个并发用户实时执行复杂的图遍历。支持ACID和最终的一致性。

4. 数据存储

图数据可以存储在:

生产中使用最多的是 Cassandra 和 HBase,根据业务特性选型。

5. 检索

全文搜索等高级搜索功能可以通过以下方式支持:

6. 分析

除了在线事务处理(OLTP)之外,JanusGraph的Apache Spark集成还支持全局图分析(OLAP)。

7. TinkerPop

与 Apache TinkerPop 图栈的本地集成:

8. 适配器

JanusGraph有不同的第三方存储适配器:

9. 可视化

JanusGraph支持各种可视化工具,例如Arcade Analytics、Cytoscape、Apache TinkerPop的Gephi插件、Graphexp、Cambridge Intelligence的Key Lines、Linkurious、Tom Sawyer。


相关文章

网友评论

      本文标题:JanusGraph(一)--简介

      本文链接:https://www.haomeiwen.com/subject/zedsohtx.html