开始学习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. 数据存储
图数据可以存储在:
- Apache Cassandra - 注重在AP上
- Apache HBase - 注重在CP上
- Google Cloud Bigtable
- Oracle BerkeleyDB - 一般用于单机本地验证
- ScyllaDB
生产中使用最多的是 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。
网友评论