简介
JanusGraph是一款分布式、开源、可伸缩的图数据库。其伸缩性适用于千亿级图存储和查询,并能够将顶点、边分布式存储在多个集群中。
JanusGraph隶属于Linux基金,由其负责开发和维护,参与者包括谷歌、IBM、亚马逊等。
JanusGraph重点关注紧凑的图形序列化、丰富的图形数据建模和高效的查询执行。在批量图处理和图分析方面借助Hadoop实现并对客户端连接、数据索引查询、数据持久化等提供健壮性接口。JanusGraph的模块化架构允许它与广泛的存储、索引和客户端技术进行互操作。
进一步的详细介绍可参考官网[1]
架构
- 图分析支持(OLAP):基于Tinkerpop开发,支持以Gremlin图语言为基础的图数据分析
- 图事务支持(OLTP):基于Tinkerpop开发,支持以Gremlin图语言为基础的图事务管理
- API管理:对外提供完备的API支持和管理
- 存储后端:用于图数据存储
- 索引后端:用于图数据搜索
存储后端支持:
- Apache Cassandra
- Apache HBase
- Oracle Berkeley DB Java Edition
索引后端支持:
- Elasticsearch
- Apache Solr
- Apache Lucene
JanusGraph目前支持两种接入方式:
嵌入式:JanusGraph服务可以与应用程序在相同的JVM中,所有的缓存、事务等均在此JVM中,存储后端和索引后端可以连接本地或远程。
命令试:JanusGraph服务可以单独部署,部署成功后会长期运行JanusGraph服务进行,外部应用可以借助Gremlin命令进行图数据库实例获取与使用。
基础使用
本事例仅仅以单机的形式本地部署JanusGraph服务,使用内存作为存储后端,暂无索引后端,采用gremlin-visualizer/graphexp进行可视化展示。以上配置可以方便初入者更快的了解。
- 服务端开启
首先从官网gitpub下载release程序包https://github.com/JanusGraph/janusgraph/releases
然后执行bin文件夹中的gremlin-server.sh文件(也可以执行bat类型文件,不同操作系统如何执行sh/bat自行百度)
1 | #启动默认配置-hostname:127.0.0.1,链接:http://127.0.0.1,端口:8182,不进行图实例加载 |
1 | #根据自定义配置文件yaml启动 |
- Gremlin-console开启
console作为Gremlin命令的执行客户端需要启动,在启动后可以单独执行Gremlin命令也可以将执行命令提交到已经链接的server服务端生效。
1 | #启动console服务 |
- 测试数据加载
加载内置的测试图数据
1 | #通过命令生成图实例,依照指定路径配置文件进行生成实例,实例名称可自由设定 |
- 可视化客户端启动
以gremlin-visualizer为例(其他可视化工具大同小异)具体操作如下:
首先官网下载gremlin-visualizerhttps://github.com/prabushitha/gremlin-visualizer
1 | #克隆项目 |
- 图查询命令
在可视化工具中输入查询命令即可,或者在console中输入查询命令可输出结构化原始数据
1 | #输出所有顶点 |
基本概念讲解
- OLTP:on-line transaction processing联机事务处理,用在图数据库
- OLAP:On-Line Analytical Processing联机分析处理,用在图数据分析
- 图:相当于mqsl中的数据库
- 图数据库中没有表的概念,同一个图中无关联的子图可以理解为表
参考资料:
版权声明:本文为博主原创文章,欢迎转载,转载请注明作者、原文超链接,感谢各位看官!!!
本文出自:monkeyGeek
座右铭:生于忧患,死于安乐
欢迎志同道合的朋友一起交流、探讨!
