HugeGraph介绍
- Summary
HugeGraph是一款易用、高效、通用的开源图数据库系统(Graph Database,GitHub项目地址), 实现了Apache TinkerPop3框架及完全兼容Gremlin查询语言, 具备完善的工具链组件,助力用户轻松构建基于图数据库之上的应用和产品。 - Features
HugeGraph支持在线及离线环境下的图操作,支持批量导入数据,支持高效的复杂关联关系分析,并且能够与大数据平台无缝集成。 HugeGraph支持多用户并行操作,用户可输入Gremlin查询语句,并及时得到图查询结果,也可在用户程序中调用HugeGraph API进行图分析或查询。 - Modules
模块 功能 HugeGraph-Server 核心部分,HugeGraph服务器 HugeGraph-Loader 将普通文本数据转化为图形的顶点和边并插入图形数据库中 HugeGraph-Tools 部署和管理工具,包括管理图、备份/恢复、Gremlin执行等功能 HugeGraph-Studio 前端展示工具,是基于Web的图形化IDE环境,可以执行Gremlin语句,并及时获得图形化的展示结果 HugeGraph-Client RESTful API的客户端,用于连接HugeGraph-Server
环境搭建
-
操作系统:Linux(CentOS)
在虚拟机上搭建环境 ,VMware Workstation Pro 16.1.2.8432,百度激活码激活。
-
CentOS尽可能选择最新版,本人一开始安装CentOS 6.5,发现国内没有镜像资源,一直无法安装软件,于是安装了CentOS 8.4。但8.4体积更大,需要配置更大的内存,不然进去会一卡一卡的。下面推荐一个安装教程,但我建议还是使用VMmare自带的典型配置,这样不容易翻车,选择NAT网络模式。
安装教程
本人选择 典型(推荐) 自动配置。
而后,自己 配置内存、处理器数、NAT模式、删除不需要的硬件
进入CentOS系统内,查看系统属性,指令uname -a
-
CentOS开发环境
因为HugeGraph-server,对开发环境的要求,需要 预先配置好Java和RocksDB环境。
查看Java版本java -version
,查看RocksDB版本gcc --version
。
CentOS 8.4,RocksDB已预先安装较新的,不要配置。只需要配置java环境即可。
CentOS下Java环境配置
-
HugeGraph环境安装
- 安装HugeGraph-Server
- 安装HugeGraph-Loader
- 安装HugeGraph-Studio
- 安装HugeGraph-Tools
- 安装包(选择同一行的安装包,彼此兼容)
完成界面,安装包全部解压
-
HugeGraph环境配置
1. HugeGraph-server提示的 url 与 rest-server.properties 中配置的 restserver.url 一致,因此可以通过 修改rest-server.properties配置文件中主机地址,更改为本地ip地址
-
HugeGraph-Studio
-
HugeGraph-Tools
配置HUGEGRAPH_URL
export HUGEGRAPH_URL=http://127.0.0.1:8080
,需要加端口号 -
HugeGraph-Loader
不要配置,因为操作指令可以附加服务器地址
-
Json文件导入
- 由HugeGraph-Loader的解释文档可知,需要编写两个文件
-f
(映射文件)和-s
(架构文件)。映射文件为json文件,框架文件为groovy文件。 - 下面是我整个实验所用的文件。一个
schema-1.groovy
框架文件,一个struct-1.json
映射文件,两个military.json/root.json
数据源文件。
- schema.groovy
- struct.json
- root.json/military.json
- json数据源导入
- 启动服务器
- 使用HugeGraph-Tools,清空之前数据库,以防止数据源不一致,导致导入失败
- 启动服务器
3. 使用HugeGraph-Loader,导入数据
4. 使用HugeGraph-Studio进行web可视化操作
在网页输入显示的URL,即可进入web可视化操作界面,使用Gremlin语言操作图数据库。
下面有很多点是孤零零的,因为该页面只显示部分顶点做示例,所以导致有些关系并不能在一张图显示完全。
总结
以上就完成了json数据源文件的导入工作,json文件中回车不能随便加,我当时写个小例子测试,就因为一个回车,一直无法反序列化。对于一个小白来说,不知道哪里出问题,只能一点一点测试问题在哪。理解映射结构后,发现HugeGraph导入数据还是蛮简单。