From a9f97ec4e2e28e702ccd83c5a6ce2d621413c286 Mon Sep 17 00:00:00 2001 From: imbajin Date: Tue, 12 Sep 2023 04:18:47 +0000 Subject: [PATCH] doc: add server preload and hubble deploy (#281) - add the server preload - add how to deploy hubble --------- Co-authored-by: imbajin 156b9c72f11e0efdfca3f8b825ca69e1a4442e7a --- cn/docs/_print/index.html | 63 +++++- cn/docs/index.xml | 195 ++++++++++++++---- cn/docs/quickstart/_print/index.html | 63 +++++- .../quickstart/hugegraph-hubble/index.html | 92 +++++---- .../quickstart/hugegraph-server/index.html | 26 ++- cn/docs/quickstart/index.xml | 195 ++++++++++++++---- cn/sitemap.xml | 2 +- docs/_print/index.html | 61 +++++- docs/index.xml | 195 ++++++++++++++---- docs/quickstart/_print/index.html | 61 +++++- docs/quickstart/hugegraph-hubble/index.html | 41 +++- docs/quickstart/hugegraph-server/index.html | 26 ++- docs/quickstart/index.xml | 195 ++++++++++++++---- en/sitemap.xml | 2 +- sitemap.xml | 2 +- 15 files changed, 978 insertions(+), 241 deletions(-) diff --git a/cn/docs/_print/index.html b/cn/docs/_print/index.html index 8aa9f3155..5fbbda74d 100644 --- a/cn/docs/_print/index.html +++ b/cn/docs/_print/index.html @@ -197,7 +197,7 @@ }

详细的 API 请参考 RESTful-API 文档

7 停止 Server

$cd hugegraph-${version}
 $bin/stop-hugegraph.sh
-

8 使用 IntelliJ IDEA 调试 Server

请参考在 IDEA 中配置 Server 开发环境

9 在启动 Server 时创建示例图

修改 conf/gremlin-server.yaml,将 empty-sample.groovy 修改为 example.groovy

org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {
+

8 使用 IntelliJ IDEA 调试 Server

请参考在 IDEA 中配置 Server 开发环境

9 在启动 Server 时创建示例图

有三种方式可以在启动 Server 时创建示例图

9.1 直接修改配置文件

修改 conf/gremlin-server.yaml,将 empty-sample.groovy 修改为 example.groovy

org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {
     files: [scripts/example.groovy]
 }
 

修改 scripts/example.groovy,将:

RegisterUtil.registerRocksDB()
@@ -223,7 +223,25 @@
                                  Dload  Upload   Total   Spent    Left  Speed
 100   222  100   222    0     0   3163      0 --:--:-- --:--:-- --:--:--  3964
 {"vertices":[{"id":"2:lop","label":"software","type":"vertex","properties":{"name":"lop","lang":"java","price":328}},{"id":"1:josh","label":"person","type":"vertex","properties":{"name":"josh","age":32,"city":"Beijing"}},{"id":"1:marko","label":"person","type":"vertex","properties":{"name":"marko","age":29,"city":"Beijing"}},{"id":"1:peter","label":"person","type":"vertex","properties":{"name":"peter","age":35,"city":"Shanghai"}},{"id":"1:vadas","label":"person","type":"vertex","properties":{"name":"vadas","age":27,"city":"Hongkong"}},{"id":"2:ripple","label":"software","type":"vertex","properties":{"name":"ripple","lang":"java","price":199}}]}
-

代表创建示例图成功。

使用 IntelliJ IDEA 在启动 Server 时创建示例图的流程类似,不再赘述。

3.2 - HugeGraph-Loader Quick Start

1 HugeGraph-Loader概述

HugeGraph-Loader 是 HugeGraph 的数据导入组件,能够将多种数据源的数据转化为图的顶点和边并批量导入到图数据库中。

目前支持的数据源包括:

  • 本地磁盘文件或目录,支持 TEXT、CSV 和 JSON 格式的文件,支持压缩文件
  • HDFS 文件或目录,支持压缩文件
  • 主流关系型数据库,如 MySQL、PostgreSQL、Oracle、SQL Server

本地磁盘文件和 HDFS 文件支持断点续传。

后面会具体说明。

注意:使用 HugeGraph-Loader 需要依赖 HugeGraph Server 服务,下载和启动 Server 请参考 HugeGraph-Server Quick Start

2 获取 HugeGraph-Loader

有两种方式可以获取 HugeGraph-Loader:

  • 下载已编译的压缩包
  • 克隆源码编译安装

2.1 下载已编译的压缩包

下载最新版本的 HugeGraph-Toolchain Release 包, 里面包含了 loader + tool + hubble 全套工具, 如果你已经下载, 可跳过重复步骤

wget https://downloads.apache.org/incubator/hugegraph/1.0.0/apache-hugegraph-toolchain-incubating-1.0.0.tar.gz
+

代表创建示例图成功。

使用 IntelliJ IDEA 在启动 Server 时创建示例图的流程类似,不再赘述。

9.2 启动脚本时指定参数

在脚本启动时候携带 -p true 参数, 表示preload, 即创建示例图

bin/start-hugegraph.sh -p true
+Starting HugeGraphServer in daemon mode...
+Connecting to HugeGraphServer (http://127.0.0.1:8080/graphs)......OK
+

并且使用 RESTful API 请求 HugeGraphServer 得到如下结果:

> curl "http://localhost:8080/graphs/hugegraph/graph/vertices" | gunzip
+
+{"vertices":[{"id":"2:lop","label":"software","type":"vertex","properties":{"name":"lop","lang":"java","price":328}},{"id":"1:josh","label":"person","type":"vertex","properties":{"name":"josh","age":32,"city":"Beijing"}},{"id":"1:marko","label":"person","type":"vertex","properties":{"name":"marko","age":29,"city":"Beijing"}},{"id":"1:peter","label":"person","type":"vertex","properties":{"name":"peter","age":35,"city":"Shanghai"}},{"id":"1:vadas","label":"person","type":"vertex","properties":{"name":"vadas","age":27,"city":"Hongkong"}},{"id":"2:ripple","label":"software","type":"vertex","properties":{"name":"ripple","lang":"java","price":199}}]}
+

代表创建示例图成功。

9.3 使用docker启动

在docker启动的时候设置环境变量 PRELOAD=true, 从而实现启动脚本的时候加载数据。

  1. 使用docker run

    使用 docker run -itd --name=graph -p 18080:8080 -e PRELOAD=true hugegraph/hugegraph:latest

  2. 使用docker-compose

    创建docker-compose.yml,具体文件如下

    version: '3'
    +  services:
    +    graph:
    +      image: hugegraph/hugegraph:latest
    +      container_name: graph
    +      environment:
    +        - PRELOAD=true
    +      ports:
    +        - 18080:8080
    +

    使用命令 docker-compose up -d 启动容器

使用 RESTful API 请求 HugeGraphServer 得到如下结果:

> curl "http://localhost:18080/graphs/hugegraph/graph/vertices" | gunzip
+
+{"vertices":[{"id":"2:lop","label":"software","type":"vertex","properties":{"name":"lop","lang":"java","price":328}},{"id":"1:josh","label":"person","type":"vertex","properties":{"name":"josh","age":32,"city":"Beijing"}},{"id":"1:marko","label":"person","type":"vertex","properties":{"name":"marko","age":29,"city":"Beijing"}},{"id":"1:peter","label":"person","type":"vertex","properties":{"name":"peter","age":35,"city":"Shanghai"}},{"id":"1:vadas","label":"person","type":"vertex","properties":{"name":"vadas","age":27,"city":"Hongkong"}},{"id":"2:ripple","label":"software","type":"vertex","properties":{"name":"ripple","lang":"java","price":199}}]}
+

代表创建示例图成功。

3.2 - HugeGraph-Loader Quick Start

1 HugeGraph-Loader概述

HugeGraph-Loader 是 HugeGraph 的数据导入组件,能够将多种数据源的数据转化为图的顶点和边并批量导入到图数据库中。

目前支持的数据源包括:

  • 本地磁盘文件或目录,支持 TEXT、CSV 和 JSON 格式的文件,支持压缩文件
  • HDFS 文件或目录,支持压缩文件
  • 主流关系型数据库,如 MySQL、PostgreSQL、Oracle、SQL Server

本地磁盘文件和 HDFS 文件支持断点续传。

后面会具体说明。

注意:使用 HugeGraph-Loader 需要依赖 HugeGraph Server 服务,下载和启动 Server 请参考 HugeGraph-Server Quick Start

2 获取 HugeGraph-Loader

有两种方式可以获取 HugeGraph-Loader:

  • 下载已编译的压缩包
  • 克隆源码编译安装

2.1 下载已编译的压缩包

下载最新版本的 HugeGraph-Toolchain Release 包, 里面包含了 loader + tool + hubble 全套工具, 如果你已经下载, 可跳过重复步骤

wget https://downloads.apache.org/incubator/hugegraph/1.0.0/apache-hugegraph-toolchain-incubating-1.0.0.tar.gz
 tar zxf *hugegraph*.tar.gz
 

2.2 克隆源码编译安装

克隆最新版本的 HugeGraph-Loader 源码包:

# 1. get from github
 git clone https://github.com/apache/hugegraph-toolchain.git
@@ -1052,9 +1070,46 @@
 # 恢复图模式
 ./bin/hugegraph --url http://127.0.0.1:8080 --graph hugegraph graph-mode-set -m NONE
 
8. 图迁移
./bin/hugegraph --url http://127.0.0.1:8080 --graph hugegraph migrate --target-url http://127.0.0.1:8090 --target-graph hugegraph
-

3.4 - HugeGraph-Hubble Quick Start

1 HugeGraph-Hubble概述

HugeGraph是一款面向分析型,支持批量操作的图数据库系统,它由百度安全团队自主研发,全面支持Apache TinkerPop3框架和Gremlin图查询语言,提供导出、备份、恢复等完善的工具链生态,有效解决海量图数据的存储、查询和关联分析需求。HugeGraph广泛应用于银行券商的风控打击、保险理赔、推荐搜索、公安犯罪打击、知识图谱构建、网络安全、IT运维等领域,致力于让更多行业、组织及用户享受到更广泛的数据综合价值。

HugeGraph-Hubble 是HugeGraph的一站式可视化分析平台,平台涵盖了从数据建模,到数据快速导入,再到数据的在线、离线分析、以及图的统一管理的全过程,实现了图应用的全流程向导式操作,旨在提升用户的使用流畅度,降低用户的使用门槛,提供更为高效易用的使用体验。

平台主要包括以下模块:

图管理

图管理模块通过图的创建,连接平台与图数据,实现多图的统一管理,并实现图的访问、编辑、删除、查询操作。

元数据建模

元数据建模模块通过创建属性库,顶点类型,边类型,索引类型,实现图模型的构建与管理,平台提供两种模式,列表模式和图模式,可实时展示元数据模型,更加直观。同时还提供了跨图的元数据复用功能,省去相同元数据繁琐的重复创建过程,极大地提升建模效率,增强易用性。

数据导入

数据导入是将用户的业务数据转化为图的顶点和边并插入图数据库中,平台提供了向导式的可视化导入模块,通过创建导入任务,实现导入任务的管理及多个导入任务的并行运行,提高导入效能。进入导入任务后,只需跟随平台步骤提示,按需上传文件,填写内容,就可轻松实现图数据的导入过程,同时支持断点续传,错误重试机制等,降低导入成本,提升效率。

图分析

通过输入图遍历语言Gremlin可实现图数据的高性能通用分析,并提供顶点的定制化多维路径查询等功能,提供3种图结果展示方式,包括:图形式、表格形式、Json形式,多维度展示数据形态,满足用户使用的多种场景需求。提供运行记录及常用语句收藏等功能,实现图操作的可追溯,以及查询输入的复用共享,快捷高效。支持图数据的导出,导出格式为Json格式。

任务管理

对于需要遍历全图的Gremlin任务,索引的创建与重建等耗时较长的异步任务,平台提供相应的任务管理功能,实现异步任务的统一的管理与结果查看。

2 平台使用流程

平台的模块使用流程如下:

image

3 平台使用说明

3.1 图管理

3.1.1 图创建

图管理模块下,点击【创建图】,通过填写图ID、图名称、主机名、端口号、用户名、密码的信息,实现多图的连接。

image

创建图填写内容如下:

image
3.1.2 图访问

实现图空间的信息访问,进入后,可进行图的多维查询分析、元数据管理、数据导入、算法分析等操作。

image
3.1.3 图管理
  1. 用户通过对图的概览、搜索以及单图的信息编辑与删除,实现图的统一管理。
  2. 搜索范围:可对图名称和ID进行搜索。
image

3.2 元数据建模(列表+图模式)

3.2.1 模块入口

左侧导航处:

image
3.2.2 属性类型
3.2.2.1 创建
  1. 填写或选择属性名称、数据类型、基数,完成属性的创建。
  2. 创建的属性可作为顶点类型和边类型的属性。

列表模式:

image

图模式:

image
3.2.2.2 复用
  1. 平台提供【复用】功能,可直接复用其他图的元数据。
  2. 选择需要复用的图ID,继续选择需要复用的属性,之后平台会进行是否冲突的校验,通过后,可实现元数据的复用。

选择复用项:

image

校验复用项:

image
3.2.2.3 管理
  1. 在属性列表中可进行单条删除或批量删除操作。
3.2.3 顶点类型
3.2.3.1 创建
  1. 填写或选择顶点类型名称、ID策略、关联属性、主键属性,顶点样式、查询结果中顶点下方展示的内容,以及索引的信息:包括是否创建类型索引,及属性索引的具体内容,完成顶点类型的创建。

列表模式:

image

图模式:

image
3.2.3.2 复用
  1. 顶点类型的复用,会将此类型关联的属性和属性索引一并复用。
  2. 复用功能使用方法类似属性的复用,见3.2.2.2。
3.2.3.3 管理
  1. 可进行编辑操作,顶点样式、关联类型、顶点展示内容、属性索引可编辑,其余不可编辑。

  2. 可进行单条删除或批量删除操作。

image
3.2.4 边类型
3.2.4.1 创建
  1. 填写或选择边类型名称、起点类型、终点类型、关联属性、是否允许多次连接、边样式、查询结果中边下方展示的内容,以及索引的信息:包括是否创建类型索引,及属性索引的具体内容,完成边类型的创建。

列表模式:

image

图模式:

image
3.2.4.2 复用
  1. 边类型的复用,会将此类型的起点类型、终点类型、关联的属性和属性索引一并复用。
  2. 复用功能使用方法类似属性的复用,见3.2.2.2。
3.2.4.3 管理
  1. 可进行编辑操作,边样式、关联属性、边展示内容、属性索引可编辑,其余不可编辑,同顶点类型。
  2. 可进行单条删除或批量删除操作。
3.2.5 索引类型

展示顶点类型和边类型的顶点索引和边索引。

3.3 数据导入

数据导入的使用流程如下:

image
3.3.1 模块入口

左侧导航处:

image
3.3.2 创建任务
  1. 填写任务名称和备注(非必填),可以创建导入任务。
  2. 可创建多个导入任务,并行导入。
image
3.3.3 上传文件
  1. 上传需要构图的文件,目前支持的格式为CSV,后续会不断更新。
  2. 可同时上传多个文件。
image
3.3.4 设置数据映射
  1. 对上传的文件分别设置数据映射,包括文件设置和类型设置

  2. 文件设置:勾选或填写是否包含表头、分隔符、编码格式等文件本身的设置内容,均设置默认值,无需手动填写

  3. 类型设置:

    1. 顶点映射和边映射:

      【顶点类型】 :选择顶点类型,并为其ID映射上传文件中列数据;

      【边类型】:选择边类型,为其起点类型和终点类型的ID列映射上传文件的列数据;

    2. 映射设置:为选定的顶点类型的属性映射上传文件中的列数据,此处,若属性名称与文件的表头名称一致,可自动匹配映射属性,无需手动填选

    3. 完成设置后,显示设置列表,方可进行下一步操作,支持映射的新增、编辑、删除操作

设置映射的填写内容:

image

映射列表:

image
3.3.5 导入数据

导入前需要填写导入设置参数,填写完成后,可开始向图库中导入数据

  1. 导入设置
  • 导入设置参数项如下图所示,均设置默认值,无需手动填写
image
  1. 导入详情
  • 点击开始导入,开始文件的导入任务
  • 导入详情中提供每个上传文件设置的映射类型、导入速度、导入的进度、耗时以及当前任务的具体状态,并可对每个任务进行暂停、继续、停止等操作
  • 若导入失败,可查看具体原因
image

3.4 数据分析

3.4.1 模块入口

左侧导航处:

image
3.4.2 多图切换

通过左侧切换入口,灵活切换多图的操作空间

image
3.4.3 图分析与处理

HugeGraph支持Apache TinkerPop3的图遍历查询语言Gremlin,Gremlin是一种通用的图数据库查询语言,通过输入Gremlin语句,点击执行,即可执行图数据的查询分析操作,并可实现顶点/边的创建及删除、顶点/边的属性修改等。

Gremlin查询后,下方为图结果展示区域,提供3种图结果展示方式,分别为:【图模式】、【表格模式】、【Json模式】。

支持缩放、居中、全屏、导出等操作。

【图模式】

image

【表格模式】

image

【Json模式】

image
3.4.4 数据详情

点击顶点/边实体,可查看顶点/边的数据详情,包括:顶点/边类型,顶点ID,属性及对应值,拓展图的信息展示维度,提高易用性。

3.4.5 图结果的多维路径查询

除了全局的查询外,可针对查询结果中的顶点进行深度定制化查询以及隐藏操作,实现图结果的定制化挖掘。

右击顶点,出现顶点的菜单入口,可进行展示、查询、隐藏等操作。

  • 展开:点击后,展示与选中点关联的顶点。
  • 查询:通过选择与选中点关联的边类型及边方向,在此条件下,再选择其属性及相应筛选规则,可实现定制化的路径展示。
  • 隐藏:点击后,隐藏选中点及与之关联的边。

双击顶点,也可展示与选中点关联的顶点。

image
3.4.6 新增顶点/边
3.4.6.1 新增顶点

在图区可通过两个入口,动态新增顶点,如下:

  1. 点击图区面板,出现添加顶点入口
  2. 点击右上角的操作栏中的首个图标

通过选择或填写顶点类型、ID值、属性信息,完成顶点的增加。

入口如下:

image

添加顶点内容如下:

image
3.4.6.2 新增边

右击图结果中的顶点,可增加该点的出边或者入边。

3.4.7 执行记录与收藏的查询
  1. 图区下方记载每次查询记录,包括:查询时间、执行类型、内容、状态、耗时、以及【收藏】和【加载】操作,实现图执行的全方位记录,有迹可循,并可对执行内容快速加载复用
  2. 提供语句的收藏功能,可对常用语句进行收藏操作,方便高频语句快速调用
image

3.5 任务管理

3.5.1 模块入口

左侧导航处:

image
3.5.2 任务管理
  1. 提供异步任务的统一的管理与结果查看,异步任务包括4类,分别为:
  • gremlin:Gremlin任务
  • algorithm:OLAP算法任务
  • remove_schema:删除元数据
  • rebuild_index:重建索引
  1. 列表显示当前图的异步任务信息,包括:任务ID,任务名称,任务类型,创建时间,耗时,状态,操作,实现对异步任务的管理。
  2. 支持对任务类型和状态进行筛选
  3. 支持搜索任务ID和任务名称
  4. 可对异步任务进行删除或批量删除操作
image
3.5.3 Gremlin异步任务

1.创建任务

  • 数据分析模块,目前支持两种Gremlin操作,Gremlin查询和Gremlin任务;若用户切换到Gremlin任务,点击执行后,在异步任务中心会建立一条异步任务; +

3.4 - HugeGraph-Hubble Quick Start

1 HugeGraph-Hubble概述

HugeGraph是一款面向分析型,支持批量操作的图数据库系统,它由百度安全团队自主研发,全面支持Apache TinkerPop3框架和Gremlin图查询语言,提供导出、备份、恢复等完善的工具链生态,有效解决海量图数据的存储、查询和关联分析需求。HugeGraph广泛应用于银行券商的风控打击、保险理赔、推荐搜索、公安犯罪打击、知识图谱构建、网络安全、IT运维等领域,致力于让更多行业、组织及用户享受到更广泛的数据综合价值。

HugeGraph-Hubble 是HugeGraph的一站式可视化分析平台,平台涵盖了从数据建模,到数据快速导入,再到数据的在线、离线分析、以及图的统一管理的全过程,实现了图应用的全流程向导式操作,旨在提升用户的使用流畅度,降低用户的使用门槛,提供更为高效易用的使用体验。

平台主要包括以下模块:

图管理

图管理模块通过图的创建,连接平台与图数据,实现多图的统一管理,并实现图的访问、编辑、删除、查询操作。

元数据建模

元数据建模模块通过创建属性库,顶点类型,边类型,索引类型,实现图模型的构建与管理,平台提供两种模式,列表模式和图模式,可实时展示元数据模型,更加直观。同时还提供了跨图的元数据复用功能,省去相同元数据繁琐的重复创建过程,极大地提升建模效率,增强易用性。

数据导入

数据导入是将用户的业务数据转化为图的顶点和边并插入图数据库中,平台提供了向导式的可视化导入模块,通过创建导入任务,实现导入任务的管理及多个导入任务的并行运行,提高导入效能。进入导入任务后,只需跟随平台步骤提示,按需上传文件,填写内容,就可轻松实现图数据的导入过程,同时支持断点续传,错误重试机制等,降低导入成本,提升效率。

图分析

通过输入图遍历语言Gremlin可实现图数据的高性能通用分析,并提供顶点的定制化多维路径查询等功能,提供3种图结果展示方式,包括:图形式、表格形式、Json形式,多维度展示数据形态,满足用户使用的多种场景需求。提供运行记录及常用语句收藏等功能,实现图操作的可追溯,以及查询输入的复用共享,快捷高效。支持图数据的导出,导出格式为Json格式。

任务管理

对于需要遍历全图的Gremlin任务,索引的创建与重建等耗时较长的异步任务,平台提供相应的任务管理功能,实现异步任务的统一的管理与结果查看。

2 部署

有三种方式可以部署hugegraph-hubble

  • 下载 toolchain 二进制包
  • 源码编译
  • 使用docker

2.1 下载 toolchain 二进制包

hubble项目在toolchain项目中, 首先下载toolchain的tar包

wget https://downloads.apache.org/incubator/hugegraph/1.0.0/apache-hugegraph-toolchain-incubating-{version}.tar.gz
+tar -xvf apache-hugegraph-toolchain-incubating-{version}.tar.gz 
+cd apache-hugegraph-toolchain-incubating-{version}.tar.gz/apache-hugegraph-hubble-incubating-{version}
+

运行hubble

bin/start-hubble.sh
+

随后我们可以看到

starting HugeGraphHubble ..............timed out with http status 502
+2023-08-30 20:38:34 [main] [INFO ] o.a.h.HugeGraphHubble [] - Starting HugeGraphHubble v1.0.0 on cpu05 with PID xxx (~/apache-hugegraph-toolchain-incubating-1.0.0/apache-hugegraph-hubble-incubating-1.0.0/lib/hubble-be-1.0.0.jar started by $USER in ~/apache-hugegraph-toolchain-incubating-1.0.0/apache-hugegraph-hubble-incubating-1.0.0)
+...
+2023-08-30 20:38:38 [main] [INFO ] c.z.h.HikariDataSource [] - hugegraph-hubble-HikariCP - Start completed.
+2023-08-30 20:38:41 [main] [INFO ] o.a.c.h.Http11NioProtocol [] - Starting ProtocolHandler ["http-nio-0.0.0.0-8088"]
+2023-08-30 20:38:41 [main] [INFO ] o.a.h.HugeGraphHubble [] - Started HugeGraphHubble in 7.379 seconds (JVM running for 8.499)
+

然后使用浏览器访问 ip:8088 可看到hubble页面, 通过bin/stop-hubble.sh则可以停止服务

2.2 源码编译

注意: 编译 hubble 需要用户本地环境有安装 Nodejs V16.xyarn 环境

apt install curl build-essential
+curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
+source ~/.bashrc
+nvm install 16
+

然后确认安装版本是否为 16.x (请注意过高的 Node 版本会产生冲突)

node -v
+

使用下列命令安装 yarn

npm install -g yarn
+

下载toolchain源码包

git clone https://github.com/apache/hugegraph-toolchain.git
+

编译hubble, 它依赖 loader 和 client, 编译时需提前构建这些依赖 (后续可跳)

cd incubator-hugegraph-toolchain
+sudo pip install -r hugegraph-hubble/hubble-dist/assembly/travis/requirements.txt
+mvn install -pl hugegraph-client,hugegraph-loader -am -Dmaven.javadoc.skip=true -DskipTests -ntp
+cd hugegraph-hubble
+mvn -e compile package -Dmaven.javadoc.skip=true -Dmaven.test.skip=true -ntp
+cd apache-hugegraph-hubble-incubating*
+

启动hubble

bin/start-hubble.sh -d
+

2.3 使用Docker

特别注意: 如果使用 docker 启动 hubble,且 hubble 和 server 位于同一宿主机,在后续 hubble 页面中设置 graph 的 hostname 的时候请不要直接设置 localhost/127.0.0.1,这将指向 hubble 容器内部而非宿主机,导致无法连接到 server

我们可以使用 docker run -itd --name=hubble -p 8088:8088 hugegraph/hubble 快速启动 hubble.

或者使用docker-compose启动hubble,另外如果hubble和graph在同一个docker网络下,可以使用graph的contain_name进行访问,而不需要宿主机的ip

使用docker-compose up -ddocker-compose.yml如下:

version: '3'
+services:
+  graph_hubble:
+    image: hugegraph/hugegraph
+    container_name: graph
+    ports:
+      - 18080:8080
+
+  hubble:
+    image: hugegraph/hubble
+    container_name: hubble
+    ports:
+      - 8088:8088
+

3 平台使用流程

平台的模块使用流程如下:

image

4 平台使用说明

4.1 图管理

4.1.1 图创建

图管理模块下,点击【创建图】,通过填写图ID、图名称、主机名、端口号、用户名、密码的信息,实现多图的连接。

image

创建图填写内容如下:

image
4.1.2 图访问

实现图空间的信息访问,进入后,可进行图的多维查询分析、元数据管理、数据导入、算法分析等操作。

image
4.1.3 图管理
  1. 用户通过对图的概览、搜索以及单图的信息编辑与删除,实现图的统一管理。
  2. 搜索范围:可对图名称和ID进行搜索。
image

4.2 元数据建模(列表+图模式)

4.2.1 模块入口

左侧导航处:

image
4.2.2 属性类型
4.2.2.1 创建
  1. 填写或选择属性名称、数据类型、基数,完成属性的创建。
  2. 创建的属性可作为顶点类型和边类型的属性。

列表模式:

image

图模式:

image
4.2.2.2 复用
  1. 平台提供【复用】功能,可直接复用其他图的元数据。
  2. 选择需要复用的图ID,继续选择需要复用的属性,之后平台会进行是否冲突的校验,通过后,可实现元数据的复用。

选择复用项:

image

校验复用项:

image
4.2.2.3 管理
  1. 在属性列表中可进行单条删除或批量删除操作。
4.2.3 顶点类型
4.2.3.1 创建
  1. 填写或选择顶点类型名称、ID策略、关联属性、主键属性,顶点样式、查询结果中顶点下方展示的内容,以及索引的信息:包括是否创建类型索引,及属性索引的具体内容,完成顶点类型的创建。

列表模式:

image

图模式:

image
4.2.3.2 复用
  1. 顶点类型的复用,会将此类型关联的属性和属性索引一并复用。
  2. 复用功能使用方法类似属性的复用,见3.2.2.2。
4.2.3.3 管理
  1. 可进行编辑操作,顶点样式、关联类型、顶点展示内容、属性索引可编辑,其余不可编辑。

  2. 可进行单条删除或批量删除操作。

image
4.2.4 边类型
4.2.4.1 创建
  1. 填写或选择边类型名称、起点类型、终点类型、关联属性、是否允许多次连接、边样式、查询结果中边下方展示的内容,以及索引的信息:包括是否创建类型索引,及属性索引的具体内容,完成边类型的创建。

列表模式:

image

图模式:

image
4.2.4.2 复用
  1. 边类型的复用,会将此类型的起点类型、终点类型、关联的属性和属性索引一并复用。
  2. 复用功能使用方法类似属性的复用,见3.2.2.2。
4.2.4.3 管理
  1. 可进行编辑操作,边样式、关联属性、边展示内容、属性索引可编辑,其余不可编辑,同顶点类型。
  2. 可进行单条删除或批量删除操作。
4.2.5 索引类型

展示顶点类型和边类型的顶点索引和边索引。

4.3 数据导入

数据导入的使用流程如下:

image
4.3.1 模块入口

左侧导航处:

image
4.3.2 创建任务
  1. 填写任务名称和备注(非必填),可以创建导入任务。
  2. 可创建多个导入任务,并行导入。
image
4.3.3 上传文件
  1. 上传需要构图的文件,目前支持的格式为CSV,后续会不断更新。
  2. 可同时上传多个文件。
image
4.3.4 设置数据映射
  1. 对上传的文件分别设置数据映射,包括文件设置和类型设置

  2. 文件设置:勾选或填写是否包含表头、分隔符、编码格式等文件本身的设置内容,均设置默认值,无需手动填写

  3. 类型设置:

    1. 顶点映射和边映射:

      【顶点类型】 :选择顶点类型,并为其ID映射上传文件中列数据;

      【边类型】:选择边类型,为其起点类型和终点类型的ID列映射上传文件的列数据;

    2. 映射设置:为选定的顶点类型的属性映射上传文件中的列数据,此处,若属性名称与文件的表头名称一致,可自动匹配映射属性,无需手动填选

    3. 完成设置后,显示设置列表,方可进行下一步操作,支持映射的新增、编辑、删除操作

设置映射的填写内容:

image

映射列表:

image
4.3.5 导入数据

导入前需要填写导入设置参数,填写完成后,可开始向图库中导入数据

  1. 导入设置
  • 导入设置参数项如下图所示,均设置默认值,无需手动填写
image
  1. 导入详情
  • 点击开始导入,开始文件的导入任务
  • 导入详情中提供每个上传文件设置的映射类型、导入速度、导入的进度、耗时以及当前任务的具体状态,并可对每个任务进行暂停、继续、停止等操作
  • 若导入失败,可查看具体原因
image

4.4 数据分析

4.4.1 模块入口

左侧导航处:

image
4.4.2 多图切换

通过左侧切换入口,灵活切换多图的操作空间

image
4.4.3 图分析与处理

HugeGraph支持Apache TinkerPop3的图遍历查询语言Gremlin,Gremlin是一种通用的图数据库查询语言,通过输入Gremlin语句,点击执行,即可执行图数据的查询分析操作,并可实现顶点/边的创建及删除、顶点/边的属性修改等。

Gremlin查询后,下方为图结果展示区域,提供3种图结果展示方式,分别为:【图模式】、【表格模式】、【Json模式】。

支持缩放、居中、全屏、导出等操作。

【图模式】

image

【表格模式】

image

【Json模式】

image
4.4.4 数据详情

点击顶点/边实体,可查看顶点/边的数据详情,包括:顶点/边类型,顶点ID,属性及对应值,拓展图的信息展示维度,提高易用性。

4.4.5 图结果的多维路径查询

除了全局的查询外,可针对查询结果中的顶点进行深度定制化查询以及隐藏操作,实现图结果的定制化挖掘。

右击顶点,出现顶点的菜单入口,可进行展示、查询、隐藏等操作。

  • 展开:点击后,展示与选中点关联的顶点。
  • 查询:通过选择与选中点关联的边类型及边方向,在此条件下,再选择其属性及相应筛选规则,可实现定制化的路径展示。
  • 隐藏:点击后,隐藏选中点及与之关联的边。

双击顶点,也可展示与选中点关联的顶点。

image
4.4.6 新增顶点/边
4.4.6.1 新增顶点

在图区可通过两个入口,动态新增顶点,如下:

  1. 点击图区面板,出现添加顶点入口
  2. 点击右上角的操作栏中的首个图标

通过选择或填写顶点类型、ID值、属性信息,完成顶点的增加。

入口如下:

image

添加顶点内容如下:

image
4.4.6.2 新增边

右击图结果中的顶点,可增加该点的出边或者入边。

4.4.7 执行记录与收藏的查询
  1. 图区下方记载每次查询记录,包括:查询时间、执行类型、内容、状态、耗时、以及【收藏】和【加载】操作,实现图执行的全方位记录,有迹可循,并可对执行内容快速加载复用
  2. 提供语句的收藏功能,可对常用语句进行收藏操作,方便高频语句快速调用
image

4.5 任务管理

4.5.1 模块入口

左侧导航处:

image
4.5.2 任务管理
  1. 提供异步任务的统一的管理与结果查看,异步任务包括4类,分别为:
  • gremlin:Gremlin任务
  • algorithm:OLAP算法任务
  • remove_schema:删除元数据
  • rebuild_index:重建索引
  1. 列表显示当前图的异步任务信息,包括:任务ID,任务名称,任务类型,创建时间,耗时,状态,操作,实现对异步任务的管理。
  2. 支持对任务类型和状态进行筛选
  3. 支持搜索任务ID和任务名称
  4. 可对异步任务进行删除或批量删除操作
image
4.5.3 Gremlin异步任务

1.创建任务

  • 数据分析模块,目前支持两种Gremlin操作,Gremlin查询和Gremlin任务;若用户切换到Gremlin任务,点击执行后,在异步任务中心会建立一条异步任务; 2.任务提交
  • 任务提交成功后,图区部分返回提交结果和任务ID -3.任务详情
  • 提供【查看】入口,可跳转到任务详情查看当前任务具体执行情况跳转到任务中心后,直接显示当前执行的任务行
image

点击查看入口,跳转到任务管理列表,如下:

image

4.查看结果

  • 结果通过json形式展示
3.5.4 OLAP算法任务

Hubble上暂未提供可视化的OLAP算法执行,可调用RESTful API进行OLAP类算法任务,在任务管理中通过ID找到相应任务,查看进度与结果等。

3.5.5 删除元数据、重建索引

1.创建任务

  • 在元数据建模模块中,删除元数据时,可建立删除元数据的异步任务
image
  • 在编辑已有的顶点/边类型操作中,新增索引时,可建立创建索引的异步任务
image

2.任务详情

  • 确认/保存后,可跳转到任务中心查看当前任务的详情
image

3.5 - HugeGraph-Client Quick Start

1 HugeGraph-Client概述

HugeGraph-Client向HugeGraph-Server发出HTTP请求,获取并解析Server的执行结果。目前仅提供了Java版,用户可以使用HugeGraph-Client编写Java代码操作HugeGraph,比如元数据和图数据的增删改查,或者执行gremlin语句。

2 环境要求

  • java 11 (兼容 java 8)
  • maven 3.5+

3 使用流程

使用HugeGraph-Client的基本步骤如下:

  • 新建Eclipse/ IDEA Maven项目;
  • 在pom文件中添加HugeGraph-Client依赖;
  • 创建类,调用HugeGraph-Client接口;

详细使用过程见下节完整示例。

4 完整示例

4.1 新建Maven工程

可以选择Eclipse或者Intellij Idea创建工程:

4.2 添加hugegraph-client依赖

添加hugegraph-client依赖

<dependencies>
+3.任务详情
  • 提供【查看】入口,可跳转到任务详情查看当前任务具体执行情况跳转到任务中心后,直接显示当前执行的任务行
  • image

    点击查看入口,跳转到任务管理列表,如下:

    image

    4.查看结果

    • 结果通过json形式展示
    4.5.4 OLAP算法任务

    Hubble上暂未提供可视化的OLAP算法执行,可调用RESTful API进行OLAP类算法任务,在任务管理中通过ID找到相应任务,查看进度与结果等。

    4.5.5 删除元数据、重建索引

    1.创建任务

    • 在元数据建模模块中,删除元数据时,可建立删除元数据的异步任务
    image
    • 在编辑已有的顶点/边类型操作中,新增索引时,可建立创建索引的异步任务
    image

    2.任务详情

    • 确认/保存后,可跳转到任务中心查看当前任务的详情
    image

    3.5 - HugeGraph-Client Quick Start

    1 HugeGraph-Client概述

    HugeGraph-Client向HugeGraph-Server发出HTTP请求,获取并解析Server的执行结果。目前仅提供了Java版,用户可以使用HugeGraph-Client编写Java代码操作HugeGraph,比如元数据和图数据的增删改查,或者执行gremlin语句。

    2 环境要求

    • java 11 (兼容 java 8)
    • maven 3.5+

    3 使用流程

    使用HugeGraph-Client的基本步骤如下:

    • 新建Eclipse/ IDEA Maven项目;
    • 在pom文件中添加HugeGraph-Client依赖;
    • 创建类,调用HugeGraph-Client接口;

    详细使用过程见下节完整示例。

    4 完整示例

    4.1 新建Maven工程

    可以选择Eclipse或者Intellij Idea创建工程:

    4.2 添加hugegraph-client依赖

    添加hugegraph-client依赖

    <dependencies>
         <dependency>
             <groupId>org.apache.hugegraph</groupId>
             <artifactId>hugegraph-client</artifactId>
    diff --git a/cn/docs/index.xml b/cn/docs/index.xml
    index 7d9ed5938..944de3636 100644
    --- a/cn/docs/index.xml
    +++ b/cn/docs/index.xml
    @@ -1624,6 +1624,13 @@
     </span></span></code></pre></div><h3 id="8-使用-intellij-idea-调试-server">8 使用 IntelliJ IDEA 调试 Server</h3>
     <p>请参考<a href="/docs/contribution-guidelines/hugegraph-server-idea-setup">在 IDEA 中配置 Server 开发环境</a></p>
     <h3 id="9-在启动-server-时创建示例图">9 在启动 Server 时创建示例图</h3>
    +<p>有三种方式可以在启动 Server 时创建示例图</p>
    +<ul>
    +<li>方式一: 直接修改配置文件</li>
    +<li>方式二: 启动脚本使用命令行参数</li>
    +<li>方式三: 使用docker或docker-compose添加环境变量</li>
    +</ul>
    +<h4 id="91-直接修改配置文件">9.1 直接修改配置文件</h4>
     <p>修改 <code>conf/gremlin-server.yaml</code>,将 <code>empty-sample.groovy</code> 修改为 <code>example.groovy</code>:</p>
     <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>{<span style="color:#f8f8f8;text-decoration:underline">
     </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">files</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">[</span><span style="color:#000">scripts/example.groovy]</span><span style="color:#f8f8f8;text-decoration:underline">
    @@ -1658,7 +1665,44 @@
     </span></span></code></pre></div><p>代表创建示例图成功。</p>
     <blockquote>
     <p>使用 IntelliJ IDEA 在启动 Server 时创建示例图的流程类似,不再赘述。</p>
    -</blockquote>Docs: Introduction with HugeGraph/cn/docs/introduction/readme/Mon, 01 Jan 0001 00:00:00 +0000/cn/docs/introduction/readme/
    +</blockquote>
    +<h4 id="92-启动脚本时指定参数">9.2 启动脚本时指定参数</h4>
    +<p>在脚本启动时候携带 <code>-p true</code> 参数, 表示preload, 即创建示例图</p>
    +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>bin/start-hugegraph.sh -p true
    +</span></span><span style="display:flex;"><span>Starting HugeGraphServer in daemon mode...
    +</span></span><span style="display:flex;"><span>Connecting to HugeGraphServer (http://127.0.0.1:8080/graphs)......OK
    +</span></span></code></pre></div><p>并且使用 RESTful API 请求 <code>HugeGraphServer</code> 得到如下结果:</p>
    +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold">&gt;</span> <span style="color:#000">curl</span> <span style="color:#4e9a06">&#34;http://localhost:8080/graphs/hugegraph/graph/vertices&#34;</span> <span style="color:#ce5c00;font-weight:bold">|</span> <span style="color:#000">gunzip</span>
    +</span></span><span style="display:flex;"><span>
    +</span></span><span style="display:flex;"><span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;vertices&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">[{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;2:lop&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;software&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;lop&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;lang&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;java&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;price&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">328</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:josh&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;josh&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">32</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Beijing&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:marko&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;marko&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">29</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Beijing&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:peter&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;peter&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">35</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Shanghai&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:vadas&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vadas&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">27</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Hongkong&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;2:ripple&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;software&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;ripple&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;lang&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;java&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;price&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">199</span><span style="color:#000;font-weight:bold">}}]}</span>
    +</span></span></code></pre></div><p>代表创建示例图成功。</p>
    +<h4 id="93-使用docker启动">9.3 使用docker启动</h4>
    +<p>在docker启动的时候设置环境变量 <code>PRELOAD=true</code>, 从而实现启动脚本的时候加载数据。</p>
    +<ol>
    +<li>
    +<p>使用<code>docker run</code></p>
    +<p>使用 <code>docker run -itd --name=graph -p 18080:8080 -e PRELOAD=true hugegraph/hugegraph:latest</code></p>
    +</li>
    +<li>
    +<p>使用<code>docker-compose</code></p>
    +<p>创建<code>docker-compose.yml</code>,具体文件如下</p>
    +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">version</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;3&#39;</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">services</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">graph</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">image</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">hugegraph/hugegraph:latest</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">container_name</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">graph</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">environment</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>- <span style="color:#000">PRELOAD=true</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">ports</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>- <span style="color:#0000cf;font-weight:bold">18080</span><span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">8080</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span></code></pre></div><p>使用命令 <code>docker-compose up -d</code> 启动容器</p>
    +</li>
    +</ol>
    +<p>使用 RESTful API 请求 <code>HugeGraphServer</code> 得到如下结果:</p>
    +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold">&gt;</span> <span style="color:#000">curl</span> <span style="color:#4e9a06">&#34;http://localhost:18080/graphs/hugegraph/graph/vertices&#34;</span> <span style="color:#ce5c00;font-weight:bold">|</span> <span style="color:#000">gunzip</span>
    +</span></span><span style="display:flex;"><span>
    +</span></span><span style="display:flex;"><span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;vertices&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">[{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;2:lop&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;software&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;lop&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;lang&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;java&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;price&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">328</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:josh&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;josh&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">32</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Beijing&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:marko&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;marko&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">29</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Beijing&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:peter&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;peter&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">35</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Shanghai&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:vadas&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vadas&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">27</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Hongkong&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;2:ripple&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;software&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;ripple&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;lang&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;java&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;price&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">199</span><span style="color:#000;font-weight:bold">}}]}</span>
    +</span></span></code></pre></div><p>代表创建示例图成功。</p>Docs: Introduction with HugeGraph/cn/docs/introduction/readme/Mon, 01 Jan 0001 00:00:00 +0000/cn/docs/introduction/readme/
     <h3 id="summary">Summary</h3>
     <p>HugeGraph是一款易用、高效、通用的开源图数据库系统(Graph Database,<a href="https://github.com/apache/hugegraph">GitHub项目地址</a>),
     实现了<a href="https://tinkerpop.apache.org">Apache TinkerPop3</a>框架及完全兼容<a href="https://tinkerpop.apache.org/gremlin.html">Gremlin</a>查询语言,
    @@ -8687,14 +8731,77 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p>
     <p>通过输入图遍历语言Gremlin可实现图数据的高性能通用分析,并提供顶点的定制化多维路径查询等功能,提供3种图结果展示方式,包括:图形式、表格形式、Json形式,多维度展示数据形态,满足用户使用的多种场景需求。提供运行记录及常用语句收藏等功能,实现图操作的可追溯,以及查询输入的复用共享,快捷高效。支持图数据的导出,导出格式为Json格式。</p>
     <h5 id="任务管理">任务管理</h5>
     <p>对于需要遍历全图的Gremlin任务,索引的创建与重建等耗时较长的异步任务,平台提供相应的任务管理功能,实现异步任务的统一的管理与结果查看。</p>
    -<h3 id="2平台使用流程">2 平台使用流程</h3>
    +<h4 id="2-部署">2 部署</h4>
    +<p>有三种方式可以部署<code>hugegraph-hubble</code></p>
    +<ul>
    +<li>下载 toolchain 二进制包</li>
    +<li>源码编译</li>
    +<li>使用docker</li>
    +</ul>
    +<h4 id="21-下载-toolchain-二进制包">2.1 下载 toolchain 二进制包</h4>
    +<p><code>hubble</code>项目在<code>toolchain</code>项目中, 首先下载<code>toolchain</code>的tar包</p>
    +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>wget https://downloads.apache.org/incubator/hugegraph/1.0.0/apache-hugegraph-toolchain-incubating-<span style="color:#ce5c00;font-weight:bold">{</span>version<span style="color:#ce5c00;font-weight:bold">}</span>.tar.gz
    +</span></span><span style="display:flex;"><span>tar -xvf apache-hugegraph-toolchain-incubating-<span style="color:#ce5c00;font-weight:bold">{</span>version<span style="color:#ce5c00;font-weight:bold">}</span>.tar.gz
    +</span></span><span style="display:flex;"><span><span style="color:#204a87">cd</span> apache-hugegraph-toolchain-incubating-<span style="color:#ce5c00;font-weight:bold">{</span>version<span style="color:#ce5c00;font-weight:bold">}</span>.tar.gz/apache-hugegraph-hubble-incubating-<span style="color:#ce5c00;font-weight:bold">{</span>version<span style="color:#ce5c00;font-weight:bold">}</span>
    +</span></span></code></pre></div><p>运行<code>hubble</code></p>
    +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>bin/start-hubble.sh
    +</span></span></code></pre></div><p>随后我们可以看到</p>
    +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>starting HugeGraphHubble ..............timed out with http status <span style="color:#0000cf;font-weight:bold">502</span>
    +</span></span><span style="display:flex;"><span>2023-08-30 20:38:34 <span style="color:#ce5c00;font-weight:bold">[</span>main<span style="color:#ce5c00;font-weight:bold">]</span> <span style="color:#ce5c00;font-weight:bold">[</span>INFO <span style="color:#ce5c00;font-weight:bold">]</span> o.a.h.HugeGraphHubble <span style="color:#ce5c00;font-weight:bold">[]</span> - Starting HugeGraphHubble v1.0.0 on cpu05 with PID xxx <span style="color:#ce5c00;font-weight:bold">(</span>~/apache-hugegraph-toolchain-incubating-1.0.0/apache-hugegraph-hubble-incubating-1.0.0/lib/hubble-be-1.0.0.jar started by <span style="color:#000">$USER</span> in ~/apache-hugegraph-toolchain-incubating-1.0.0/apache-hugegraph-hubble-incubating-1.0.0<span style="color:#ce5c00;font-weight:bold">)</span>
    +</span></span><span style="display:flex;"><span>...
    +</span></span><span style="display:flex;"><span>2023-08-30 20:38:38 <span style="color:#ce5c00;font-weight:bold">[</span>main<span style="color:#ce5c00;font-weight:bold">]</span> <span style="color:#ce5c00;font-weight:bold">[</span>INFO <span style="color:#ce5c00;font-weight:bold">]</span> c.z.h.HikariDataSource <span style="color:#ce5c00;font-weight:bold">[]</span> - hugegraph-hubble-HikariCP - Start completed.
    +</span></span><span style="display:flex;"><span>2023-08-30 20:38:41 <span style="color:#ce5c00;font-weight:bold">[</span>main<span style="color:#ce5c00;font-weight:bold">]</span> <span style="color:#ce5c00;font-weight:bold">[</span>INFO <span style="color:#ce5c00;font-weight:bold">]</span> o.a.c.h.Http11NioProtocol <span style="color:#ce5c00;font-weight:bold">[]</span> - Starting ProtocolHandler <span style="color:#ce5c00;font-weight:bold">[</span><span style="color:#4e9a06">&#34;http-nio-0.0.0.0-8088&#34;</span><span style="color:#ce5c00;font-weight:bold">]</span>
    +</span></span><span style="display:flex;"><span>2023-08-30 20:38:41 <span style="color:#ce5c00;font-weight:bold">[</span>main<span style="color:#ce5c00;font-weight:bold">]</span> <span style="color:#ce5c00;font-weight:bold">[</span>INFO <span style="color:#ce5c00;font-weight:bold">]</span> o.a.h.HugeGraphHubble <span style="color:#ce5c00;font-weight:bold">[]</span> - Started HugeGraphHubble in 7.379 seconds <span style="color:#ce5c00;font-weight:bold">(</span>JVM running <span style="color:#204a87;font-weight:bold">for</span> 8.499<span style="color:#ce5c00;font-weight:bold">)</span>
    +</span></span></code></pre></div><p>然后使用浏览器访问 <code>ip:8088</code> 可看到<code>hubble</code>页面, 通过<code>bin/stop-hubble.sh</code>则可以停止服务</p>
    +<h4 id="22-源码编译">2.2 源码编译</h4>
    +<p><strong>注意:</strong> 编译 hubble 需要用户本地环境有安装 <code>Nodejs V16.x</code> 与 <code>yarn</code> 环境</p>
    +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>apt install curl build-essential
    +</span></span><span style="display:flex;"><span>curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh <span style="color:#000;font-weight:bold">|</span> bash
    +</span></span><span style="display:flex;"><span><span style="color:#204a87">source</span> ~/.bashrc
    +</span></span><span style="display:flex;"><span>nvm install <span style="color:#0000cf;font-weight:bold">16</span>
    +</span></span></code></pre></div><p>然后确认安装版本是否为 <code>16.x</code> (请注意过高的 Node 版本会产生冲突)</p>
    +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>node -v
    +</span></span></code></pre></div><p>使用下列命令安装 <code>yarn</code></p>
    +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>npm install -g yarn
    +</span></span></code></pre></div><p>下载toolchain源码包</p>
    +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>git clone https://github.com/apache/hugegraph-toolchain.git
    +</span></span></code></pre></div><p>编译<code>hubble</code>, 它依赖 loader 和 client, 编译时需提前构建这些依赖 (后续可跳)</p>
    +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span><span style="color:#204a87">cd</span> incubator-hugegraph-toolchain
    +</span></span><span style="display:flex;"><span>sudo pip install -r hugegraph-hubble/hubble-dist/assembly/travis/requirements.txt
    +</span></span><span style="display:flex;"><span>mvn install -pl hugegraph-client,hugegraph-loader -am -Dmaven.javadoc.skip<span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#204a87">true</span> -DskipTests -ntp
    +</span></span><span style="display:flex;"><span><span style="color:#204a87">cd</span> hugegraph-hubble
    +</span></span><span style="display:flex;"><span>mvn -e compile package -Dmaven.javadoc.skip<span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#204a87">true</span> -Dmaven.test.skip<span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#204a87">true</span> -ntp
    +</span></span><span style="display:flex;"><span><span style="color:#204a87">cd</span> apache-hugegraph-hubble-incubating*
    +</span></span></code></pre></div><p>启动<code>hubble</code></p>
    +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>bin/start-hubble.sh -d
    +</span></span></code></pre></div><h4 id="23-使用docker">2.3 使用Docker</h4>
    +<blockquote>
    +<p><strong>特别注意</strong>: 如果使用 docker 启动 hubble,且 hubble 和 server 位于同一宿主机,在后续 hubble 页面中设置 graph 的 hostname 的时候请不要直接设置 <code>localhost/127.0.0.1</code>,这将指向 hubble 容器内部而非宿主机,导致无法连接到 server</p>
    +</blockquote>
    +<p>我们可以使用 <code>docker run -itd --name=hubble -p 8088:8088 hugegraph/hubble</code> 快速启动 <a href="https://hub.docker.com/r/hugegraph/hubble">hubble</a>.</p>
    +<p>或者使用docker-compose启动hubble,另外如果hubble和graph在同一个docker网络下,可以使用graph的contain_name进行访问,而不需要宿主机的ip</p>
    +<p>使用<code>docker-compose up -d</code>,<code>docker-compose.yml</code>如下:</p>
    +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">version</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;3&#39;</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#204a87;font-weight:bold">services</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">graph_hubble</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">image</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">hugegraph/hugegraph</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">container_name</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">graph</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">ports</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>- <span style="color:#0000cf;font-weight:bold">18080</span><span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">8080</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">hubble</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">image</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">hugegraph/hubble</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">container_name</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">hubble</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">ports</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>- <span style="color:#0000cf;font-weight:bold">8088</span><span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">8088</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span></code></pre></div><h3 id="3平台使用流程">3 平台使用流程</h3>
     <p>平台的模块使用流程如下:</p>
     <div style="text-align: center;">
     <img src="/docs/images/images-hubble/2平台使用流程.png" alt="image">
     </div>
    -<h3 id="3平台使用说明">3 平台使用说明</h3>
    -<h4 id="31图管理">3.1 图管理</h4>
    -<h5 id="311图创建">3.1.1 图创建</h5>
    +<h3 id="4平台使用说明">4 平台使用说明</h3>
    +<h4 id="41图管理">4.1 图管理</h4>
    +<h5 id="411图创建">4.1.1 图创建</h5>
     <p>图管理模块下,点击【创建图】,通过填写图ID、图名称、主机名、端口号、用户名、密码的信息,实现多图的连接。</p>
     <div style="text-align: center;">
     <img src="/docs/images/images-hubble/311图创建.png" alt="image">
    @@ -8703,12 +8810,12 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p>
     <div style="text-align: center;">
     <img src="/docs/images/images-hubble/311图创建2.png" alt="image">
     </div>
    -<h5 id="312图访问">3.1.2 图访问</h5>
    +<h5 id="412图访问">4.1.2 图访问</h5>
     <p>实现图空间的信息访问,进入后,可进行图的多维查询分析、元数据管理、数据导入、算法分析等操作。</p>
     <div style="text-align: center;">
     <img src="/docs/images/images-hubble/312图访问.png" alt="image">
     </div>
    -<h5 id="313图管理">3.1.3 图管理</h5>
    +<h5 id="413图管理">4.1.3 图管理</h5>
     <ol>
     <li>用户通过对图的概览、搜索以及单图的信息编辑与删除,实现图的统一管理。</li>
     <li>搜索范围:可对图名称和ID进行搜索。</li>
    @@ -8716,14 +8823,14 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p>
     <div style="text-align: center;">
     <img src="/docs/images/images-hubble/313图管理.png" alt="image">
     </div>
    -<h4 id="32元数据建模列表图模式">3.2 元数据建模(列表+图模式)</h4>
    -<h5 id="321模块入口">3.2.1 模块入口</h5>
    +<h4 id="42元数据建模列表图模式">4.2 元数据建模(列表+图模式)</h4>
    +<h5 id="421模块入口">4.2.1 模块入口</h5>
     <p>左侧导航处:</p>
     <div style="text-align: center;">
     <img src="/docs/images/images-hubble/321元数据入口.png" alt="image">
     </div>
    -<h5 id="322属性类型">3.2.2 属性类型</h5>
    -<h6 id="3221创建">3.2.2.1 创建</h6>
    +<h5 id="422属性类型">4.2.2 属性类型</h5>
    +<h6 id="4221创建">4.2.2.1 创建</h6>
     <ol>
     <li>填写或选择属性名称、数据类型、基数,完成属性的创建。</li>
     <li>创建的属性可作为顶点类型和边类型的属性。</li>
    @@ -8736,7 +8843,7 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p>
     <div style="text-align: center;">
     <img src="/docs/images/images-hubble/3221属性创建2.png" alt="image">
     </div>
    -<h6 id="3222复用">3.2.2.2 复用</h6>
    +<h6 id="4222复用">4.2.2.2 复用</h6>
     <ol>
     <li>平台提供【复用】功能,可直接复用其他图的元数据。</li>
     <li>选择需要复用的图ID,继续选择需要复用的属性,之后平台会进行是否冲突的校验,通过后,可实现元数据的复用。</li>
    @@ -8749,12 +8856,12 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p>
     <div style="text-align: center;">
     <img src="/docs/images/images-hubble/3222属性复用2.png" alt="image">
     </div>
    -<h6 id="3223管理">3.2.2.3 管理</h6>
    +<h6 id="4223管理">4.2.2.3 管理</h6>
     <ol>
     <li>在属性列表中可进行单条删除或批量删除操作。</li>
     </ol>
    -<h5 id="323顶点类型">3.2.3 顶点类型</h5>
    -<h6 id="3231创建">3.2.3.1 创建</h6>
    +<h5 id="423顶点类型">4.2.3 顶点类型</h5>
    +<h6 id="4231创建">4.2.3.1 创建</h6>
     <ol>
     <li>填写或选择顶点类型名称、ID策略、关联属性、主键属性,顶点样式、查询结果中顶点下方展示的内容,以及索引的信息:包括是否创建类型索引,及属性索引的具体内容,完成顶点类型的创建。</li>
     </ol>
    @@ -8766,12 +8873,12 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p>
     <center>
     <img src="/docs/images/images-hubble/3231顶点创建2.png" alt="image">
     </center>
    -<h6 id="3232复用">3.2.3.2 复用</h6>
    +<h6 id="4232复用">4.2.3.2 复用</h6>
     <ol>
     <li>顶点类型的复用,会将此类型关联的属性和属性索引一并复用。</li>
     <li>复用功能使用方法类似属性的复用,见3.2.2.2。</li>
     </ol>
    -<h6 id="3233管理">3.2.3.3 管理</h6>
    +<h6 id="4233管理">4.2.3.3 管理</h6>
     <ol>
     <li>
     <p>可进行编辑操作,顶点样式、关联类型、顶点展示内容、属性索引可编辑,其余不可编辑。</p>
    @@ -8783,8 +8890,8 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p>
     <center>
     <img src="/docs/images/images-hubble/3233顶点删除.png" alt="image">
     </center>
    -<h5 id="324边类型">3.2.4 边类型</h5>
    -<h6 id="3241创建">3.2.4.1 创建</h6>
    +<h5 id="424边类型">4.2.4 边类型</h5>
    +<h6 id="4241创建">4.2.4.1 创建</h6>
     <ol>
     <li>填写或选择边类型名称、起点类型、终点类型、关联属性、是否允许多次连接、边样式、查询结果中边下方展示的内容,以及索引的信息:包括是否创建类型索引,及属性索引的具体内容,完成边类型的创建。</li>
     </ol>
    @@ -8796,29 +8903,29 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p>
     <center>
     <img src="/docs/images/images-hubble/3241边创建2.png" alt="image">
     </center>
    -<h6 id="3242复用">3.2.4.2 复用</h6>
    +<h6 id="4242复用">4.2.4.2 复用</h6>
     <ol>
     <li>边类型的复用,会将此类型的起点类型、终点类型、关联的属性和属性索引一并复用。</li>
     <li>复用功能使用方法类似属性的复用,见3.2.2.2。</li>
     </ol>
    -<h6 id="3243管理">3.2.4.3 管理</h6>
    +<h6 id="4243管理">4.2.4.3 管理</h6>
     <ol>
     <li>可进行编辑操作,边样式、关联属性、边展示内容、属性索引可编辑,其余不可编辑,同顶点类型。</li>
     <li>可进行单条删除或批量删除操作。</li>
     </ol>
    -<h5 id="325索引类型">3.2.5 索引类型</h5>
    +<h5 id="425索引类型">4.2.5 索引类型</h5>
     <p>展示顶点类型和边类型的顶点索引和边索引。</p>
    -<h4 id="33数据导入">3.3 数据导入</h4>
    +<h4 id="43数据导入">4.3 数据导入</h4>
     <p>数据导入的使用流程如下:</p>
     <center>
     <img src="/docs/images/images-hubble/33导入流程.png" alt="image">
     </center>
    -<h5 id="331模块入口">3.3.1 模块入口</h5>
    +<h5 id="431模块入口">4.3.1 模块入口</h5>
     <p>左侧导航处:</p>
     <center>
     <img src="/docs/images/images-hubble/331导入入口.png" alt="image">
     </center>
    -<h5 id="332创建任务">3.3.2 创建任务</h5>
    +<h5 id="432创建任务">4.3.2 创建任务</h5>
     <ol>
     <li>填写任务名称和备注(非必填),可以创建导入任务。</li>
     <li>可创建多个导入任务,并行导入。</li>
    @@ -8826,7 +8933,7 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p>
     <center>
     <img src="/docs/images/images-hubble/332创建任务.png" alt="image">
     </center>
    -<h5 id="333上传文件">3.3.3 上传文件</h5>
    +<h5 id="433上传文件">4.3.3 上传文件</h5>
     <ol>
     <li>上传需要构图的文件,目前支持的格式为CSV,后续会不断更新。</li>
     <li>可同时上传多个文件。</li>
    @@ -8834,7 +8941,7 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p>
     <center>
     <img src="/docs/images/images-hubble/333上传文件.png" alt="image">
     </center>
    -<h5 id="334设置数据映射">3.3.4 设置数据映射</h5>
    +<h5 id="434设置数据映射">4.3.4 设置数据映射</h5>
     <ol>
     <li>
     <p>对上传的文件分别设置数据映射,包括文件设置和类型设置</p>
    @@ -8867,7 +8974,7 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p>
     <center>
     <img src="/docs/images/images-hubble/334设置映射2.png" alt="image">
     </center>
    -<h5 id="335导入数据">3.3.5 导入数据</h5>
    +<h5 id="435导入数据">4.3.5 导入数据</h5>
     <p>导入前需要填写导入设置参数,填写完成后,可开始向图库中导入数据</p>
     <ol>
     <li>导入设置</li>
    @@ -8889,18 +8996,18 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p>
     <center>
     <img src="/docs/images/images-hubble/335导入详情.png" alt="image">
     </center>
    -<h4 id="34数据分析">3.4 数据分析</h4>
    -<h5 id="341模块入口">3.4.1 模块入口</h5>
    +<h4 id="44数据分析">4.4 数据分析</h4>
    +<h5 id="441模块入口">4.4.1 模块入口</h5>
     <p>左侧导航处:</p>
     <center>
     <img src="/docs/images/images-hubble/341分析入口.png" alt="image">
     </center>
    -<h5 id="342多图切换">3.4.2 多图切换</h5>
    +<h5 id="442多图切换">4.4.2 多图切换</h5>
     <p>通过左侧切换入口,灵活切换多图的操作空间</p>
     <center>
     <img src="/docs/images/images-hubble/342多图切换.png" alt="image">
     </center>
    -<h5 id="343图分析与处理">3.4.3 图分析与处理</h5>
    +<h5 id="443图分析与处理">4.4.3 图分析与处理</h5>
     <p>HugeGraph支持Apache TinkerPop3的图遍历查询语言Gremlin,Gremlin是一种通用的图数据库查询语言,通过输入Gremlin语句,点击执行,即可执行图数据的查询分析操作,并可实现顶点/边的创建及删除、顶点/边的属性修改等。</p>
     <p>Gremlin查询后,下方为图结果展示区域,提供3种图结果展示方式,分别为:【图模式】、【表格模式】、【Json模式】。</p>
     <p>支持缩放、居中、全屏、导出等操作。</p>
    @@ -8916,9 +9023,9 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p>
     <center>
     <img src="/docs/images/images-hubble/343图分析-json.png" alt="image">
     </center>
    -<h5 id="344数据详情">3.4.4 数据详情</h5>
    +<h5 id="444数据详情">4.4.4 数据详情</h5>
     <p>点击顶点/边实体,可查看顶点/边的数据详情,包括:顶点/边类型,顶点ID,属性及对应值,拓展图的信息展示维度,提高易用性。</p>
    -<h5 id="345图结果的多维路径查询">3.4.5 图结果的多维路径查询</h5>
    +<h5 id="445图结果的多维路径查询">4.4.5 图结果的多维路径查询</h5>
     <p>除了全局的查询外,可针对查询结果中的顶点进行深度定制化查询以及隐藏操作,实现图结果的定制化挖掘。</p>
     <p>右击顶点,出现顶点的菜单入口,可进行展示、查询、隐藏等操作。</p>
     <ul>
    @@ -8930,8 +9037,8 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p>
     <center>
     <img src="/docs/images/images-hubble/345定制路径查询.png" alt="image">
     </center>
    -<h5 id="346新增顶点边">3.4.6 新增顶点/边</h5>
    -<h6 id="3461新增顶点">3.4.6.1 新增顶点</h6>
    +<h5 id="446新增顶点边">4.4.6 新增顶点/边</h5>
    +<h6 id="4461新增顶点">4.4.6.1 新增顶点</h6>
     <p>在图区可通过两个入口,动态新增顶点,如下:</p>
     <ol>
     <li>点击图区面板,出现添加顶点入口</li>
    @@ -8946,9 +9053,9 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p>
     <center>
     <img src="/docs/images/images-hubble/346新增顶点2.png" alt="image">
     </center>
    -<h6 id="3462新增边">3.4.6.2 新增边</h6>
    +<h6 id="4462新增边">4.4.6.2 新增边</h6>
     <p>右击图结果中的顶点,可增加该点的出边或者入边。</p>
    -<h5 id="347执行记录与收藏的查询">3.4.7 执行记录与收藏的查询</h5>
    +<h5 id="447执行记录与收藏的查询">4.4.7 执行记录与收藏的查询</h5>
     <ol>
     <li>图区下方记载每次查询记录,包括:查询时间、执行类型、内容、状态、耗时、以及【收藏】和【加载】操作,实现图执行的全方位记录,有迹可循,并可对执行内容快速加载复用</li>
     <li>提供语句的收藏功能,可对常用语句进行收藏操作,方便高频语句快速调用</li>
    @@ -8956,13 +9063,13 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p>
     <center>
     <img src="/docs/images/images-hubble/347收藏.png" alt="image">
     </center>
    -<h4 id="35任务管理">3.5 任务管理</h4>
    -<h5 id="351模块入口">3.5.1 模块入口</h5>
    +<h4 id="45任务管理">4.5 任务管理</h4>
    +<h5 id="451模块入口">4.5.1 模块入口</h5>
     <p>左侧导航处:</p>
     <center>
     <img src="/docs/images/images-hubble/351任务管理入口.png" alt="image">
     </center>
    -<h5 id="352任务管理">3.5.2 任务管理</h5>
    +<h5 id="452任务管理">4.5.2 任务管理</h5>
     <ol>
     <li>提供异步任务的统一的管理与结果查看,异步任务包括4类,分别为:</li>
     </ol>
    @@ -8981,7 +9088,7 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p>
     <center>
     <img src="/docs/images/images-hubble/352任务列表.png" alt="image">
     </center>
    -<h5 id="353gremlin异步任务">3.5.3 Gremlin异步任务</h5>
    +<h5 id="453gremlin异步任务">4.5.3 Gremlin异步任务</h5>
     <p>1.创建任务</p>
     <ul>
     <li>数据分析模块,目前支持两种Gremlin操作,Gremlin查询和Gremlin任务;若用户切换到Gremlin任务,点击执行后,在异步任务中心会建立一条异步任务;
    @@ -9001,9 +9108,9 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p>
     <ul>
     <li>结果通过json形式展示</li>
     </ul>
    -<h5 id="354olap算法任务">3.5.4 OLAP算法任务</h5>
    +<h5 id="454olap算法任务">4.5.4 OLAP算法任务</h5>
     <p>Hubble上暂未提供可视化的OLAP算法执行,可调用RESTful API进行OLAP类算法任务,在任务管理中通过ID找到相应任务,查看进度与结果等。</p>
    -<h5 id="355删除元数据重建索引">3.5.5 删除元数据、重建索引</h5>
    +<h5 id="455删除元数据重建索引">4.5.5 删除元数据、重建索引</h5>
     <p>1.创建任务</p>
     <ul>
     <li>在元数据建模模块中,删除元数据时,可建立删除元数据的异步任务</li>
    diff --git a/cn/docs/quickstart/_print/index.html b/cn/docs/quickstart/_print/index.html
    index 6f7c26347..6cfa29be8 100644
    --- a/cn/docs/quickstart/_print/index.html
    +++ b/cn/docs/quickstart/_print/index.html
    @@ -191,7 +191,7 @@
     }
     

    详细的 API 请参考 RESTful-API 文档

    7 停止 Server

    $cd hugegraph-${version}
     $bin/stop-hugegraph.sh
    -

    8 使用 IntelliJ IDEA 调试 Server

    请参考在 IDEA 中配置 Server 开发环境

    9 在启动 Server 时创建示例图

    修改 conf/gremlin-server.yaml,将 empty-sample.groovy 修改为 example.groovy

    org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {
    +

    8 使用 IntelliJ IDEA 调试 Server

    请参考在 IDEA 中配置 Server 开发环境

    9 在启动 Server 时创建示例图

    有三种方式可以在启动 Server 时创建示例图

    • 方式一: 直接修改配置文件
    • 方式二: 启动脚本使用命令行参数
    • 方式三: 使用docker或docker-compose添加环境变量

    9.1 直接修改配置文件

    修改 conf/gremlin-server.yaml,将 empty-sample.groovy 修改为 example.groovy

    org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {
         files: [scripts/example.groovy]
     }
     

    修改 scripts/example.groovy,将:

    RegisterUtil.registerRocksDB()
    @@ -217,7 +217,25 @@
                                      Dload  Upload   Total   Spent    Left  Speed
     100   222  100   222    0     0   3163      0 --:--:-- --:--:-- --:--:--  3964
     {"vertices":[{"id":"2:lop","label":"software","type":"vertex","properties":{"name":"lop","lang":"java","price":328}},{"id":"1:josh","label":"person","type":"vertex","properties":{"name":"josh","age":32,"city":"Beijing"}},{"id":"1:marko","label":"person","type":"vertex","properties":{"name":"marko","age":29,"city":"Beijing"}},{"id":"1:peter","label":"person","type":"vertex","properties":{"name":"peter","age":35,"city":"Shanghai"}},{"id":"1:vadas","label":"person","type":"vertex","properties":{"name":"vadas","age":27,"city":"Hongkong"}},{"id":"2:ripple","label":"software","type":"vertex","properties":{"name":"ripple","lang":"java","price":199}}]}
    -

    代表创建示例图成功。

    使用 IntelliJ IDEA 在启动 Server 时创建示例图的流程类似,不再赘述。

    2 - HugeGraph-Loader Quick Start

    1 HugeGraph-Loader概述

    HugeGraph-Loader 是 HugeGraph 的数据导入组件,能够将多种数据源的数据转化为图的顶点和边并批量导入到图数据库中。

    目前支持的数据源包括:

    • 本地磁盘文件或目录,支持 TEXT、CSV 和 JSON 格式的文件,支持压缩文件
    • HDFS 文件或目录,支持压缩文件
    • 主流关系型数据库,如 MySQL、PostgreSQL、Oracle、SQL Server

    本地磁盘文件和 HDFS 文件支持断点续传。

    后面会具体说明。

    注意:使用 HugeGraph-Loader 需要依赖 HugeGraph Server 服务,下载和启动 Server 请参考 HugeGraph-Server Quick Start

    2 获取 HugeGraph-Loader

    有两种方式可以获取 HugeGraph-Loader:

    • 下载已编译的压缩包
    • 克隆源码编译安装

    2.1 下载已编译的压缩包

    下载最新版本的 HugeGraph-Toolchain Release 包, 里面包含了 loader + tool + hubble 全套工具, 如果你已经下载, 可跳过重复步骤

    wget https://downloads.apache.org/incubator/hugegraph/1.0.0/apache-hugegraph-toolchain-incubating-1.0.0.tar.gz
    +

    代表创建示例图成功。

    使用 IntelliJ IDEA 在启动 Server 时创建示例图的流程类似,不再赘述。

    9.2 启动脚本时指定参数

    在脚本启动时候携带 -p true 参数, 表示preload, 即创建示例图

    bin/start-hugegraph.sh -p true
    +Starting HugeGraphServer in daemon mode...
    +Connecting to HugeGraphServer (http://127.0.0.1:8080/graphs)......OK
    +

    并且使用 RESTful API 请求 HugeGraphServer 得到如下结果:

    > curl "http://localhost:8080/graphs/hugegraph/graph/vertices" | gunzip
    +
    +{"vertices":[{"id":"2:lop","label":"software","type":"vertex","properties":{"name":"lop","lang":"java","price":328}},{"id":"1:josh","label":"person","type":"vertex","properties":{"name":"josh","age":32,"city":"Beijing"}},{"id":"1:marko","label":"person","type":"vertex","properties":{"name":"marko","age":29,"city":"Beijing"}},{"id":"1:peter","label":"person","type":"vertex","properties":{"name":"peter","age":35,"city":"Shanghai"}},{"id":"1:vadas","label":"person","type":"vertex","properties":{"name":"vadas","age":27,"city":"Hongkong"}},{"id":"2:ripple","label":"software","type":"vertex","properties":{"name":"ripple","lang":"java","price":199}}]}
    +

    代表创建示例图成功。

    9.3 使用docker启动

    在docker启动的时候设置环境变量 PRELOAD=true, 从而实现启动脚本的时候加载数据。

    1. 使用docker run

      使用 docker run -itd --name=graph -p 18080:8080 -e PRELOAD=true hugegraph/hugegraph:latest

    2. 使用docker-compose

      创建docker-compose.yml,具体文件如下

      version: '3'
      +  services:
      +    graph:
      +      image: hugegraph/hugegraph:latest
      +      container_name: graph
      +      environment:
      +        - PRELOAD=true
      +      ports:
      +        - 18080:8080
      +

      使用命令 docker-compose up -d 启动容器

    使用 RESTful API 请求 HugeGraphServer 得到如下结果:

    > curl "http://localhost:18080/graphs/hugegraph/graph/vertices" | gunzip
    +
    +{"vertices":[{"id":"2:lop","label":"software","type":"vertex","properties":{"name":"lop","lang":"java","price":328}},{"id":"1:josh","label":"person","type":"vertex","properties":{"name":"josh","age":32,"city":"Beijing"}},{"id":"1:marko","label":"person","type":"vertex","properties":{"name":"marko","age":29,"city":"Beijing"}},{"id":"1:peter","label":"person","type":"vertex","properties":{"name":"peter","age":35,"city":"Shanghai"}},{"id":"1:vadas","label":"person","type":"vertex","properties":{"name":"vadas","age":27,"city":"Hongkong"}},{"id":"2:ripple","label":"software","type":"vertex","properties":{"name":"ripple","lang":"java","price":199}}]}
    +

    代表创建示例图成功。

    2 - HugeGraph-Loader Quick Start

    1 HugeGraph-Loader概述

    HugeGraph-Loader 是 HugeGraph 的数据导入组件,能够将多种数据源的数据转化为图的顶点和边并批量导入到图数据库中。

    目前支持的数据源包括:

    • 本地磁盘文件或目录,支持 TEXT、CSV 和 JSON 格式的文件,支持压缩文件
    • HDFS 文件或目录,支持压缩文件
    • 主流关系型数据库,如 MySQL、PostgreSQL、Oracle、SQL Server

    本地磁盘文件和 HDFS 文件支持断点续传。

    后面会具体说明。

    注意:使用 HugeGraph-Loader 需要依赖 HugeGraph Server 服务,下载和启动 Server 请参考 HugeGraph-Server Quick Start

    2 获取 HugeGraph-Loader

    有两种方式可以获取 HugeGraph-Loader:

    • 下载已编译的压缩包
    • 克隆源码编译安装

    2.1 下载已编译的压缩包

    下载最新版本的 HugeGraph-Toolchain Release 包, 里面包含了 loader + tool + hubble 全套工具, 如果你已经下载, 可跳过重复步骤

    wget https://downloads.apache.org/incubator/hugegraph/1.0.0/apache-hugegraph-toolchain-incubating-1.0.0.tar.gz
     tar zxf *hugegraph*.tar.gz
     

    2.2 克隆源码编译安装

    克隆最新版本的 HugeGraph-Loader 源码包:

    # 1. get from github
     git clone https://github.com/apache/hugegraph-toolchain.git
    @@ -1046,9 +1064,46 @@
     # 恢复图模式
     ./bin/hugegraph --url http://127.0.0.1:8080 --graph hugegraph graph-mode-set -m NONE
     
    8. 图迁移
    ./bin/hugegraph --url http://127.0.0.1:8080 --graph hugegraph migrate --target-url http://127.0.0.1:8090 --target-graph hugegraph
    -

    4 - HugeGraph-Hubble Quick Start

    1 HugeGraph-Hubble概述

    HugeGraph是一款面向分析型,支持批量操作的图数据库系统,它由百度安全团队自主研发,全面支持Apache TinkerPop3框架和Gremlin图查询语言,提供导出、备份、恢复等完善的工具链生态,有效解决海量图数据的存储、查询和关联分析需求。HugeGraph广泛应用于银行券商的风控打击、保险理赔、推荐搜索、公安犯罪打击、知识图谱构建、网络安全、IT运维等领域,致力于让更多行业、组织及用户享受到更广泛的数据综合价值。

    HugeGraph-Hubble 是HugeGraph的一站式可视化分析平台,平台涵盖了从数据建模,到数据快速导入,再到数据的在线、离线分析、以及图的统一管理的全过程,实现了图应用的全流程向导式操作,旨在提升用户的使用流畅度,降低用户的使用门槛,提供更为高效易用的使用体验。

    平台主要包括以下模块:

    图管理

    图管理模块通过图的创建,连接平台与图数据,实现多图的统一管理,并实现图的访问、编辑、删除、查询操作。

    元数据建模

    元数据建模模块通过创建属性库,顶点类型,边类型,索引类型,实现图模型的构建与管理,平台提供两种模式,列表模式和图模式,可实时展示元数据模型,更加直观。同时还提供了跨图的元数据复用功能,省去相同元数据繁琐的重复创建过程,极大地提升建模效率,增强易用性。

    数据导入

    数据导入是将用户的业务数据转化为图的顶点和边并插入图数据库中,平台提供了向导式的可视化导入模块,通过创建导入任务,实现导入任务的管理及多个导入任务的并行运行,提高导入效能。进入导入任务后,只需跟随平台步骤提示,按需上传文件,填写内容,就可轻松实现图数据的导入过程,同时支持断点续传,错误重试机制等,降低导入成本,提升效率。

    图分析

    通过输入图遍历语言Gremlin可实现图数据的高性能通用分析,并提供顶点的定制化多维路径查询等功能,提供3种图结果展示方式,包括:图形式、表格形式、Json形式,多维度展示数据形态,满足用户使用的多种场景需求。提供运行记录及常用语句收藏等功能,实现图操作的可追溯,以及查询输入的复用共享,快捷高效。支持图数据的导出,导出格式为Json格式。

    任务管理

    对于需要遍历全图的Gremlin任务,索引的创建与重建等耗时较长的异步任务,平台提供相应的任务管理功能,实现异步任务的统一的管理与结果查看。

    2 平台使用流程

    平台的模块使用流程如下:

    image

    3 平台使用说明

    3.1 图管理

    3.1.1 图创建

    图管理模块下,点击【创建图】,通过填写图ID、图名称、主机名、端口号、用户名、密码的信息,实现多图的连接。

    image

    创建图填写内容如下:

    image
    3.1.2 图访问

    实现图空间的信息访问,进入后,可进行图的多维查询分析、元数据管理、数据导入、算法分析等操作。

    image
    3.1.3 图管理
    1. 用户通过对图的概览、搜索以及单图的信息编辑与删除,实现图的统一管理。
    2. 搜索范围:可对图名称和ID进行搜索。
    image

    3.2 元数据建模(列表+图模式)

    3.2.1 模块入口

    左侧导航处:

    image
    3.2.2 属性类型
    3.2.2.1 创建
    1. 填写或选择属性名称、数据类型、基数,完成属性的创建。
    2. 创建的属性可作为顶点类型和边类型的属性。

    列表模式:

    image

    图模式:

    image
    3.2.2.2 复用
    1. 平台提供【复用】功能,可直接复用其他图的元数据。
    2. 选择需要复用的图ID,继续选择需要复用的属性,之后平台会进行是否冲突的校验,通过后,可实现元数据的复用。

    选择复用项:

    image

    校验复用项:

    image
    3.2.2.3 管理
    1. 在属性列表中可进行单条删除或批量删除操作。
    3.2.3 顶点类型
    3.2.3.1 创建
    1. 填写或选择顶点类型名称、ID策略、关联属性、主键属性,顶点样式、查询结果中顶点下方展示的内容,以及索引的信息:包括是否创建类型索引,及属性索引的具体内容,完成顶点类型的创建。

    列表模式:

    image

    图模式:

    image
    3.2.3.2 复用
    1. 顶点类型的复用,会将此类型关联的属性和属性索引一并复用。
    2. 复用功能使用方法类似属性的复用,见3.2.2.2。
    3.2.3.3 管理
    1. 可进行编辑操作,顶点样式、关联类型、顶点展示内容、属性索引可编辑,其余不可编辑。

    2. 可进行单条删除或批量删除操作。

    image
    3.2.4 边类型
    3.2.4.1 创建
    1. 填写或选择边类型名称、起点类型、终点类型、关联属性、是否允许多次连接、边样式、查询结果中边下方展示的内容,以及索引的信息:包括是否创建类型索引,及属性索引的具体内容,完成边类型的创建。

    列表模式:

    image

    图模式:

    image
    3.2.4.2 复用
    1. 边类型的复用,会将此类型的起点类型、终点类型、关联的属性和属性索引一并复用。
    2. 复用功能使用方法类似属性的复用,见3.2.2.2。
    3.2.4.3 管理
    1. 可进行编辑操作,边样式、关联属性、边展示内容、属性索引可编辑,其余不可编辑,同顶点类型。
    2. 可进行单条删除或批量删除操作。
    3.2.5 索引类型

    展示顶点类型和边类型的顶点索引和边索引。

    3.3 数据导入

    数据导入的使用流程如下:

    image
    3.3.1 模块入口

    左侧导航处:

    image
    3.3.2 创建任务
    1. 填写任务名称和备注(非必填),可以创建导入任务。
    2. 可创建多个导入任务,并行导入。
    image
    3.3.3 上传文件
    1. 上传需要构图的文件,目前支持的格式为CSV,后续会不断更新。
    2. 可同时上传多个文件。
    image
    3.3.4 设置数据映射
    1. 对上传的文件分别设置数据映射,包括文件设置和类型设置

    2. 文件设置:勾选或填写是否包含表头、分隔符、编码格式等文件本身的设置内容,均设置默认值,无需手动填写

    3. 类型设置:

      1. 顶点映射和边映射:

        【顶点类型】 :选择顶点类型,并为其ID映射上传文件中列数据;

        【边类型】:选择边类型,为其起点类型和终点类型的ID列映射上传文件的列数据;

      2. 映射设置:为选定的顶点类型的属性映射上传文件中的列数据,此处,若属性名称与文件的表头名称一致,可自动匹配映射属性,无需手动填选

      3. 完成设置后,显示设置列表,方可进行下一步操作,支持映射的新增、编辑、删除操作

    设置映射的填写内容:

    image

    映射列表:

    image
    3.3.5 导入数据

    导入前需要填写导入设置参数,填写完成后,可开始向图库中导入数据

    1. 导入设置
    • 导入设置参数项如下图所示,均设置默认值,无需手动填写
    image
    1. 导入详情
    • 点击开始导入,开始文件的导入任务
    • 导入详情中提供每个上传文件设置的映射类型、导入速度、导入的进度、耗时以及当前任务的具体状态,并可对每个任务进行暂停、继续、停止等操作
    • 若导入失败,可查看具体原因
    image

    3.4 数据分析

    3.4.1 模块入口

    左侧导航处:

    image
    3.4.2 多图切换

    通过左侧切换入口,灵活切换多图的操作空间

    image
    3.4.3 图分析与处理

    HugeGraph支持Apache TinkerPop3的图遍历查询语言Gremlin,Gremlin是一种通用的图数据库查询语言,通过输入Gremlin语句,点击执行,即可执行图数据的查询分析操作,并可实现顶点/边的创建及删除、顶点/边的属性修改等。

    Gremlin查询后,下方为图结果展示区域,提供3种图结果展示方式,分别为:【图模式】、【表格模式】、【Json模式】。

    支持缩放、居中、全屏、导出等操作。

    【图模式】

    image

    【表格模式】

    image

    【Json模式】

    image
    3.4.4 数据详情

    点击顶点/边实体,可查看顶点/边的数据详情,包括:顶点/边类型,顶点ID,属性及对应值,拓展图的信息展示维度,提高易用性。

    3.4.5 图结果的多维路径查询

    除了全局的查询外,可针对查询结果中的顶点进行深度定制化查询以及隐藏操作,实现图结果的定制化挖掘。

    右击顶点,出现顶点的菜单入口,可进行展示、查询、隐藏等操作。

    • 展开:点击后,展示与选中点关联的顶点。
    • 查询:通过选择与选中点关联的边类型及边方向,在此条件下,再选择其属性及相应筛选规则,可实现定制化的路径展示。
    • 隐藏:点击后,隐藏选中点及与之关联的边。

    双击顶点,也可展示与选中点关联的顶点。

    image
    3.4.6 新增顶点/边
    3.4.6.1 新增顶点

    在图区可通过两个入口,动态新增顶点,如下:

    1. 点击图区面板,出现添加顶点入口
    2. 点击右上角的操作栏中的首个图标

    通过选择或填写顶点类型、ID值、属性信息,完成顶点的增加。

    入口如下:

    image

    添加顶点内容如下:

    image
    3.4.6.2 新增边

    右击图结果中的顶点,可增加该点的出边或者入边。

    3.4.7 执行记录与收藏的查询
    1. 图区下方记载每次查询记录,包括:查询时间、执行类型、内容、状态、耗时、以及【收藏】和【加载】操作,实现图执行的全方位记录,有迹可循,并可对执行内容快速加载复用
    2. 提供语句的收藏功能,可对常用语句进行收藏操作,方便高频语句快速调用
    image

    3.5 任务管理

    3.5.1 模块入口

    左侧导航处:

    image
    3.5.2 任务管理
    1. 提供异步任务的统一的管理与结果查看,异步任务包括4类,分别为:
    • gremlin:Gremlin任务
    • algorithm:OLAP算法任务
    • remove_schema:删除元数据
    • rebuild_index:重建索引
    1. 列表显示当前图的异步任务信息,包括:任务ID,任务名称,任务类型,创建时间,耗时,状态,操作,实现对异步任务的管理。
    2. 支持对任务类型和状态进行筛选
    3. 支持搜索任务ID和任务名称
    4. 可对异步任务进行删除或批量删除操作
    image
    3.5.3 Gremlin异步任务

    1.创建任务

    • 数据分析模块,目前支持两种Gremlin操作,Gremlin查询和Gremlin任务;若用户切换到Gremlin任务,点击执行后,在异步任务中心会建立一条异步任务; +

    4 - HugeGraph-Hubble Quick Start

    1 HugeGraph-Hubble概述

    HugeGraph是一款面向分析型,支持批量操作的图数据库系统,它由百度安全团队自主研发,全面支持Apache TinkerPop3框架和Gremlin图查询语言,提供导出、备份、恢复等完善的工具链生态,有效解决海量图数据的存储、查询和关联分析需求。HugeGraph广泛应用于银行券商的风控打击、保险理赔、推荐搜索、公安犯罪打击、知识图谱构建、网络安全、IT运维等领域,致力于让更多行业、组织及用户享受到更广泛的数据综合价值。

    HugeGraph-Hubble 是HugeGraph的一站式可视化分析平台,平台涵盖了从数据建模,到数据快速导入,再到数据的在线、离线分析、以及图的统一管理的全过程,实现了图应用的全流程向导式操作,旨在提升用户的使用流畅度,降低用户的使用门槛,提供更为高效易用的使用体验。

    平台主要包括以下模块:

    图管理

    图管理模块通过图的创建,连接平台与图数据,实现多图的统一管理,并实现图的访问、编辑、删除、查询操作。

    元数据建模

    元数据建模模块通过创建属性库,顶点类型,边类型,索引类型,实现图模型的构建与管理,平台提供两种模式,列表模式和图模式,可实时展示元数据模型,更加直观。同时还提供了跨图的元数据复用功能,省去相同元数据繁琐的重复创建过程,极大地提升建模效率,增强易用性。

    数据导入

    数据导入是将用户的业务数据转化为图的顶点和边并插入图数据库中,平台提供了向导式的可视化导入模块,通过创建导入任务,实现导入任务的管理及多个导入任务的并行运行,提高导入效能。进入导入任务后,只需跟随平台步骤提示,按需上传文件,填写内容,就可轻松实现图数据的导入过程,同时支持断点续传,错误重试机制等,降低导入成本,提升效率。

    图分析

    通过输入图遍历语言Gremlin可实现图数据的高性能通用分析,并提供顶点的定制化多维路径查询等功能,提供3种图结果展示方式,包括:图形式、表格形式、Json形式,多维度展示数据形态,满足用户使用的多种场景需求。提供运行记录及常用语句收藏等功能,实现图操作的可追溯,以及查询输入的复用共享,快捷高效。支持图数据的导出,导出格式为Json格式。

    任务管理

    对于需要遍历全图的Gremlin任务,索引的创建与重建等耗时较长的异步任务,平台提供相应的任务管理功能,实现异步任务的统一的管理与结果查看。

    2 部署

    有三种方式可以部署hugegraph-hubble

    • 下载 toolchain 二进制包
    • 源码编译
    • 使用docker

    2.1 下载 toolchain 二进制包

    hubble项目在toolchain项目中, 首先下载toolchain的tar包

    wget https://downloads.apache.org/incubator/hugegraph/1.0.0/apache-hugegraph-toolchain-incubating-{version}.tar.gz
    +tar -xvf apache-hugegraph-toolchain-incubating-{version}.tar.gz 
    +cd apache-hugegraph-toolchain-incubating-{version}.tar.gz/apache-hugegraph-hubble-incubating-{version}
    +

    运行hubble

    bin/start-hubble.sh
    +

    随后我们可以看到

    starting HugeGraphHubble ..............timed out with http status 502
    +2023-08-30 20:38:34 [main] [INFO ] o.a.h.HugeGraphHubble [] - Starting HugeGraphHubble v1.0.0 on cpu05 with PID xxx (~/apache-hugegraph-toolchain-incubating-1.0.0/apache-hugegraph-hubble-incubating-1.0.0/lib/hubble-be-1.0.0.jar started by $USER in ~/apache-hugegraph-toolchain-incubating-1.0.0/apache-hugegraph-hubble-incubating-1.0.0)
    +...
    +2023-08-30 20:38:38 [main] [INFO ] c.z.h.HikariDataSource [] - hugegraph-hubble-HikariCP - Start completed.
    +2023-08-30 20:38:41 [main] [INFO ] o.a.c.h.Http11NioProtocol [] - Starting ProtocolHandler ["http-nio-0.0.0.0-8088"]
    +2023-08-30 20:38:41 [main] [INFO ] o.a.h.HugeGraphHubble [] - Started HugeGraphHubble in 7.379 seconds (JVM running for 8.499)
    +

    然后使用浏览器访问 ip:8088 可看到hubble页面, 通过bin/stop-hubble.sh则可以停止服务

    2.2 源码编译

    注意: 编译 hubble 需要用户本地环境有安装 Nodejs V16.xyarn 环境

    apt install curl build-essential
    +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
    +source ~/.bashrc
    +nvm install 16
    +

    然后确认安装版本是否为 16.x (请注意过高的 Node 版本会产生冲突)

    node -v
    +

    使用下列命令安装 yarn

    npm install -g yarn
    +

    下载toolchain源码包

    git clone https://github.com/apache/hugegraph-toolchain.git
    +

    编译hubble, 它依赖 loader 和 client, 编译时需提前构建这些依赖 (后续可跳)

    cd incubator-hugegraph-toolchain
    +sudo pip install -r hugegraph-hubble/hubble-dist/assembly/travis/requirements.txt
    +mvn install -pl hugegraph-client,hugegraph-loader -am -Dmaven.javadoc.skip=true -DskipTests -ntp
    +cd hugegraph-hubble
    +mvn -e compile package -Dmaven.javadoc.skip=true -Dmaven.test.skip=true -ntp
    +cd apache-hugegraph-hubble-incubating*
    +

    启动hubble

    bin/start-hubble.sh -d
    +

    2.3 使用Docker

    特别注意: 如果使用 docker 启动 hubble,且 hubble 和 server 位于同一宿主机,在后续 hubble 页面中设置 graph 的 hostname 的时候请不要直接设置 localhost/127.0.0.1,这将指向 hubble 容器内部而非宿主机,导致无法连接到 server

    我们可以使用 docker run -itd --name=hubble -p 8088:8088 hugegraph/hubble 快速启动 hubble.

    或者使用docker-compose启动hubble,另外如果hubble和graph在同一个docker网络下,可以使用graph的contain_name进行访问,而不需要宿主机的ip

    使用docker-compose up -ddocker-compose.yml如下:

    version: '3'
    +services:
    +  graph_hubble:
    +    image: hugegraph/hugegraph
    +    container_name: graph
    +    ports:
    +      - 18080:8080
    +
    +  hubble:
    +    image: hugegraph/hubble
    +    container_name: hubble
    +    ports:
    +      - 8088:8088
    +

    3 平台使用流程

    平台的模块使用流程如下:

    image

    4 平台使用说明

    4.1 图管理

    4.1.1 图创建

    图管理模块下,点击【创建图】,通过填写图ID、图名称、主机名、端口号、用户名、密码的信息,实现多图的连接。

    image

    创建图填写内容如下:

    image
    4.1.2 图访问

    实现图空间的信息访问,进入后,可进行图的多维查询分析、元数据管理、数据导入、算法分析等操作。

    image
    4.1.3 图管理
    1. 用户通过对图的概览、搜索以及单图的信息编辑与删除,实现图的统一管理。
    2. 搜索范围:可对图名称和ID进行搜索。
    image

    4.2 元数据建模(列表+图模式)

    4.2.1 模块入口

    左侧导航处:

    image
    4.2.2 属性类型
    4.2.2.1 创建
    1. 填写或选择属性名称、数据类型、基数,完成属性的创建。
    2. 创建的属性可作为顶点类型和边类型的属性。

    列表模式:

    image

    图模式:

    image
    4.2.2.2 复用
    1. 平台提供【复用】功能,可直接复用其他图的元数据。
    2. 选择需要复用的图ID,继续选择需要复用的属性,之后平台会进行是否冲突的校验,通过后,可实现元数据的复用。

    选择复用项:

    image

    校验复用项:

    image
    4.2.2.3 管理
    1. 在属性列表中可进行单条删除或批量删除操作。
    4.2.3 顶点类型
    4.2.3.1 创建
    1. 填写或选择顶点类型名称、ID策略、关联属性、主键属性,顶点样式、查询结果中顶点下方展示的内容,以及索引的信息:包括是否创建类型索引,及属性索引的具体内容,完成顶点类型的创建。

    列表模式:

    image

    图模式:

    image
    4.2.3.2 复用
    1. 顶点类型的复用,会将此类型关联的属性和属性索引一并复用。
    2. 复用功能使用方法类似属性的复用,见3.2.2.2。
    4.2.3.3 管理
    1. 可进行编辑操作,顶点样式、关联类型、顶点展示内容、属性索引可编辑,其余不可编辑。

    2. 可进行单条删除或批量删除操作。

    image
    4.2.4 边类型
    4.2.4.1 创建
    1. 填写或选择边类型名称、起点类型、终点类型、关联属性、是否允许多次连接、边样式、查询结果中边下方展示的内容,以及索引的信息:包括是否创建类型索引,及属性索引的具体内容,完成边类型的创建。

    列表模式:

    image

    图模式:

    image
    4.2.4.2 复用
    1. 边类型的复用,会将此类型的起点类型、终点类型、关联的属性和属性索引一并复用。
    2. 复用功能使用方法类似属性的复用,见3.2.2.2。
    4.2.4.3 管理
    1. 可进行编辑操作,边样式、关联属性、边展示内容、属性索引可编辑,其余不可编辑,同顶点类型。
    2. 可进行单条删除或批量删除操作。
    4.2.5 索引类型

    展示顶点类型和边类型的顶点索引和边索引。

    4.3 数据导入

    数据导入的使用流程如下:

    image
    4.3.1 模块入口

    左侧导航处:

    image
    4.3.2 创建任务
    1. 填写任务名称和备注(非必填),可以创建导入任务。
    2. 可创建多个导入任务,并行导入。
    image
    4.3.3 上传文件
    1. 上传需要构图的文件,目前支持的格式为CSV,后续会不断更新。
    2. 可同时上传多个文件。
    image
    4.3.4 设置数据映射
    1. 对上传的文件分别设置数据映射,包括文件设置和类型设置

    2. 文件设置:勾选或填写是否包含表头、分隔符、编码格式等文件本身的设置内容,均设置默认值,无需手动填写

    3. 类型设置:

      1. 顶点映射和边映射:

        【顶点类型】 :选择顶点类型,并为其ID映射上传文件中列数据;

        【边类型】:选择边类型,为其起点类型和终点类型的ID列映射上传文件的列数据;

      2. 映射设置:为选定的顶点类型的属性映射上传文件中的列数据,此处,若属性名称与文件的表头名称一致,可自动匹配映射属性,无需手动填选

      3. 完成设置后,显示设置列表,方可进行下一步操作,支持映射的新增、编辑、删除操作

    设置映射的填写内容:

    image

    映射列表:

    image
    4.3.5 导入数据

    导入前需要填写导入设置参数,填写完成后,可开始向图库中导入数据

    1. 导入设置
    • 导入设置参数项如下图所示,均设置默认值,无需手动填写
    image
    1. 导入详情
    • 点击开始导入,开始文件的导入任务
    • 导入详情中提供每个上传文件设置的映射类型、导入速度、导入的进度、耗时以及当前任务的具体状态,并可对每个任务进行暂停、继续、停止等操作
    • 若导入失败,可查看具体原因
    image

    4.4 数据分析

    4.4.1 模块入口

    左侧导航处:

    image
    4.4.2 多图切换

    通过左侧切换入口,灵活切换多图的操作空间

    image
    4.4.3 图分析与处理

    HugeGraph支持Apache TinkerPop3的图遍历查询语言Gremlin,Gremlin是一种通用的图数据库查询语言,通过输入Gremlin语句,点击执行,即可执行图数据的查询分析操作,并可实现顶点/边的创建及删除、顶点/边的属性修改等。

    Gremlin查询后,下方为图结果展示区域,提供3种图结果展示方式,分别为:【图模式】、【表格模式】、【Json模式】。

    支持缩放、居中、全屏、导出等操作。

    【图模式】

    image

    【表格模式】

    image

    【Json模式】

    image
    4.4.4 数据详情

    点击顶点/边实体,可查看顶点/边的数据详情,包括:顶点/边类型,顶点ID,属性及对应值,拓展图的信息展示维度,提高易用性。

    4.4.5 图结果的多维路径查询

    除了全局的查询外,可针对查询结果中的顶点进行深度定制化查询以及隐藏操作,实现图结果的定制化挖掘。

    右击顶点,出现顶点的菜单入口,可进行展示、查询、隐藏等操作。

    • 展开:点击后,展示与选中点关联的顶点。
    • 查询:通过选择与选中点关联的边类型及边方向,在此条件下,再选择其属性及相应筛选规则,可实现定制化的路径展示。
    • 隐藏:点击后,隐藏选中点及与之关联的边。

    双击顶点,也可展示与选中点关联的顶点。

    image
    4.4.6 新增顶点/边
    4.4.6.1 新增顶点

    在图区可通过两个入口,动态新增顶点,如下:

    1. 点击图区面板,出现添加顶点入口
    2. 点击右上角的操作栏中的首个图标

    通过选择或填写顶点类型、ID值、属性信息,完成顶点的增加。

    入口如下:

    image

    添加顶点内容如下:

    image
    4.4.6.2 新增边

    右击图结果中的顶点,可增加该点的出边或者入边。

    4.4.7 执行记录与收藏的查询
    1. 图区下方记载每次查询记录,包括:查询时间、执行类型、内容、状态、耗时、以及【收藏】和【加载】操作,实现图执行的全方位记录,有迹可循,并可对执行内容快速加载复用
    2. 提供语句的收藏功能,可对常用语句进行收藏操作,方便高频语句快速调用
    image

    4.5 任务管理

    4.5.1 模块入口

    左侧导航处:

    image
    4.5.2 任务管理
    1. 提供异步任务的统一的管理与结果查看,异步任务包括4类,分别为:
    • gremlin:Gremlin任务
    • algorithm:OLAP算法任务
    • remove_schema:删除元数据
    • rebuild_index:重建索引
    1. 列表显示当前图的异步任务信息,包括:任务ID,任务名称,任务类型,创建时间,耗时,状态,操作,实现对异步任务的管理。
    2. 支持对任务类型和状态进行筛选
    3. 支持搜索任务ID和任务名称
    4. 可对异步任务进行删除或批量删除操作
    image
    4.5.3 Gremlin异步任务

    1.创建任务

    • 数据分析模块,目前支持两种Gremlin操作,Gremlin查询和Gremlin任务;若用户切换到Gremlin任务,点击执行后,在异步任务中心会建立一条异步任务; 2.任务提交
    • 任务提交成功后,图区部分返回提交结果和任务ID -3.任务详情
    • 提供【查看】入口,可跳转到任务详情查看当前任务具体执行情况跳转到任务中心后,直接显示当前执行的任务行
    image

    点击查看入口,跳转到任务管理列表,如下:

    image

    4.查看结果

    • 结果通过json形式展示
    3.5.4 OLAP算法任务

    Hubble上暂未提供可视化的OLAP算法执行,可调用RESTful API进行OLAP类算法任务,在任务管理中通过ID找到相应任务,查看进度与结果等。

    3.5.5 删除元数据、重建索引

    1.创建任务

    • 在元数据建模模块中,删除元数据时,可建立删除元数据的异步任务
    image
    • 在编辑已有的顶点/边类型操作中,新增索引时,可建立创建索引的异步任务
    image

    2.任务详情

    • 确认/保存后,可跳转到任务中心查看当前任务的详情
    image

    5 - HugeGraph-Client Quick Start

    1 HugeGraph-Client概述

    HugeGraph-Client向HugeGraph-Server发出HTTP请求,获取并解析Server的执行结果。目前仅提供了Java版,用户可以使用HugeGraph-Client编写Java代码操作HugeGraph,比如元数据和图数据的增删改查,或者执行gremlin语句。

    2 环境要求

    • java 11 (兼容 java 8)
    • maven 3.5+

    3 使用流程

    使用HugeGraph-Client的基本步骤如下:

    • 新建Eclipse/ IDEA Maven项目;
    • 在pom文件中添加HugeGraph-Client依赖;
    • 创建类,调用HugeGraph-Client接口;

    详细使用过程见下节完整示例。

    4 完整示例

    4.1 新建Maven工程

    可以选择Eclipse或者Intellij Idea创建工程:

    4.2 添加hugegraph-client依赖

    添加hugegraph-client依赖

    <dependencies>
    +3.任务详情
  • 提供【查看】入口,可跳转到任务详情查看当前任务具体执行情况跳转到任务中心后,直接显示当前执行的任务行
  • image

    点击查看入口,跳转到任务管理列表,如下:

    image

    4.查看结果

    • 结果通过json形式展示
    4.5.4 OLAP算法任务

    Hubble上暂未提供可视化的OLAP算法执行,可调用RESTful API进行OLAP类算法任务,在任务管理中通过ID找到相应任务,查看进度与结果等。

    4.5.5 删除元数据、重建索引

    1.创建任务

    • 在元数据建模模块中,删除元数据时,可建立删除元数据的异步任务
    image
    • 在编辑已有的顶点/边类型操作中,新增索引时,可建立创建索引的异步任务
    image

    2.任务详情

    • 确认/保存后,可跳转到任务中心查看当前任务的详情
    image

    5 - HugeGraph-Client Quick Start

    1 HugeGraph-Client概述

    HugeGraph-Client向HugeGraph-Server发出HTTP请求,获取并解析Server的执行结果。目前仅提供了Java版,用户可以使用HugeGraph-Client编写Java代码操作HugeGraph,比如元数据和图数据的增删改查,或者执行gremlin语句。

    2 环境要求

    • java 11 (兼容 java 8)
    • maven 3.5+

    3 使用流程

    使用HugeGraph-Client的基本步骤如下:

    • 新建Eclipse/ IDEA Maven项目;
    • 在pom文件中添加HugeGraph-Client依赖;
    • 创建类,调用HugeGraph-Client接口;

    详细使用过程见下节完整示例。

    4 完整示例

    4.1 新建Maven工程

    可以选择Eclipse或者Intellij Idea创建工程:

    4.2 添加hugegraph-client依赖

    添加hugegraph-client依赖

    <dependencies>
         <dependency>
             <groupId>org.apache.hugegraph</groupId>
             <artifactId>hugegraph-client</artifactId>
    diff --git a/cn/docs/quickstart/hugegraph-hubble/index.html b/cn/docs/quickstart/hugegraph-hubble/index.html
    index b79972873..6e627003a 100644
    --- a/cn/docs/quickstart/hugegraph-hubble/index.html
    +++ b/cn/docs/quickstart/hugegraph-hubble/index.html
    @@ -7,18 +7,11 @@
     数据导入 数据导入是将用户的业务数据转化为图的顶点和边并插入图数据库中,平台提供了向导式的可视化导入模块,通过创建导入任务,实现导入任务的管理及多个导入任务的并行运行,提高导入效能。进入导入任务后,只需跟随平台步骤提示,按需上传文件,填写内容,就可轻松实现图数据的导入过程,同时支持断点续传,错误重试机制等,降低导入成本,提升效率。
     图分析 通过输入图遍历语言Gremlin可实现图数据的高性能通用分析,并提供顶点的定制化多维路径查询等功能,提供3种图结果展示方式,包括:图形式、表格形式、Json形式,多维度展示数据形态,满足用户使用的多种场景需求。提供运行记录及常用语句收藏等功能,实现图操作的可追溯,以及查询输入的复用共享,快捷高效。支持图数据的导出,导出格式为Json格式。
     任务管理 对于需要遍历全图的Gremlin任务,索引的创建与重建等耗时较长的异步任务,平台提供相应的任务管理功能,实现异步任务的统一的管理与结果查看。
    -2	平台使用流程 平台的模块使用流程如下:
    -3	平台使用说明 3.1	图管理 3.1.1	图创建 图管理模块下,点击【创建图】,通过填写图ID、图名称、主机名、端口号、用户名、密码的信息,实现多图的连接。
    -创建图填写内容如下:
    -3.1.2	图访问 实现图空间的信息访问,进入后,可进行图的多维查询分析、元数据管理、数据导入、算法分析等操作。
    -3.1.3	图管理 用户通过对图的概览、搜索以及单图的信息编辑与删除,实现图的统一管理。 搜索范围:可对图名称和ID进行搜索。 3.2	元数据建模(列表+图模式) 3.2.1	模块入口 左侧导航处:
    -3.2.2	属性类型 3.2.2.1	创建 填写或选择属性名称、数据类型、基数,完成属性的创建。 创建的属性可作为顶点类型和边类型的属性。 列表模式:
    -图模式:
    -3.2.2.2	复用 平台提供【复用】功能,可直接复用其他图的元数据。 选择需要复用的图ID,继续选择需要复用的属性,之后平台会进行是否冲突的校验,通过后,可实现元数据的复用。 选择复用项:
    -校验复用项:
    -3.2.2.3	管理 在属性列表中可进行单条删除或批量删除操作。 3.2.3	顶点类型 3.2.3.1	创建 填写或选择顶点类型名称、ID策略、关联属性、主键属性,顶点样式、查询结果中顶点下方展示的内容,以及索引的信息:包括是否创建类型索引,及属性索引的具体内容,完成顶点类型的创建。 列表模式:
    -图模式:
    -3.2.3.2	复用 顶点类型的复用,会将此类型关联的属性和属性索引一并复用。 复用功能使用方法类似属性的复用,见3.2.2.2。 3.2.3.3	管理 可进行编辑操作,顶点样式、关联类型、顶点展示内容、属性索引可编辑,其余不可编辑。">
    +2 部署 有三种方式可以部署hugegraph-hubble
    +下载 toolchain 二进制包 源码编译 使用docker 2.1 下载 toolchain 二进制包 hubble项目在toolchain项目中, 首先下载toolchain的tar包
    +wget https://downloads.apache.org/incubator/hugegraph/1.0.0/apache-hugegraph-toolchain-incubating-{version}.tar.gz tar -xvf apache-hugegraph-toolchain-incubating-{version}.tar.gz cd apache-hugegraph-toolchain-incubating-{version}.tar.gz/apache-hugegraph-hubble-incubating-{version} 运行hubble
    +bin/start-hubble.sh 随后我们可以看到
    +starting HugeGraphHubble ..............timed out with http status 502 2023-08-30 20:38:34 [main] [INFO ] o.a.h.HugeGraphHubble [] - Starting HugeGraphHubble v1.0.0 on cpu05 with PID xxx (~/apache-hugegraph-toolchain-incubating-1.0.0/apache-hugegraph-hubble-incubating-1.0.0/lib/hubble-be-1.0.0.jar started by $USER in ~/apache-hugegraph-toolchain-incubating-1.">
     

    HugeGraph-Hubble Quick Start

    1 HugeGraph-Hubble概述

    HugeGraph是一款面向分析型,支持批量操作的图数据库系统,它由百度安全团队自主研发,全面支持Apache TinkerPop3框架和Gremlin图查询语言,提供导出、备份、恢复等完善的工具链生态,有效解决海量图数据的存储、查询和关联分析需求。HugeGraph广泛应用于银行券商的风控打击、保险理赔、推荐搜索、公安犯罪打击、知识图谱构建、网络安全、IT运维等领域,致力于让更多行业、组织及用户享受到更广泛的数据综合价值。

    HugeGraph-Hubble 是HugeGraph的一站式可视化分析平台,平台涵盖了从数据建模,到数据快速导入,再到数据的在线、离线分析、以及图的统一管理的全过程,实现了图应用的全流程向导式操作,旨在提升用户的使用流畅度,降低用户的使用门槛,提供更为高效易用的使用体验。

    平台主要包括以下模块:

    图管理

    图管理模块通过图的创建,连接平台与图数据,实现多图的统一管理,并实现图的访问、编辑、删除、查询操作。

    元数据建模

    元数据建模模块通过创建属性库,顶点类型,边类型,索引类型,实现图模型的构建与管理,平台提供两种模式,列表模式和图模式,可实时展示元数据模型,更加直观。同时还提供了跨图的元数据复用功能,省去相同元数据繁琐的重复创建过程,极大地提升建模效率,增强易用性。

    数据导入

    数据导入是将用户的业务数据转化为图的顶点和边并插入图数据库中,平台提供了向导式的可视化导入模块,通过创建导入任务,实现导入任务的管理及多个导入任务的并行运行,提高导入效能。进入导入任务后,只需跟随平台步骤提示,按需上传文件,填写内容,就可轻松实现图数据的导入过程,同时支持断点续传,错误重试机制等,降低导入成本,提升效率。

    图分析

    通过输入图遍历语言Gremlin可实现图数据的高性能通用分析,并提供顶点的定制化多维路径查询等功能,提供3种图结果展示方式,包括:图形式、表格形式、Json形式,多维度展示数据形态,满足用户使用的多种场景需求。提供运行记录及常用语句收藏等功能,实现图操作的可追溯,以及查询输入的复用共享,快捷高效。支持图数据的导出,导出格式为Json格式。

    任务管理

    对于需要遍历全图的Gremlin任务,索引的创建与重建等耗时较长的异步任务,平台提供相应的任务管理功能,实现异步任务的统一的管理与结果查看。

    2 平台使用流程

    平台的模块使用流程如下:

    image

    3 平台使用说明

    3.1 图管理

    3.1.1 图创建

    图管理模块下,点击【创建图】,通过填写图ID、图名称、主机名、端口号、用户名、密码的信息,实现多图的连接。

    image

    创建图填写内容如下:

    image
    3.1.2 图访问

    实现图空间的信息访问,进入后,可进行图的多维查询分析、元数据管理、数据导入、算法分析等操作。

    image
    3.1.3 图管理
    1. 用户通过对图的概览、搜索以及单图的信息编辑与删除,实现图的统一管理。
    2. 搜索范围:可对图名称和ID进行搜索。
    image

    3.2 元数据建模(列表+图模式)

    3.2.1 模块入口

    左侧导航处:

    image
    3.2.2 属性类型
    3.2.2.1 创建
    1. 填写或选择属性名称、数据类型、基数,完成属性的创建。
    2. 创建的属性可作为顶点类型和边类型的属性。

    列表模式:

    image

    图模式:

    image
    3.2.2.2 复用
    1. 平台提供【复用】功能,可直接复用其他图的元数据。
    2. 选择需要复用的图ID,继续选择需要复用的属性,之后平台会进行是否冲突的校验,通过后,可实现元数据的复用。

    选择复用项:

    image

    校验复用项:

    image
    3.2.2.3 管理
    1. 在属性列表中可进行单条删除或批量删除操作。
    3.2.3 顶点类型
    3.2.3.1 创建
    1. 填写或选择顶点类型名称、ID策略、关联属性、主键属性,顶点样式、查询结果中顶点下方展示的内容,以及索引的信息:包括是否创建类型索引,及属性索引的具体内容,完成顶点类型的创建。

    列表模式:

    image

    图模式:

    image
    3.2.3.2 复用
    1. 顶点类型的复用,会将此类型关联的属性和属性索引一并复用。
    2. 复用功能使用方法类似属性的复用,见3.2.2.2。
    3.2.3.3 管理
    1. 可进行编辑操作,顶点样式、关联类型、顶点展示内容、属性索引可编辑,其余不可编辑。

    2. 可进行单条删除或批量删除操作。

    image
    3.2.4 边类型
    3.2.4.1 创建
    1. 填写或选择边类型名称、起点类型、终点类型、关联属性、是否允许多次连接、边样式、查询结果中边下方展示的内容,以及索引的信息:包括是否创建类型索引,及属性索引的具体内容,完成边类型的创建。

    列表模式:

    image

    图模式:

    image
    3.2.4.2 复用
    1. 边类型的复用,会将此类型的起点类型、终点类型、关联的属性和属性索引一并复用。
    2. 复用功能使用方法类似属性的复用,见3.2.2.2。
    3.2.4.3 管理
    1. 可进行编辑操作,边样式、关联属性、边展示内容、属性索引可编辑,其余不可编辑,同顶点类型。
    2. 可进行单条删除或批量删除操作。
    3.2.5 索引类型

    展示顶点类型和边类型的顶点索引和边索引。

    3.3 数据导入

    数据导入的使用流程如下:

    image
    3.3.1 模块入口

    左侧导航处:

    image
    3.3.2 创建任务
    1. 填写任务名称和备注(非必填),可以创建导入任务。
    2. 可创建多个导入任务,并行导入。
    image
    3.3.3 上传文件
    1. 上传需要构图的文件,目前支持的格式为CSV,后续会不断更新。
    2. 可同时上传多个文件。
    image
    3.3.4 设置数据映射
    1. 对上传的文件分别设置数据映射,包括文件设置和类型设置

    2. 文件设置:勾选或填写是否包含表头、分隔符、编码格式等文件本身的设置内容,均设置默认值,无需手动填写

    3. 类型设置:

      1. 顶点映射和边映射:

        【顶点类型】 :选择顶点类型,并为其ID映射上传文件中列数据;

        【边类型】:选择边类型,为其起点类型和终点类型的ID列映射上传文件的列数据;

      2. 映射设置:为选定的顶点类型的属性映射上传文件中的列数据,此处,若属性名称与文件的表头名称一致,可自动匹配映射属性,无需手动填选

      3. 完成设置后,显示设置列表,方可进行下一步操作,支持映射的新增、编辑、删除操作

    设置映射的填写内容:

    image

    映射列表:

    image
    3.3.5 导入数据

    导入前需要填写导入设置参数,填写完成后,可开始向图库中导入数据

    1. 导入设置
    • 导入设置参数项如下图所示,均设置默认值,无需手动填写
    image
    1. 导入详情
    • 点击开始导入,开始文件的导入任务
    • 导入详情中提供每个上传文件设置的映射类型、导入速度、导入的进度、耗时以及当前任务的具体状态,并可对每个任务进行暂停、继续、停止等操作
    • 若导入失败,可查看具体原因
    image

    3.4 数据分析

    3.4.1 模块入口

    左侧导航处:

    image
    3.4.2 多图切换

    通过左侧切换入口,灵活切换多图的操作空间

    image
    3.4.3 图分析与处理

    HugeGraph支持Apache TinkerPop3的图遍历查询语言Gremlin,Gremlin是一种通用的图数据库查询语言,通过输入Gremlin语句,点击执行,即可执行图数据的查询分析操作,并可实现顶点/边的创建及删除、顶点/边的属性修改等。

    Gremlin查询后,下方为图结果展示区域,提供3种图结果展示方式,分别为:【图模式】、【表格模式】、【Json模式】。

    支持缩放、居中、全屏、导出等操作。

    【图模式】

    image

    【表格模式】

    image

    【Json模式】

    image
    3.4.4 数据详情

    点击顶点/边实体,可查看顶点/边的数据详情,包括:顶点/边类型,顶点ID,属性及对应值,拓展图的信息展示维度,提高易用性。

    3.4.5 图结果的多维路径查询

    除了全局的查询外,可针对查询结果中的顶点进行深度定制化查询以及隐藏操作,实现图结果的定制化挖掘。

    右击顶点,出现顶点的菜单入口,可进行展示、查询、隐藏等操作。

    • 展开:点击后,展示与选中点关联的顶点。
    • 查询:通过选择与选中点关联的边类型及边方向,在此条件下,再选择其属性及相应筛选规则,可实现定制化的路径展示。
    • 隐藏:点击后,隐藏选中点及与之关联的边。

    双击顶点,也可展示与选中点关联的顶点。

    image
    3.4.6 新增顶点/边
    3.4.6.1 新增顶点

    在图区可通过两个入口,动态新增顶点,如下:

    1. 点击图区面板,出现添加顶点入口
    2. 点击右上角的操作栏中的首个图标

    通过选择或填写顶点类型、ID值、属性信息,完成顶点的增加。

    入口如下:

    image

    添加顶点内容如下:

    image
    3.4.6.2 新增边

    右击图结果中的顶点,可增加该点的出边或者入边。

    3.4.7 执行记录与收藏的查询
    1. 图区下方记载每次查询记录,包括:查询时间、执行类型、内容、状态、耗时、以及【收藏】和【加载】操作,实现图执行的全方位记录,有迹可循,并可对执行内容快速加载复用
    2. 提供语句的收藏功能,可对常用语句进行收藏操作,方便高频语句快速调用
    image

    3.5 任务管理

    3.5.1 模块入口

    左侧导航处:

    image
    3.5.2 任务管理
    1. 提供异步任务的统一的管理与结果查看,异步任务包括4类,分别为:
    • gremlin:Gremlin任务
    • algorithm:OLAP算法任务
    • remove_schema:删除元数据
    • rebuild_index:重建索引
    1. 列表显示当前图的异步任务信息,包括:任务ID,任务名称,任务类型,创建时间,耗时,状态,操作,实现对异步任务的管理。
    2. 支持对任务类型和状态进行筛选
    3. 支持搜索任务ID和任务名称
    4. 可对异步任务进行删除或批量删除操作
    image
    3.5.3 Gremlin异步任务

    1.创建任务

    • 数据分析模块,目前支持两种Gremlin操作,Gremlin查询和Gremlin任务;若用户切换到Gremlin任务,点击执行后,在异步任务中心会建立一条异步任务; + Print entire section

    HugeGraph-Hubble Quick Start

    1 HugeGraph-Hubble概述

    HugeGraph是一款面向分析型,支持批量操作的图数据库系统,它由百度安全团队自主研发,全面支持Apache TinkerPop3框架和Gremlin图查询语言,提供导出、备份、恢复等完善的工具链生态,有效解决海量图数据的存储、查询和关联分析需求。HugeGraph广泛应用于银行券商的风控打击、保险理赔、推荐搜索、公安犯罪打击、知识图谱构建、网络安全、IT运维等领域,致力于让更多行业、组织及用户享受到更广泛的数据综合价值。

    HugeGraph-Hubble 是HugeGraph的一站式可视化分析平台,平台涵盖了从数据建模,到数据快速导入,再到数据的在线、离线分析、以及图的统一管理的全过程,实现了图应用的全流程向导式操作,旨在提升用户的使用流畅度,降低用户的使用门槛,提供更为高效易用的使用体验。

    平台主要包括以下模块:

    图管理

    图管理模块通过图的创建,连接平台与图数据,实现多图的统一管理,并实现图的访问、编辑、删除、查询操作。

    元数据建模

    元数据建模模块通过创建属性库,顶点类型,边类型,索引类型,实现图模型的构建与管理,平台提供两种模式,列表模式和图模式,可实时展示元数据模型,更加直观。同时还提供了跨图的元数据复用功能,省去相同元数据繁琐的重复创建过程,极大地提升建模效率,增强易用性。

    数据导入

    数据导入是将用户的业务数据转化为图的顶点和边并插入图数据库中,平台提供了向导式的可视化导入模块,通过创建导入任务,实现导入任务的管理及多个导入任务的并行运行,提高导入效能。进入导入任务后,只需跟随平台步骤提示,按需上传文件,填写内容,就可轻松实现图数据的导入过程,同时支持断点续传,错误重试机制等,降低导入成本,提升效率。

    图分析

    通过输入图遍历语言Gremlin可实现图数据的高性能通用分析,并提供顶点的定制化多维路径查询等功能,提供3种图结果展示方式,包括:图形式、表格形式、Json形式,多维度展示数据形态,满足用户使用的多种场景需求。提供运行记录及常用语句收藏等功能,实现图操作的可追溯,以及查询输入的复用共享,快捷高效。支持图数据的导出,导出格式为Json格式。

    任务管理

    对于需要遍历全图的Gremlin任务,索引的创建与重建等耗时较长的异步任务,平台提供相应的任务管理功能,实现异步任务的统一的管理与结果查看。

    2 部署

    有三种方式可以部署hugegraph-hubble

    • 下载 toolchain 二进制包
    • 源码编译
    • 使用docker

    2.1 下载 toolchain 二进制包

    hubble项目在toolchain项目中, 首先下载toolchain的tar包

    wget https://downloads.apache.org/incubator/hugegraph/1.0.0/apache-hugegraph-toolchain-incubating-{version}.tar.gz
    +tar -xvf apache-hugegraph-toolchain-incubating-{version}.tar.gz 
    +cd apache-hugegraph-toolchain-incubating-{version}.tar.gz/apache-hugegraph-hubble-incubating-{version}
    +

    运行hubble

    bin/start-hubble.sh
    +

    随后我们可以看到

    starting HugeGraphHubble ..............timed out with http status 502
    +2023-08-30 20:38:34 [main] [INFO ] o.a.h.HugeGraphHubble [] - Starting HugeGraphHubble v1.0.0 on cpu05 with PID xxx (~/apache-hugegraph-toolchain-incubating-1.0.0/apache-hugegraph-hubble-incubating-1.0.0/lib/hubble-be-1.0.0.jar started by $USER in ~/apache-hugegraph-toolchain-incubating-1.0.0/apache-hugegraph-hubble-incubating-1.0.0)
    +...
    +2023-08-30 20:38:38 [main] [INFO ] c.z.h.HikariDataSource [] - hugegraph-hubble-HikariCP - Start completed.
    +2023-08-30 20:38:41 [main] [INFO ] o.a.c.h.Http11NioProtocol [] - Starting ProtocolHandler ["http-nio-0.0.0.0-8088"]
    +2023-08-30 20:38:41 [main] [INFO ] o.a.h.HugeGraphHubble [] - Started HugeGraphHubble in 7.379 seconds (JVM running for 8.499)
    +

    然后使用浏览器访问 ip:8088 可看到hubble页面, 通过bin/stop-hubble.sh则可以停止服务

    2.2 源码编译

    注意: 编译 hubble 需要用户本地环境有安装 Nodejs V16.xyarn 环境

    apt install curl build-essential
    +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
    +source ~/.bashrc
    +nvm install 16
    +

    然后确认安装版本是否为 16.x (请注意过高的 Node 版本会产生冲突)

    node -v
    +

    使用下列命令安装 yarn

    npm install -g yarn
    +

    下载toolchain源码包

    git clone https://github.com/apache/hugegraph-toolchain.git
    +

    编译hubble, 它依赖 loader 和 client, 编译时需提前构建这些依赖 (后续可跳)

    cd incubator-hugegraph-toolchain
    +sudo pip install -r hugegraph-hubble/hubble-dist/assembly/travis/requirements.txt
    +mvn install -pl hugegraph-client,hugegraph-loader -am -Dmaven.javadoc.skip=true -DskipTests -ntp
    +cd hugegraph-hubble
    +mvn -e compile package -Dmaven.javadoc.skip=true -Dmaven.test.skip=true -ntp
    +cd apache-hugegraph-hubble-incubating*
    +

    启动hubble

    bin/start-hubble.sh -d
    +

    2.3 使用Docker

    特别注意: 如果使用 docker 启动 hubble,且 hubble 和 server 位于同一宿主机,在后续 hubble 页面中设置 graph 的 hostname 的时候请不要直接设置 localhost/127.0.0.1,这将指向 hubble 容器内部而非宿主机,导致无法连接到 server

    我们可以使用 docker run -itd --name=hubble -p 8088:8088 hugegraph/hubble 快速启动 hubble.

    或者使用docker-compose启动hubble,另外如果hubble和graph在同一个docker网络下,可以使用graph的contain_name进行访问,而不需要宿主机的ip

    使用docker-compose up -ddocker-compose.yml如下:

    version: '3'
    +services:
    +  graph_hubble:
    +    image: hugegraph/hugegraph
    +    container_name: graph
    +    ports:
    +      - 18080:8080
    +
    +  hubble:
    +    image: hugegraph/hubble
    +    container_name: hubble
    +    ports:
    +      - 8088:8088
    +

    3 平台使用流程

    平台的模块使用流程如下:

    image

    4 平台使用说明

    4.1 图管理

    4.1.1 图创建

    图管理模块下,点击【创建图】,通过填写图ID、图名称、主机名、端口号、用户名、密码的信息,实现多图的连接。

    image

    创建图填写内容如下:

    image
    4.1.2 图访问

    实现图空间的信息访问,进入后,可进行图的多维查询分析、元数据管理、数据导入、算法分析等操作。

    image
    4.1.3 图管理
    1. 用户通过对图的概览、搜索以及单图的信息编辑与删除,实现图的统一管理。
    2. 搜索范围:可对图名称和ID进行搜索。
    image

    4.2 元数据建模(列表+图模式)

    4.2.1 模块入口

    左侧导航处:

    image
    4.2.2 属性类型
    4.2.2.1 创建
    1. 填写或选择属性名称、数据类型、基数,完成属性的创建。
    2. 创建的属性可作为顶点类型和边类型的属性。

    列表模式:

    image

    图模式:

    image
    4.2.2.2 复用
    1. 平台提供【复用】功能,可直接复用其他图的元数据。
    2. 选择需要复用的图ID,继续选择需要复用的属性,之后平台会进行是否冲突的校验,通过后,可实现元数据的复用。

    选择复用项:

    image

    校验复用项:

    image
    4.2.2.3 管理
    1. 在属性列表中可进行单条删除或批量删除操作。
    4.2.3 顶点类型
    4.2.3.1 创建
    1. 填写或选择顶点类型名称、ID策略、关联属性、主键属性,顶点样式、查询结果中顶点下方展示的内容,以及索引的信息:包括是否创建类型索引,及属性索引的具体内容,完成顶点类型的创建。

    列表模式:

    image

    图模式:

    image
    4.2.3.2 复用
    1. 顶点类型的复用,会将此类型关联的属性和属性索引一并复用。
    2. 复用功能使用方法类似属性的复用,见3.2.2.2。
    4.2.3.3 管理
    1. 可进行编辑操作,顶点样式、关联类型、顶点展示内容、属性索引可编辑,其余不可编辑。

    2. 可进行单条删除或批量删除操作。

    image
    4.2.4 边类型
    4.2.4.1 创建
    1. 填写或选择边类型名称、起点类型、终点类型、关联属性、是否允许多次连接、边样式、查询结果中边下方展示的内容,以及索引的信息:包括是否创建类型索引,及属性索引的具体内容,完成边类型的创建。

    列表模式:

    image

    图模式:

    image
    4.2.4.2 复用
    1. 边类型的复用,会将此类型的起点类型、终点类型、关联的属性和属性索引一并复用。
    2. 复用功能使用方法类似属性的复用,见3.2.2.2。
    4.2.4.3 管理
    1. 可进行编辑操作,边样式、关联属性、边展示内容、属性索引可编辑,其余不可编辑,同顶点类型。
    2. 可进行单条删除或批量删除操作。
    4.2.5 索引类型

    展示顶点类型和边类型的顶点索引和边索引。

    4.3 数据导入

    数据导入的使用流程如下:

    image
    4.3.1 模块入口

    左侧导航处:

    image
    4.3.2 创建任务
    1. 填写任务名称和备注(非必填),可以创建导入任务。
    2. 可创建多个导入任务,并行导入。
    image
    4.3.3 上传文件
    1. 上传需要构图的文件,目前支持的格式为CSV,后续会不断更新。
    2. 可同时上传多个文件。
    image
    4.3.4 设置数据映射
    1. 对上传的文件分别设置数据映射,包括文件设置和类型设置

    2. 文件设置:勾选或填写是否包含表头、分隔符、编码格式等文件本身的设置内容,均设置默认值,无需手动填写

    3. 类型设置:

      1. 顶点映射和边映射:

        【顶点类型】 :选择顶点类型,并为其ID映射上传文件中列数据;

        【边类型】:选择边类型,为其起点类型和终点类型的ID列映射上传文件的列数据;

      2. 映射设置:为选定的顶点类型的属性映射上传文件中的列数据,此处,若属性名称与文件的表头名称一致,可自动匹配映射属性,无需手动填选

      3. 完成设置后,显示设置列表,方可进行下一步操作,支持映射的新增、编辑、删除操作

    设置映射的填写内容:

    image

    映射列表:

    image
    4.3.5 导入数据

    导入前需要填写导入设置参数,填写完成后,可开始向图库中导入数据

    1. 导入设置
    • 导入设置参数项如下图所示,均设置默认值,无需手动填写
    image
    1. 导入详情
    • 点击开始导入,开始文件的导入任务
    • 导入详情中提供每个上传文件设置的映射类型、导入速度、导入的进度、耗时以及当前任务的具体状态,并可对每个任务进行暂停、继续、停止等操作
    • 若导入失败,可查看具体原因
    image

    4.4 数据分析

    4.4.1 模块入口

    左侧导航处:

    image
    4.4.2 多图切换

    通过左侧切换入口,灵活切换多图的操作空间

    image
    4.4.3 图分析与处理

    HugeGraph支持Apache TinkerPop3的图遍历查询语言Gremlin,Gremlin是一种通用的图数据库查询语言,通过输入Gremlin语句,点击执行,即可执行图数据的查询分析操作,并可实现顶点/边的创建及删除、顶点/边的属性修改等。

    Gremlin查询后,下方为图结果展示区域,提供3种图结果展示方式,分别为:【图模式】、【表格模式】、【Json模式】。

    支持缩放、居中、全屏、导出等操作。

    【图模式】

    image

    【表格模式】

    image

    【Json模式】

    image
    4.4.4 数据详情

    点击顶点/边实体,可查看顶点/边的数据详情,包括:顶点/边类型,顶点ID,属性及对应值,拓展图的信息展示维度,提高易用性。

    4.4.5 图结果的多维路径查询

    除了全局的查询外,可针对查询结果中的顶点进行深度定制化查询以及隐藏操作,实现图结果的定制化挖掘。

    右击顶点,出现顶点的菜单入口,可进行展示、查询、隐藏等操作。

    • 展开:点击后,展示与选中点关联的顶点。
    • 查询:通过选择与选中点关联的边类型及边方向,在此条件下,再选择其属性及相应筛选规则,可实现定制化的路径展示。
    • 隐藏:点击后,隐藏选中点及与之关联的边。

    双击顶点,也可展示与选中点关联的顶点。

    image
    4.4.6 新增顶点/边
    4.4.6.1 新增顶点

    在图区可通过两个入口,动态新增顶点,如下:

    1. 点击图区面板,出现添加顶点入口
    2. 点击右上角的操作栏中的首个图标

    通过选择或填写顶点类型、ID值、属性信息,完成顶点的增加。

    入口如下:

    image

    添加顶点内容如下:

    image
    4.4.6.2 新增边

    右击图结果中的顶点,可增加该点的出边或者入边。

    4.4.7 执行记录与收藏的查询
    1. 图区下方记载每次查询记录,包括:查询时间、执行类型、内容、状态、耗时、以及【收藏】和【加载】操作,实现图执行的全方位记录,有迹可循,并可对执行内容快速加载复用
    2. 提供语句的收藏功能,可对常用语句进行收藏操作,方便高频语句快速调用
    image

    4.5 任务管理

    4.5.1 模块入口

    左侧导航处:

    image
    4.5.2 任务管理
    1. 提供异步任务的统一的管理与结果查看,异步任务包括4类,分别为:
    • gremlin:Gremlin任务
    • algorithm:OLAP算法任务
    • remove_schema:删除元数据
    • rebuild_index:重建索引
    1. 列表显示当前图的异步任务信息,包括:任务ID,任务名称,任务类型,创建时间,耗时,状态,操作,实现对异步任务的管理。
    2. 支持对任务类型和状态进行筛选
    3. 支持搜索任务ID和任务名称
    4. 可对异步任务进行删除或批量删除操作
    image
    4.5.3 Gremlin异步任务

    1.创建任务

    • 数据分析模块,目前支持两种Gremlin操作,Gremlin查询和Gremlin任务;若用户切换到Gremlin任务,点击执行后,在异步任务中心会建立一条异步任务; 2.任务提交
    • 任务提交成功后,图区部分返回提交结果和任务ID -3.任务详情
    • 提供【查看】入口,可跳转到任务详情查看当前任务具体执行情况跳转到任务中心后,直接显示当前执行的任务行
    image

    点击查看入口,跳转到任务管理列表,如下:

    image

    4.查看结果

    • 结果通过json形式展示
    3.5.4 OLAP算法任务

    Hubble上暂未提供可视化的OLAP算法执行,可调用RESTful API进行OLAP类算法任务,在任务管理中通过ID找到相应任务,查看进度与结果等。

    3.5.5 删除元数据、重建索引

    1.创建任务

    • 在元数据建模模块中,删除元数据时,可建立删除元数据的异步任务
    image
    • 在编辑已有的顶点/边类型操作中,新增索引时,可建立创建索引的异步任务
    image

    2.任务详情

    • 确认/保存后,可跳转到任务中心查看当前任务的详情
    image

    Last modified January 1, 2023: enhance validate doc (#171) (89a0a1a6)
    +3.任务详情
  • 提供【查看】入口,可跳转到任务详情查看当前任务具体执行情况跳转到任务中心后,直接显示当前执行的任务行
  • image

    点击查看入口,跳转到任务管理列表,如下:

    image

    4.查看结果

    • 结果通过json形式展示
    4.5.4 OLAP算法任务

    Hubble上暂未提供可视化的OLAP算法执行,可调用RESTful API进行OLAP类算法任务,在任务管理中通过ID找到相应任务,查看进度与结果等。

    4.5.5 删除元数据、重建索引

    1.创建任务

    • 在元数据建模模块中,删除元数据时,可建立删除元数据的异步任务
    image
    • 在编辑已有的顶点/边类型操作中,新增索引时,可建立创建索引的异步任务
    image

    2.任务详情

    • 确认/保存后,可跳转到任务中心查看当前任务的详情
    image

    diff --git a/cn/docs/quickstart/hugegraph-server/index.html b/cn/docs/quickstart/hugegraph-server/index.html index ef699eb2c..58830f57b 100644 --- a/cn/docs/quickstart/hugegraph-server/index.html +++ b/cn/docs/quickstart/hugegraph-server/index.html @@ -6,13 +6,13 @@ 2 依赖 2.1 安装 Java 11 (JDK 11) 请优先考虑在 Java 11 的环境上启动 HugeGraph-Server,目前同时保留对 Java 8 的兼容 在往下阅读之前务必执行 java -version 命令查看 jdk 版本 java -version 3 部署 有三种方式可以部署 HugeGraph-Server 组件: -方式 1:一键部署 方式 2:下载 tar 包 方式 3:源码编译 方式 4:使用 Docker 容器 3.">{yesButton.disabled=!0,noButton.disabled=!0},sendFeedback=e=>{if(typeof ga!="function")return;const t={command:"send",hitType:"event",category:"Helpful",action:"click",label:window.location.pathname,value:e};ga(t.command,t.hitType,t.category,t.action,t.label,t.value)};yesButton.addEventListener("click",()=>{yesResponse.classList.add("feedback--response__visible"),disableButtons(),sendFeedback(1)}),noButton.addEventListener("click",()=>{noResponse.classList.add("feedback--response__visible"),disableButtons(),sendFeedback(0)})
    +

    代表创建示例图成功。

    使用 IntelliJ IDEA 在启动 Server 时创建示例图的流程类似,不再赘述。

    9.2 启动脚本时指定参数

    在脚本启动时候携带 -p true 参数, 表示preload, 即创建示例图

    bin/start-hugegraph.sh -p true
    +Starting HugeGraphServer in daemon mode...
    +Connecting to HugeGraphServer (http://127.0.0.1:8080/graphs)......OK
    +

    并且使用 RESTful API 请求 HugeGraphServer 得到如下结果:

    > curl "http://localhost:8080/graphs/hugegraph/graph/vertices" | gunzip
    +
    +{"vertices":[{"id":"2:lop","label":"software","type":"vertex","properties":{"name":"lop","lang":"java","price":328}},{"id":"1:josh","label":"person","type":"vertex","properties":{"name":"josh","age":32,"city":"Beijing"}},{"id":"1:marko","label":"person","type":"vertex","properties":{"name":"marko","age":29,"city":"Beijing"}},{"id":"1:peter","label":"person","type":"vertex","properties":{"name":"peter","age":35,"city":"Shanghai"}},{"id":"1:vadas","label":"person","type":"vertex","properties":{"name":"vadas","age":27,"city":"Hongkong"}},{"id":"2:ripple","label":"software","type":"vertex","properties":{"name":"ripple","lang":"java","price":199}}]}
    +

    代表创建示例图成功。

    9.3 使用docker启动

    在docker启动的时候设置环境变量 PRELOAD=true, 从而实现启动脚本的时候加载数据。

    1. 使用docker run

      使用 docker run -itd --name=graph -p 18080:8080 -e PRELOAD=true hugegraph/hugegraph:latest

    2. 使用docker-compose

      创建docker-compose.yml,具体文件如下

      version: '3'
      +  services:
      +    graph:
      +      image: hugegraph/hugegraph:latest
      +      container_name: graph
      +      environment:
      +        - PRELOAD=true
      +      ports:
      +        - 18080:8080
      +

      使用命令 docker-compose up -d 启动容器

    使用 RESTful API 请求 HugeGraphServer 得到如下结果:

    > curl "http://localhost:18080/graphs/hugegraph/graph/vertices" | gunzip
    +
    +{"vertices":[{"id":"2:lop","label":"software","type":"vertex","properties":{"name":"lop","lang":"java","price":328}},{"id":"1:josh","label":"person","type":"vertex","properties":{"name":"josh","age":32,"city":"Beijing"}},{"id":"1:marko","label":"person","type":"vertex","properties":{"name":"marko","age":29,"city":"Beijing"}},{"id":"1:peter","label":"person","type":"vertex","properties":{"name":"peter","age":35,"city":"Shanghai"}},{"id":"1:vadas","label":"person","type":"vertex","properties":{"name":"vadas","age":27,"city":"Hongkong"}},{"id":"2:ripple","label":"software","type":"vertex","properties":{"name":"ripple","lang":"java","price":199}}]}
    +

    代表创建示例图成功。


    diff --git a/cn/docs/quickstart/index.xml b/cn/docs/quickstart/index.xml index c5406bba5..80bca01cd 100644 --- a/cn/docs/quickstart/index.xml +++ b/cn/docs/quickstart/index.xml @@ -310,6 +310,13 @@ </span></span></code></pre></div><h3 id="8-使用-intellij-idea-调试-server">8 使用 IntelliJ IDEA 调试 Server</h3> <p>请参考<a href="/docs/contribution-guidelines/hugegraph-server-idea-setup">在 IDEA 中配置 Server 开发环境</a></p> <h3 id="9-在启动-server-时创建示例图">9 在启动 Server 时创建示例图</h3> +<p>有三种方式可以在启动 Server 时创建示例图</p> +<ul> +<li>方式一: 直接修改配置文件</li> +<li>方式二: 启动脚本使用命令行参数</li> +<li>方式三: 使用docker或docker-compose添加环境变量</li> +</ul> +<h4 id="91-直接修改配置文件">9.1 直接修改配置文件</h4> <p>修改 <code>conf/gremlin-server.yaml</code>,将 <code>empty-sample.groovy</code> 修改为 <code>example.groovy</code>:</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>{<span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">files</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">[</span><span style="color:#000">scripts/example.groovy]</span><span style="color:#f8f8f8;text-decoration:underline"> @@ -344,7 +351,44 @@ </span></span></code></pre></div><p>代表创建示例图成功。</p> <blockquote> <p>使用 IntelliJ IDEA 在启动 Server 时创建示例图的流程类似,不再赘述。</p> -</blockquote>Docs: HugeGraph-Loader Quick Start/cn/docs/quickstart/hugegraph-loader/Mon, 01 Jan 0001 00:00:00 +0000/cn/docs/quickstart/hugegraph-loader/ +</blockquote> +<h4 id="92-启动脚本时指定参数">9.2 启动脚本时指定参数</h4> +<p>在脚本启动时候携带 <code>-p true</code> 参数, 表示preload, 即创建示例图</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>bin/start-hugegraph.sh -p true +</span></span><span style="display:flex;"><span>Starting HugeGraphServer in daemon mode... +</span></span><span style="display:flex;"><span>Connecting to HugeGraphServer (http://127.0.0.1:8080/graphs)......OK +</span></span></code></pre></div><p>并且使用 RESTful API 请求 <code>HugeGraphServer</code> 得到如下结果:</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold">&gt;</span> <span style="color:#000">curl</span> <span style="color:#4e9a06">&#34;http://localhost:8080/graphs/hugegraph/graph/vertices&#34;</span> <span style="color:#ce5c00;font-weight:bold">|</span> <span style="color:#000">gunzip</span> +</span></span><span style="display:flex;"><span> +</span></span><span style="display:flex;"><span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;vertices&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">[{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;2:lop&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;software&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;lop&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;lang&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;java&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;price&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">328</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:josh&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;josh&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">32</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Beijing&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:marko&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;marko&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">29</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Beijing&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:peter&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;peter&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">35</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Shanghai&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:vadas&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vadas&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">27</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Hongkong&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;2:ripple&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;software&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;ripple&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;lang&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;java&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;price&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">199</span><span style="color:#000;font-weight:bold">}}]}</span> +</span></span></code></pre></div><p>代表创建示例图成功。</p> +<h4 id="93-使用docker启动">9.3 使用docker启动</h4> +<p>在docker启动的时候设置环境变量 <code>PRELOAD=true</code>, 从而实现启动脚本的时候加载数据。</p> +<ol> +<li> +<p>使用<code>docker run</code></p> +<p>使用 <code>docker run -itd --name=graph -p 18080:8080 -e PRELOAD=true hugegraph/hugegraph:latest</code></p> +</li> +<li> +<p>使用<code>docker-compose</code></p> +<p>创建<code>docker-compose.yml</code>,具体文件如下</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">version</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;3&#39;</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">services</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">graph</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">image</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">hugegraph/hugegraph:latest</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">container_name</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">graph</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">environment</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>- <span style="color:#000">PRELOAD=true</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">ports</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>- <span style="color:#0000cf;font-weight:bold">18080</span><span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">8080</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span></code></pre></div><p>使用命令 <code>docker-compose up -d</code> 启动容器</p> +</li> +</ol> +<p>使用 RESTful API 请求 <code>HugeGraphServer</code> 得到如下结果:</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold">&gt;</span> <span style="color:#000">curl</span> <span style="color:#4e9a06">&#34;http://localhost:18080/graphs/hugegraph/graph/vertices&#34;</span> <span style="color:#ce5c00;font-weight:bold">|</span> <span style="color:#000">gunzip</span> +</span></span><span style="display:flex;"><span> +</span></span><span style="display:flex;"><span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;vertices&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">[{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;2:lop&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;software&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;lop&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;lang&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;java&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;price&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">328</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:josh&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;josh&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">32</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Beijing&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:marko&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;marko&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">29</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Beijing&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:peter&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;peter&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">35</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Shanghai&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:vadas&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vadas&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">27</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Hongkong&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;2:ripple&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;software&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;ripple&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;lang&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;java&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;price&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">199</span><span style="color:#000;font-weight:bold">}}]}</span> +</span></span></code></pre></div><p>代表创建示例图成功。</p>Docs: HugeGraph-Loader Quick Start/cn/docs/quickstart/hugegraph-loader/Mon, 01 Jan 0001 00:00:00 +0000/cn/docs/quickstart/hugegraph-loader/ <h3 id="1-hugegraph-loader概述">1 HugeGraph-Loader概述</h3> <p>HugeGraph-Loader 是 HugeGraph 的数据导入组件,能够将多种数据源的数据转化为图的顶点和边并批量导入到图数据库中。</p> <p>目前支持的数据源包括:</p> @@ -1989,14 +2033,77 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p> <p>通过输入图遍历语言Gremlin可实现图数据的高性能通用分析,并提供顶点的定制化多维路径查询等功能,提供3种图结果展示方式,包括:图形式、表格形式、Json形式,多维度展示数据形态,满足用户使用的多种场景需求。提供运行记录及常用语句收藏等功能,实现图操作的可追溯,以及查询输入的复用共享,快捷高效。支持图数据的导出,导出格式为Json格式。</p> <h5 id="任务管理">任务管理</h5> <p>对于需要遍历全图的Gremlin任务,索引的创建与重建等耗时较长的异步任务,平台提供相应的任务管理功能,实现异步任务的统一的管理与结果查看。</p> -<h3 id="2平台使用流程">2 平台使用流程</h3> +<h4 id="2-部署">2 部署</h4> +<p>有三种方式可以部署<code>hugegraph-hubble</code></p> +<ul> +<li>下载 toolchain 二进制包</li> +<li>源码编译</li> +<li>使用docker</li> +</ul> +<h4 id="21-下载-toolchain-二进制包">2.1 下载 toolchain 二进制包</h4> +<p><code>hubble</code>项目在<code>toolchain</code>项目中, 首先下载<code>toolchain</code>的tar包</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>wget https://downloads.apache.org/incubator/hugegraph/1.0.0/apache-hugegraph-toolchain-incubating-<span style="color:#ce5c00;font-weight:bold">{</span>version<span style="color:#ce5c00;font-weight:bold">}</span>.tar.gz +</span></span><span style="display:flex;"><span>tar -xvf apache-hugegraph-toolchain-incubating-<span style="color:#ce5c00;font-weight:bold">{</span>version<span style="color:#ce5c00;font-weight:bold">}</span>.tar.gz +</span></span><span style="display:flex;"><span><span style="color:#204a87">cd</span> apache-hugegraph-toolchain-incubating-<span style="color:#ce5c00;font-weight:bold">{</span>version<span style="color:#ce5c00;font-weight:bold">}</span>.tar.gz/apache-hugegraph-hubble-incubating-<span style="color:#ce5c00;font-weight:bold">{</span>version<span style="color:#ce5c00;font-weight:bold">}</span> +</span></span></code></pre></div><p>运行<code>hubble</code></p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>bin/start-hubble.sh +</span></span></code></pre></div><p>随后我们可以看到</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>starting HugeGraphHubble ..............timed out with http status <span style="color:#0000cf;font-weight:bold">502</span> +</span></span><span style="display:flex;"><span>2023-08-30 20:38:34 <span style="color:#ce5c00;font-weight:bold">[</span>main<span style="color:#ce5c00;font-weight:bold">]</span> <span style="color:#ce5c00;font-weight:bold">[</span>INFO <span style="color:#ce5c00;font-weight:bold">]</span> o.a.h.HugeGraphHubble <span style="color:#ce5c00;font-weight:bold">[]</span> - Starting HugeGraphHubble v1.0.0 on cpu05 with PID xxx <span style="color:#ce5c00;font-weight:bold">(</span>~/apache-hugegraph-toolchain-incubating-1.0.0/apache-hugegraph-hubble-incubating-1.0.0/lib/hubble-be-1.0.0.jar started by <span style="color:#000">$USER</span> in ~/apache-hugegraph-toolchain-incubating-1.0.0/apache-hugegraph-hubble-incubating-1.0.0<span style="color:#ce5c00;font-weight:bold">)</span> +</span></span><span style="display:flex;"><span>... +</span></span><span style="display:flex;"><span>2023-08-30 20:38:38 <span style="color:#ce5c00;font-weight:bold">[</span>main<span style="color:#ce5c00;font-weight:bold">]</span> <span style="color:#ce5c00;font-weight:bold">[</span>INFO <span style="color:#ce5c00;font-weight:bold">]</span> c.z.h.HikariDataSource <span style="color:#ce5c00;font-weight:bold">[]</span> - hugegraph-hubble-HikariCP - Start completed. +</span></span><span style="display:flex;"><span>2023-08-30 20:38:41 <span style="color:#ce5c00;font-weight:bold">[</span>main<span style="color:#ce5c00;font-weight:bold">]</span> <span style="color:#ce5c00;font-weight:bold">[</span>INFO <span style="color:#ce5c00;font-weight:bold">]</span> o.a.c.h.Http11NioProtocol <span style="color:#ce5c00;font-weight:bold">[]</span> - Starting ProtocolHandler <span style="color:#ce5c00;font-weight:bold">[</span><span style="color:#4e9a06">&#34;http-nio-0.0.0.0-8088&#34;</span><span style="color:#ce5c00;font-weight:bold">]</span> +</span></span><span style="display:flex;"><span>2023-08-30 20:38:41 <span style="color:#ce5c00;font-weight:bold">[</span>main<span style="color:#ce5c00;font-weight:bold">]</span> <span style="color:#ce5c00;font-weight:bold">[</span>INFO <span style="color:#ce5c00;font-weight:bold">]</span> o.a.h.HugeGraphHubble <span style="color:#ce5c00;font-weight:bold">[]</span> - Started HugeGraphHubble in 7.379 seconds <span style="color:#ce5c00;font-weight:bold">(</span>JVM running <span style="color:#204a87;font-weight:bold">for</span> 8.499<span style="color:#ce5c00;font-weight:bold">)</span> +</span></span></code></pre></div><p>然后使用浏览器访问 <code>ip:8088</code> 可看到<code>hubble</code>页面, 通过<code>bin/stop-hubble.sh</code>则可以停止服务</p> +<h4 id="22-源码编译">2.2 源码编译</h4> +<p><strong>注意:</strong> 编译 hubble 需要用户本地环境有安装 <code>Nodejs V16.x</code> 与 <code>yarn</code> 环境</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>apt install curl build-essential +</span></span><span style="display:flex;"><span>curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh <span style="color:#000;font-weight:bold">|</span> bash +</span></span><span style="display:flex;"><span><span style="color:#204a87">source</span> ~/.bashrc +</span></span><span style="display:flex;"><span>nvm install <span style="color:#0000cf;font-weight:bold">16</span> +</span></span></code></pre></div><p>然后确认安装版本是否为 <code>16.x</code> (请注意过高的 Node 版本会产生冲突)</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>node -v +</span></span></code></pre></div><p>使用下列命令安装 <code>yarn</code></p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>npm install -g yarn +</span></span></code></pre></div><p>下载toolchain源码包</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>git clone https://github.com/apache/hugegraph-toolchain.git +</span></span></code></pre></div><p>编译<code>hubble</code>, 它依赖 loader 和 client, 编译时需提前构建这些依赖 (后续可跳)</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span><span style="color:#204a87">cd</span> incubator-hugegraph-toolchain +</span></span><span style="display:flex;"><span>sudo pip install -r hugegraph-hubble/hubble-dist/assembly/travis/requirements.txt +</span></span><span style="display:flex;"><span>mvn install -pl hugegraph-client,hugegraph-loader -am -Dmaven.javadoc.skip<span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#204a87">true</span> -DskipTests -ntp +</span></span><span style="display:flex;"><span><span style="color:#204a87">cd</span> hugegraph-hubble +</span></span><span style="display:flex;"><span>mvn -e compile package -Dmaven.javadoc.skip<span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#204a87">true</span> -Dmaven.test.skip<span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#204a87">true</span> -ntp +</span></span><span style="display:flex;"><span><span style="color:#204a87">cd</span> apache-hugegraph-hubble-incubating* +</span></span></code></pre></div><p>启动<code>hubble</code></p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>bin/start-hubble.sh -d +</span></span></code></pre></div><h4 id="23-使用docker">2.3 使用Docker</h4> +<blockquote> +<p><strong>特别注意</strong>: 如果使用 docker 启动 hubble,且 hubble 和 server 位于同一宿主机,在后续 hubble 页面中设置 graph 的 hostname 的时候请不要直接设置 <code>localhost/127.0.0.1</code>,这将指向 hubble 容器内部而非宿主机,导致无法连接到 server</p> +</blockquote> +<p>我们可以使用 <code>docker run -itd --name=hubble -p 8088:8088 hugegraph/hubble</code> 快速启动 <a href="https://hub.docker.com/r/hugegraph/hubble">hubble</a>.</p> +<p>或者使用docker-compose启动hubble,另外如果hubble和graph在同一个docker网络下,可以使用graph的contain_name进行访问,而不需要宿主机的ip</p> +<p>使用<code>docker-compose up -d</code>,<code>docker-compose.yml</code>如下:</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">version</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;3&#39;</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#204a87;font-weight:bold">services</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">graph_hubble</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">image</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">hugegraph/hugegraph</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">container_name</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">graph</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">ports</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>- <span style="color:#0000cf;font-weight:bold">18080</span><span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">8080</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">hubble</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">image</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">hugegraph/hubble</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">container_name</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">hubble</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">ports</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>- <span style="color:#0000cf;font-weight:bold">8088</span><span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">8088</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span></code></pre></div><h3 id="3平台使用流程">3 平台使用流程</h3> <p>平台的模块使用流程如下:</p> <div style="text-align: center;"> <img src="/docs/images/images-hubble/2平台使用流程.png" alt="image"> </div> -<h3 id="3平台使用说明">3 平台使用说明</h3> -<h4 id="31图管理">3.1 图管理</h4> -<h5 id="311图创建">3.1.1 图创建</h5> +<h3 id="4平台使用说明">4 平台使用说明</h3> +<h4 id="41图管理">4.1 图管理</h4> +<h5 id="411图创建">4.1.1 图创建</h5> <p>图管理模块下,点击【创建图】,通过填写图ID、图名称、主机名、端口号、用户名、密码的信息,实现多图的连接。</p> <div style="text-align: center;"> <img src="/docs/images/images-hubble/311图创建.png" alt="image"> @@ -2005,12 +2112,12 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p> <div style="text-align: center;"> <img src="/docs/images/images-hubble/311图创建2.png" alt="image"> </div> -<h5 id="312图访问">3.1.2 图访问</h5> +<h5 id="412图访问">4.1.2 图访问</h5> <p>实现图空间的信息访问,进入后,可进行图的多维查询分析、元数据管理、数据导入、算法分析等操作。</p> <div style="text-align: center;"> <img src="/docs/images/images-hubble/312图访问.png" alt="image"> </div> -<h5 id="313图管理">3.1.3 图管理</h5> +<h5 id="413图管理">4.1.3 图管理</h5> <ol> <li>用户通过对图的概览、搜索以及单图的信息编辑与删除,实现图的统一管理。</li> <li>搜索范围:可对图名称和ID进行搜索。</li> @@ -2018,14 +2125,14 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p> <div style="text-align: center;"> <img src="/docs/images/images-hubble/313图管理.png" alt="image"> </div> -<h4 id="32元数据建模列表图模式">3.2 元数据建模(列表+图模式)</h4> -<h5 id="321模块入口">3.2.1 模块入口</h5> +<h4 id="42元数据建模列表图模式">4.2 元数据建模(列表+图模式)</h4> +<h5 id="421模块入口">4.2.1 模块入口</h5> <p>左侧导航处:</p> <div style="text-align: center;"> <img src="/docs/images/images-hubble/321元数据入口.png" alt="image"> </div> -<h5 id="322属性类型">3.2.2 属性类型</h5> -<h6 id="3221创建">3.2.2.1 创建</h6> +<h5 id="422属性类型">4.2.2 属性类型</h5> +<h6 id="4221创建">4.2.2.1 创建</h6> <ol> <li>填写或选择属性名称、数据类型、基数,完成属性的创建。</li> <li>创建的属性可作为顶点类型和边类型的属性。</li> @@ -2038,7 +2145,7 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p> <div style="text-align: center;"> <img src="/docs/images/images-hubble/3221属性创建2.png" alt="image"> </div> -<h6 id="3222复用">3.2.2.2 复用</h6> +<h6 id="4222复用">4.2.2.2 复用</h6> <ol> <li>平台提供【复用】功能,可直接复用其他图的元数据。</li> <li>选择需要复用的图ID,继续选择需要复用的属性,之后平台会进行是否冲突的校验,通过后,可实现元数据的复用。</li> @@ -2051,12 +2158,12 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p> <div style="text-align: center;"> <img src="/docs/images/images-hubble/3222属性复用2.png" alt="image"> </div> -<h6 id="3223管理">3.2.2.3 管理</h6> +<h6 id="4223管理">4.2.2.3 管理</h6> <ol> <li>在属性列表中可进行单条删除或批量删除操作。</li> </ol> -<h5 id="323顶点类型">3.2.3 顶点类型</h5> -<h6 id="3231创建">3.2.3.1 创建</h6> +<h5 id="423顶点类型">4.2.3 顶点类型</h5> +<h6 id="4231创建">4.2.3.1 创建</h6> <ol> <li>填写或选择顶点类型名称、ID策略、关联属性、主键属性,顶点样式、查询结果中顶点下方展示的内容,以及索引的信息:包括是否创建类型索引,及属性索引的具体内容,完成顶点类型的创建。</li> </ol> @@ -2068,12 +2175,12 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p> <center> <img src="/docs/images/images-hubble/3231顶点创建2.png" alt="image"> </center> -<h6 id="3232复用">3.2.3.2 复用</h6> +<h6 id="4232复用">4.2.3.2 复用</h6> <ol> <li>顶点类型的复用,会将此类型关联的属性和属性索引一并复用。</li> <li>复用功能使用方法类似属性的复用,见3.2.2.2。</li> </ol> -<h6 id="3233管理">3.2.3.3 管理</h6> +<h6 id="4233管理">4.2.3.3 管理</h6> <ol> <li> <p>可进行编辑操作,顶点样式、关联类型、顶点展示内容、属性索引可编辑,其余不可编辑。</p> @@ -2085,8 +2192,8 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p> <center> <img src="/docs/images/images-hubble/3233顶点删除.png" alt="image"> </center> -<h5 id="324边类型">3.2.4 边类型</h5> -<h6 id="3241创建">3.2.4.1 创建</h6> +<h5 id="424边类型">4.2.4 边类型</h5> +<h6 id="4241创建">4.2.4.1 创建</h6> <ol> <li>填写或选择边类型名称、起点类型、终点类型、关联属性、是否允许多次连接、边样式、查询结果中边下方展示的内容,以及索引的信息:包括是否创建类型索引,及属性索引的具体内容,完成边类型的创建。</li> </ol> @@ -2098,29 +2205,29 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p> <center> <img src="/docs/images/images-hubble/3241边创建2.png" alt="image"> </center> -<h6 id="3242复用">3.2.4.2 复用</h6> +<h6 id="4242复用">4.2.4.2 复用</h6> <ol> <li>边类型的复用,会将此类型的起点类型、终点类型、关联的属性和属性索引一并复用。</li> <li>复用功能使用方法类似属性的复用,见3.2.2.2。</li> </ol> -<h6 id="3243管理">3.2.4.3 管理</h6> +<h6 id="4243管理">4.2.4.3 管理</h6> <ol> <li>可进行编辑操作,边样式、关联属性、边展示内容、属性索引可编辑,其余不可编辑,同顶点类型。</li> <li>可进行单条删除或批量删除操作。</li> </ol> -<h5 id="325索引类型">3.2.5 索引类型</h5> +<h5 id="425索引类型">4.2.5 索引类型</h5> <p>展示顶点类型和边类型的顶点索引和边索引。</p> -<h4 id="33数据导入">3.3 数据导入</h4> +<h4 id="43数据导入">4.3 数据导入</h4> <p>数据导入的使用流程如下:</p> <center> <img src="/docs/images/images-hubble/33导入流程.png" alt="image"> </center> -<h5 id="331模块入口">3.3.1 模块入口</h5> +<h5 id="431模块入口">4.3.1 模块入口</h5> <p>左侧导航处:</p> <center> <img src="/docs/images/images-hubble/331导入入口.png" alt="image"> </center> -<h5 id="332创建任务">3.3.2 创建任务</h5> +<h5 id="432创建任务">4.3.2 创建任务</h5> <ol> <li>填写任务名称和备注(非必填),可以创建导入任务。</li> <li>可创建多个导入任务,并行导入。</li> @@ -2128,7 +2235,7 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p> <center> <img src="/docs/images/images-hubble/332创建任务.png" alt="image"> </center> -<h5 id="333上传文件">3.3.3 上传文件</h5> +<h5 id="433上传文件">4.3.3 上传文件</h5> <ol> <li>上传需要构图的文件,目前支持的格式为CSV,后续会不断更新。</li> <li>可同时上传多个文件。</li> @@ -2136,7 +2243,7 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p> <center> <img src="/docs/images/images-hubble/333上传文件.png" alt="image"> </center> -<h5 id="334设置数据映射">3.3.4 设置数据映射</h5> +<h5 id="434设置数据映射">4.3.4 设置数据映射</h5> <ol> <li> <p>对上传的文件分别设置数据映射,包括文件设置和类型设置</p> @@ -2169,7 +2276,7 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p> <center> <img src="/docs/images/images-hubble/334设置映射2.png" alt="image"> </center> -<h5 id="335导入数据">3.3.5 导入数据</h5> +<h5 id="435导入数据">4.3.5 导入数据</h5> <p>导入前需要填写导入设置参数,填写完成后,可开始向图库中导入数据</p> <ol> <li>导入设置</li> @@ -2191,18 +2298,18 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p> <center> <img src="/docs/images/images-hubble/335导入详情.png" alt="image"> </center> -<h4 id="34数据分析">3.4 数据分析</h4> -<h5 id="341模块入口">3.4.1 模块入口</h5> +<h4 id="44数据分析">4.4 数据分析</h4> +<h5 id="441模块入口">4.4.1 模块入口</h5> <p>左侧导航处:</p> <center> <img src="/docs/images/images-hubble/341分析入口.png" alt="image"> </center> -<h5 id="342多图切换">3.4.2 多图切换</h5> +<h5 id="442多图切换">4.4.2 多图切换</h5> <p>通过左侧切换入口,灵活切换多图的操作空间</p> <center> <img src="/docs/images/images-hubble/342多图切换.png" alt="image"> </center> -<h5 id="343图分析与处理">3.4.3 图分析与处理</h5> +<h5 id="443图分析与处理">4.4.3 图分析与处理</h5> <p>HugeGraph支持Apache TinkerPop3的图遍历查询语言Gremlin,Gremlin是一种通用的图数据库查询语言,通过输入Gremlin语句,点击执行,即可执行图数据的查询分析操作,并可实现顶点/边的创建及删除、顶点/边的属性修改等。</p> <p>Gremlin查询后,下方为图结果展示区域,提供3种图结果展示方式,分别为:【图模式】、【表格模式】、【Json模式】。</p> <p>支持缩放、居中、全屏、导出等操作。</p> @@ -2218,9 +2325,9 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p> <center> <img src="/docs/images/images-hubble/343图分析-json.png" alt="image"> </center> -<h5 id="344数据详情">3.4.4 数据详情</h5> +<h5 id="444数据详情">4.4.4 数据详情</h5> <p>点击顶点/边实体,可查看顶点/边的数据详情,包括:顶点/边类型,顶点ID,属性及对应值,拓展图的信息展示维度,提高易用性。</p> -<h5 id="345图结果的多维路径查询">3.4.5 图结果的多维路径查询</h5> +<h5 id="445图结果的多维路径查询">4.4.5 图结果的多维路径查询</h5> <p>除了全局的查询外,可针对查询结果中的顶点进行深度定制化查询以及隐藏操作,实现图结果的定制化挖掘。</p> <p>右击顶点,出现顶点的菜单入口,可进行展示、查询、隐藏等操作。</p> <ul> @@ -2232,8 +2339,8 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p> <center> <img src="/docs/images/images-hubble/345定制路径查询.png" alt="image"> </center> -<h5 id="346新增顶点边">3.4.6 新增顶点/边</h5> -<h6 id="3461新增顶点">3.4.6.1 新增顶点</h6> +<h5 id="446新增顶点边">4.4.6 新增顶点/边</h5> +<h6 id="4461新增顶点">4.4.6.1 新增顶点</h6> <p>在图区可通过两个入口,动态新增顶点,如下:</p> <ol> <li>点击图区面板,出现添加顶点入口</li> @@ -2248,9 +2355,9 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p> <center> <img src="/docs/images/images-hubble/346新增顶点2.png" alt="image"> </center> -<h6 id="3462新增边">3.4.6.2 新增边</h6> +<h6 id="4462新增边">4.4.6.2 新增边</h6> <p>右击图结果中的顶点,可增加该点的出边或者入边。</p> -<h5 id="347执行记录与收藏的查询">3.4.7 执行记录与收藏的查询</h5> +<h5 id="447执行记录与收藏的查询">4.4.7 执行记录与收藏的查询</h5> <ol> <li>图区下方记载每次查询记录,包括:查询时间、执行类型、内容、状态、耗时、以及【收藏】和【加载】操作,实现图执行的全方位记录,有迹可循,并可对执行内容快速加载复用</li> <li>提供语句的收藏功能,可对常用语句进行收藏操作,方便高频语句快速调用</li> @@ -2258,13 +2365,13 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p> <center> <img src="/docs/images/images-hubble/347收藏.png" alt="image"> </center> -<h4 id="35任务管理">3.5 任务管理</h4> -<h5 id="351模块入口">3.5.1 模块入口</h5> +<h4 id="45任务管理">4.5 任务管理</h4> +<h5 id="451模块入口">4.5.1 模块入口</h5> <p>左侧导航处:</p> <center> <img src="/docs/images/images-hubble/351任务管理入口.png" alt="image"> </center> -<h5 id="352任务管理">3.5.2 任务管理</h5> +<h5 id="452任务管理">4.5.2 任务管理</h5> <ol> <li>提供异步任务的统一的管理与结果查看,异步任务包括4类,分别为:</li> </ol> @@ -2283,7 +2390,7 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p> <center> <img src="/docs/images/images-hubble/352任务列表.png" alt="image"> </center> -<h5 id="353gremlin异步任务">3.5.3 Gremlin异步任务</h5> +<h5 id="453gremlin异步任务">4.5.3 Gremlin异步任务</h5> <p>1.创建任务</p> <ul> <li>数据分析模块,目前支持两种Gremlin操作,Gremlin查询和Gremlin任务;若用户切换到Gremlin任务,点击执行后,在异步任务中心会建立一条异步任务; @@ -2303,9 +2410,9 @@ HugeGraph Toolchain 版本: toolchain-1.0.0</p> <ul> <li>结果通过json形式展示</li> </ul> -<h5 id="354olap算法任务">3.5.4 OLAP算法任务</h5> +<h5 id="454olap算法任务">4.5.4 OLAP算法任务</h5> <p>Hubble上暂未提供可视化的OLAP算法执行,可调用RESTful API进行OLAP类算法任务,在任务管理中通过ID找到相应任务,查看进度与结果等。</p> -<h5 id="355删除元数据重建索引">3.5.5 删除元数据、重建索引</h5> +<h5 id="455删除元数据重建索引">4.5.5 删除元数据、重建索引</h5> <p>1.创建任务</p> <ul> <li>在元数据建模模块中,删除元数据时,可建立删除元数据的异步任务</li> diff --git a/cn/sitemap.xml b/cn/sitemap.xml index a651944c5..7cd00db1e 100644 --- a/cn/sitemap.xml +++ b/cn/sitemap.xml @@ -1 +1 @@ -/cn/docs/guides/architectural/2023-06-25T21:06:07+08:00/cn/docs/config/config-guide/2023-06-21T14:48:04+08:00/cn/docs/language/hugegraph-gremlin/2023-01-01T16:16:43+08:00/cn/docs/performance/hugegraph-benchmark-0.5.6/2022-09-15T15:16:23+08:00/cn/docs/quickstart/hugegraph-server/2023-06-25T21:06:07+08:00/cn/docs/introduction/readme/2023-06-18T14:57:33+08:00/cn/docs/changelog/hugegraph-1.0.0-release-notes/2023-01-09T07:41:46+08:00/cn/docs/clients/restful-api/2023-07-31T23:55:30+08:00/cn/docs/clients/restful-api/schema/2023-05-14T19:35:13+08:00/cn/docs/performance/api-preformance/hugegraph-api-0.5.6-rocksdb/2023-01-01T16:16:43+08:00/cn/docs/contribution-guidelines/contribute/2023-09-09T20:50:32+08:00/cn/docs/config/config-option/2023-02-08T20:56:09+08:00/cn/docs/guides/desgin-concept/2022-04-17T11:36:55+08:00/cn/docs/download/download/2023-06-17T14:43:04+08:00/cn/docs/language/hugegraph-example/2023-02-02T01:21:10+08:00/cn/docs/clients/hugegraph-client/2022-09-15T15:16:23+08:00/cn/docs/performance/api-preformance/2023-06-17T14:43:04+08:00/cn/docs/quickstart/hugegraph-loader/2023-05-17T23:12:35+08:00/cn/docs/clients/restful-api/propertykey/2023-05-19T05:15:56-05:00/cn/docs/changelog/hugegraph-0.11.2-release-notes/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.12.0-release-notes/2023-01-01T16:16:43+08:00/cn/docs/performance/api-preformance/hugegraph-api-0.5.6-cassandra/2023-01-01T16:16:43+08:00/cn/docs/contribution-guidelines/subscribe/2023-06-17T14:43:04+08:00/cn/docs/config/config-authentication/2022-04-17T11:36:55+08:00/cn/docs/clients/gremlin-console/2023-06-12T23:52:07+08:00/cn/docs/guides/custom-plugin/2022-09-15T15:16:23+08:00/cn/docs/performance/hugegraph-loader-performance/2022-04-17T11:36:55+08:00/cn/docs/quickstart/hugegraph-tools/2023-05-09T21:27:34+08:00/cn/docs/quickstart/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.10.4-release-notes/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/vertexlabel/2022-04-17T11:36:55+08:00/cn/docs/contribution-guidelines/validate-release/2023-02-15T16:14:21+08:00/cn/docs/guides/backup-restore/2022-04-17T11:36:55+08:00/cn/docs/config/2022-04-17T11:36:55+08:00/cn/docs/config/config-https/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/edgelabel/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.9.2-release-notes/2022-04-17T11:36:55+08:00/cn/docs/quickstart/hugegraph-hubble/2023-01-01T16:16:43+08:00/cn/docs/contribution-guidelines/hugegraph-server-idea-setup/2023-06-25T21:06:07+08:00/cn/docs/clients/2022-04-17T11:36:55+08:00/cn/docs/config/config-computer/2023-01-01T16:16:43+08:00/cn/docs/guides/faq/2023-01-04T22:59:07+08:00/cn/docs/clients/restful-api/indexlabel/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.8.0-release-notes/2022-04-17T11:36:55+08:00/cn/docs/quickstart/hugegraph-client/2023-05-18T11:09:55+08:00/cn/docs/guides/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/rebuild/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.7.4-release-notes/2022-04-17T11:36:55+08:00/cn/docs/quickstart/hugegraph-computer/2023-06-25T21:06:46+08:00/cn/docs/language/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.6.1-release-notes/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/vertex/2023-06-04T23:04:47+08:00/cn/docs/clients/restful-api/edge/2023-06-29T10:17:29+08:00/cn/docs/performance/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.5.6-release-notes/2022-04-17T11:36:55+08:00/cn/docs/changelog/2022-04-17T11:36:55+08:00/cn/docs/contribution-guidelines/2022-12-30T19:57:48+08:00/cn/docs/changelog/hugegraph-0.4.4-release-notes/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/traverser/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/rank/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.3.3-release-notes/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.2-release-notes/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/variable/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/graphs/2022-05-27T09:27:37+08:00/cn/docs/changelog/hugegraph-0.2.4-release-notes/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/task/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/gremlin/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/cypher/2023-07-31T23:55:30+08:00/cn/docs/clients/restful-api/auth/2023-07-31T23:55:30+08:00/cn/docs/clients/restful-api/other/2023-07-31T23:55:30+08:00/cn/docs/2022-12-30T19:57:48+08:00/cn/blog/news/2022-04-17T11:36:55+08:00/cn/blog/releases/2022-04-17T11:36:55+08:00/cn/blog/2018/10/06/easy-documentation-with-docsy/2022-04-17T11:36:55+08:00/cn/blog/2018/10/06/the-second-blog-post/2022-04-17T11:36:55+08:00/cn/blog/2018/01/04/another-great-release/2022-04-17T11:36:55+08:00/cn/docs/cla/2022-04-17T11:36:55+08:00/cn/docs/performance/hugegraph-benchmark-0.4.4/2022-09-15T15:16:23+08:00/cn/docs/summary/2023-07-31T23:55:30+08:00/cn/blog/2022-04-17T11:36:55+08:00/cn/categories//cn/community/2022-04-17T11:36:55+08:00/cn/2023-01-04T22:59:07+08:00/cn/search/2022-04-17T11:36:55+08:00/cn/tags/ \ No newline at end of file +/cn/docs/guides/architectural/2023-06-25T21:06:07+08:00/cn/docs/config/config-guide/2023-06-21T14:48:04+08:00/cn/docs/language/hugegraph-gremlin/2023-01-01T16:16:43+08:00/cn/docs/performance/hugegraph-benchmark-0.5.6/2022-09-15T15:16:23+08:00/cn/docs/quickstart/hugegraph-server/2023-09-12T12:18:04+08:00/cn/docs/introduction/readme/2023-06-18T14:57:33+08:00/cn/docs/changelog/hugegraph-1.0.0-release-notes/2023-01-09T07:41:46+08:00/cn/docs/clients/restful-api/2023-07-31T23:55:30+08:00/cn/docs/clients/restful-api/schema/2023-05-14T19:35:13+08:00/cn/docs/performance/api-preformance/hugegraph-api-0.5.6-rocksdb/2023-01-01T16:16:43+08:00/cn/docs/contribution-guidelines/contribute/2023-09-09T20:50:32+08:00/cn/docs/config/config-option/2023-02-08T20:56:09+08:00/cn/docs/guides/desgin-concept/2022-04-17T11:36:55+08:00/cn/docs/download/download/2023-06-17T14:43:04+08:00/cn/docs/language/hugegraph-example/2023-02-02T01:21:10+08:00/cn/docs/clients/hugegraph-client/2022-09-15T15:16:23+08:00/cn/docs/performance/api-preformance/2023-06-17T14:43:04+08:00/cn/docs/quickstart/hugegraph-loader/2023-05-17T23:12:35+08:00/cn/docs/clients/restful-api/propertykey/2023-05-19T05:15:56-05:00/cn/docs/changelog/hugegraph-0.11.2-release-notes/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.12.0-release-notes/2023-01-01T16:16:43+08:00/cn/docs/performance/api-preformance/hugegraph-api-0.5.6-cassandra/2023-01-01T16:16:43+08:00/cn/docs/contribution-guidelines/subscribe/2023-06-17T14:43:04+08:00/cn/docs/config/config-authentication/2022-04-17T11:36:55+08:00/cn/docs/clients/gremlin-console/2023-06-12T23:52:07+08:00/cn/docs/guides/custom-plugin/2022-09-15T15:16:23+08:00/cn/docs/performance/hugegraph-loader-performance/2022-04-17T11:36:55+08:00/cn/docs/quickstart/hugegraph-tools/2023-05-09T21:27:34+08:00/cn/docs/quickstart/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.10.4-release-notes/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/vertexlabel/2022-04-17T11:36:55+08:00/cn/docs/contribution-guidelines/validate-release/2023-02-15T16:14:21+08:00/cn/docs/guides/backup-restore/2022-04-17T11:36:55+08:00/cn/docs/config/2022-04-17T11:36:55+08:00/cn/docs/config/config-https/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/edgelabel/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.9.2-release-notes/2022-04-17T11:36:55+08:00/cn/docs/quickstart/hugegraph-hubble/2023-09-12T12:18:04+08:00/cn/docs/contribution-guidelines/hugegraph-server-idea-setup/2023-06-25T21:06:07+08:00/cn/docs/clients/2022-04-17T11:36:55+08:00/cn/docs/config/config-computer/2023-01-01T16:16:43+08:00/cn/docs/guides/faq/2023-01-04T22:59:07+08:00/cn/docs/clients/restful-api/indexlabel/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.8.0-release-notes/2022-04-17T11:36:55+08:00/cn/docs/quickstart/hugegraph-client/2023-05-18T11:09:55+08:00/cn/docs/guides/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/rebuild/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.7.4-release-notes/2022-04-17T11:36:55+08:00/cn/docs/quickstart/hugegraph-computer/2023-06-25T21:06:46+08:00/cn/docs/language/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.6.1-release-notes/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/vertex/2023-06-04T23:04:47+08:00/cn/docs/clients/restful-api/edge/2023-06-29T10:17:29+08:00/cn/docs/performance/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.5.6-release-notes/2022-04-17T11:36:55+08:00/cn/docs/changelog/2022-04-17T11:36:55+08:00/cn/docs/contribution-guidelines/2022-12-30T19:57:48+08:00/cn/docs/changelog/hugegraph-0.4.4-release-notes/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/traverser/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/rank/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.3.3-release-notes/2022-04-17T11:36:55+08:00/cn/docs/changelog/hugegraph-0.2-release-notes/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/variable/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/graphs/2022-05-27T09:27:37+08:00/cn/docs/changelog/hugegraph-0.2.4-release-notes/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/task/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/gremlin/2022-04-17T11:36:55+08:00/cn/docs/clients/restful-api/cypher/2023-07-31T23:55:30+08:00/cn/docs/clients/restful-api/auth/2023-07-31T23:55:30+08:00/cn/docs/clients/restful-api/other/2023-07-31T23:55:30+08:00/cn/docs/2022-12-30T19:57:48+08:00/cn/blog/news/2022-04-17T11:36:55+08:00/cn/blog/releases/2022-04-17T11:36:55+08:00/cn/blog/2018/10/06/easy-documentation-with-docsy/2022-04-17T11:36:55+08:00/cn/blog/2018/10/06/the-second-blog-post/2022-04-17T11:36:55+08:00/cn/blog/2018/01/04/another-great-release/2022-04-17T11:36:55+08:00/cn/docs/cla/2022-04-17T11:36:55+08:00/cn/docs/performance/hugegraph-benchmark-0.4.4/2022-09-15T15:16:23+08:00/cn/docs/summary/2023-07-31T23:55:30+08:00/cn/blog/2022-04-17T11:36:55+08:00/cn/categories//cn/community/2022-04-17T11:36:55+08:00/cn/2023-01-04T22:59:07+08:00/cn/search/2022-04-17T11:36:55+08:00/cn/tags/ \ No newline at end of file diff --git a/docs/_print/index.html b/docs/_print/index.html index ec4ef80ee..854bb85ef 100644 --- a/docs/_print/index.html +++ b/docs/_print/index.html @@ -213,7 +213,7 @@ }

    For detailed API, please refer to RESTful-API

    7 Stop Server

    $cd hugegraph-${version}
     $bin/stop-hugegraph.sh
    -

    8 Debug Server with IntelliJ IDEA

    Please refer to Setup Server in IDEA

    9 Create Sample Graph on Server Startup

    Modify conf/gremlin-server.yaml and change empty-sample.groovy to example.groovy:

    org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {
    +

    8 Debug Server with IntelliJ IDEA

    Please refer to Setup Server in IDEA

    9 Create Sample Graph on Server Startup

    There are three ways to create sample graph on server startup

    9.1 Modify the configuration file directly.

    Modify conf/gremlin-server.yaml and change empty-sample.groovy to example.groovy:

    org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {
         files: [scripts/example.groovy]
     }
     

    Modify scripts/example.groovy as follows:

    conf = "conf/graphs/hugegraph.properties"
    @@ -234,7 +234,25 @@
                                      Dload  Upload   Total   Spent    Left  Speed
     100   222  100   222    0     0   3163      0 --:--:-- --:--:-- --:--:--  3964
     {"vertices":[{"id":"2:lop","label":"software","type":"vertex","properties":{"name":"lop","lang":"java","price":328}},{"id":"1:josh","label":"person","type":"vertex","properties":{"name":"josh","age":32,"city":"Beijing"}},{"id":"1:marko","label":"person","type":"vertex","properties":{"name":"marko","age":29,"city":"Beijing"}},{"id":"1:peter","label":"person","type":"vertex","properties":{"name":"peter","age":35,"city":"Shanghai"}},{"id":"1:vadas","label":"person","type":"vertex","properties":{"name":"vadas","age":27,"city":"Hongkong"}},{"id":"2:ripple","label":"software","type":"vertex","properties":{"name":"ripple","lang":"java","price":199}}]}
    -

    indicating the successful creation of the sample graph.

    The process of creating sample graph on server startup is similar when using IntelliJ IDEA and will not be described further.

    3.2 - HugeGraph-Loader Quick Start

    1 HugeGraph-Loader Overview

    HugeGraph-Loader is the data import component of HugeGraph, which can convert data from various data sources into graph vertices and edges and import them into the graph database in batches.

    Currently supported data sources include:

    • Local disk file or directory, supports TEXT, CSV and JSON format files, supports compressed files
    • HDFS file or directory, supports compressed files
    • Mainstream relational databases, such as MySQL, PostgreSQL, Oracle, SQL Server

    Local disk files and HDFS files support resumable uploads.

    It will be explained in detail below.

    Note: HugeGraph-Loader requires HugeGraph Server service, please refer to HugeGraph-Server Quick Start to download and start Server

    2 Get HugeGraph-Loader

    There are two ways to get HugeGraph-Loader:

    • Download the compiled tarball
    • Clone source code then compile and install

    2.1 Download the compiled archive

    Download the latest version of the HugeGraph-Toolchain release package:

    wget https://downloads.apache.org/incubator/hugegraph/1.0.0/apache-hugegraph-toolchain-incubating-1.0.0.tar.gz
    +

    indicating the successful creation of the sample graph.

    The process of creating sample graph on server startup is similar when using IntelliJ IDEA and will not be described further.

    9.2 Specify command-line arguments in the startup script.

    Carry the -p true arguments when starting the script, which indicates preload, to create a sample graph.

    bin/start-hugegraph.sh -p true
    +Starting HugeGraphServer in daemon mode...
    +Connecting to HugeGraphServer (http://127.0.0.1:8080/graphs)......OK
    +

    And use the RESTful API to request HugeGraphServer and get the following result:

    > curl "http://localhost:8080/graphs/hugegraph/graph/vertices" | gunzip
    +
    +{"vertices":[{"id":"2:lop","label":"software","type":"vertex","properties":{"name":"lop","lang":"java","price":328}},{"id":"1:josh","label":"person","type":"vertex","properties":{"name":"josh","age":32,"city":"Beijing"}},{"id":"1:marko","label":"person","type":"vertex","properties":{"name":"marko","age":29,"city":"Beijing"}},{"id":"1:peter","label":"person","type":"vertex","properties":{"name":"peter","age":35,"city":"Shanghai"}},{"id":"1:vadas","label":"person","type":"vertex","properties":{"name":"vadas","age":27,"city":"Hongkong"}},{"id":"2:ripple","label":"software","type":"vertex","properties":{"name":"ripple","lang":"java","price":199}}]}
    +

    This indicates the successful creation of the sample graph.

    9.3 Use Docker or Docker Compose to add environment variables.

    Set the environment variable PRELOAD=true when starting Docker in order to load data during the execution of the startup script.

    1. Use docker run

      Use docker run -itd --name=graph -p 18080:8080 -e PRELOAD=true hugegraph/hugegraph:latest

    2. Use docker-compose

      Create docker-compose.yml as following

      version: '3'
      +  services:
      +    graph:
      +      image: hugegraph/hugegraph:latest
      +      container_name: graph
      +      environment:
      +        - PRELOAD=true
      +      ports:
      +        - 18080:8080
      +

      Use docker-compose up -d to start the container

    And use the RESTful API to request HugeGraphServer and get the following result:

    > curl "http://localhost:8080/graphs/hugegraph/graph/vertices" | gunzip
    +
    +{"vertices":[{"id":"2:lop","label":"software","type":"vertex","properties":{"name":"lop","lang":"java","price":328}},{"id":"1:josh","label":"person","type":"vertex","properties":{"name":"josh","age":32,"city":"Beijing"}},{"id":"1:marko","label":"person","type":"vertex","properties":{"name":"marko","age":29,"city":"Beijing"}},{"id":"1:peter","label":"person","type":"vertex","properties":{"name":"peter","age":35,"city":"Shanghai"}},{"id":"1:vadas","label":"person","type":"vertex","properties":{"name":"vadas","age":27,"city":"Hongkong"}},{"id":"2:ripple","label":"software","type":"vertex","properties":{"name":"ripple","lang":"java","price":199}}]}
    +

    This indicates the successful creation of the sample graph.

    3.2 - HugeGraph-Loader Quick Start

    1 HugeGraph-Loader Overview

    HugeGraph-Loader is the data import component of HugeGraph, which can convert data from various data sources into graph vertices and edges and import them into the graph database in batches.

    Currently supported data sources include:

    • Local disk file or directory, supports TEXT, CSV and JSON format files, supports compressed files
    • HDFS file or directory, supports compressed files
    • Mainstream relational databases, such as MySQL, PostgreSQL, Oracle, SQL Server

    Local disk files and HDFS files support resumable uploads.

    It will be explained in detail below.

    Note: HugeGraph-Loader requires HugeGraph Server service, please refer to HugeGraph-Server Quick Start to download and start Server

    2 Get HugeGraph-Loader

    There are two ways to get HugeGraph-Loader:

    • Download the compiled tarball
    • Clone source code then compile and install

    2.1 Download the compiled archive

    Download the latest version of the HugeGraph-Toolchain release package:

    wget https://downloads.apache.org/incubator/hugegraph/1.0.0/apache-hugegraph-toolchain-incubating-1.0.0.tar.gz
     tar zxf *hugegraph*.tar.gz
     

    2.2 Clone source code to compile and install

    Clone the latest version of HugeGraph-Loader source package:

    # 1. get from github
     git clone https://github.com/apache/hugegraph-toolchain.git
    @@ -1063,7 +1081,44 @@
     # restore graph mode
     ./bin/hugegraph --url http://127.0.0.1:8080 --graph hugegraph graph-mode-set -m NONE
     
    8. Graph Migration
    ./bin/hugegraph --url http://127.0.0.1:8080 --graph hugegraph migrate --target-url http://127.0.0.1:8090 --target-graph hugegraph
    -

    3.4 - HugeGraph-Hubble Quick Start

    1 HugeGraph-Hubble Overview

    HugeGraph is an analysis-oriented graph database system that supports batch operations, which fully supports Apache TinkerPop3 framework and Gremlin graph query language. It provides a complete tool chain ecology such as export, backup, and recovery, and effectively solve the storage, query and correlation analysis needs of massive graph data. HugeGraph is widely used in the fields of risk control, insurance claims, recommendation search, public security crime crackdown, knowledge graph, network security, IT operation and maintenance of bank securities companies, and is committed to allowing more industries, organizations and users to enjoy a wider range of data comprehensive value.

    HugeGraph-Hubble is HugeGraph’s one-stop visual analysis platform. The platform covers the whole process from data modeling, to efficient data import, to real-time and offline analysis of data, and unified management of graphs, realizing the whole process wizard of graph application. It is designed to improve the user’s use fluency, lower the user’s use threshold, and provide a more efficient and easy-to-use user experience.

    The platform mainly includes the following modules:

    Graph Management

    The graph management module realizes the unified management of multiple graphs and graph access, editing, deletion, and query by creating graph and connecting the platform and graph data.

    Metadata Modeling

    The metadata modeling module realizes the construction and management of graph models by creating attribute libraries, vertex types, edge types, and index types. The platform provides two modes, list mode and graph mode, which can display the metadata model in real time, which is more intuitive. At the same time, it also provides a metadata reuse function across graphs, which saves the tedious and repetitive creation process of the same metadata, greatly improves modeling efficiency and enhances ease of use.

    Data Import

    Data import is to convert the user’s business data into the vertices and edges of the graph and insert it into the graph database. The platform provides a wizard-style visual import module. By creating import tasks, the management of import tasks and the parallel operation of multiple import tasks are realized. Improve import performance. After entering the import task, you only need to follow the platform step prompts, upload files as needed, and fill in the content to easily implement the import process of graph data. At the same time, it supports breakpoint resuming, error retry mechanism, etc., which reduces import costs and improves efficiency.

    Graph Analysis

    By inputting the graph traversal language Gremlin, high-performance general analysis of graph data can be realized, and functions such as customized multidimensional path query of vertices can be provided, and three kinds of graph result display methods are provided, including: graph form, table form, Json form, and multidimensional display. The data form meets the needs of various scenarios used by users. It provides functions such as running records and collection of common statements, realizing the traceability of graph operations, and the reuse and sharing of query input, which is fast and efficient. It supports the export of graph data, and the export format is Json format.

    Task Management

    For Gremlin tasks that need to traverse the whole graph, index creation and reconstruction and other time-consuming asynchronous tasks, the platform provides corresponding task management functions to achieve unified management and result viewing of asynchronous tasks.

    2 Platform Workflow

    The module usage process of the platform is as follows:

    image

    3 Platform Instructions

    3.1 Graph Management

    3.1.1 Graph creation

    Under the graph management module, click [Create graph], and realize the connection of multiple graphs by filling in the graph ID, graph name, host name, port number, username, and password information.

    image

    Create graph by filling in the content as follows::

    image
    3.1.2 Graph Access

    Realize the information access of the graph space. After entering, you can perform operations such as multidimensional query analysis, metadata management, data import, and algorithm analysis of the graph.

    image
    3.1.3 Graph management
    1. Users can achieve unified management of graphs through overview, search, and information editing and deletion of single graphs.
    2. Search range: You can search for the graph name and ID.
    image

    3.2 Metadata Modeling (list + graph mode)

    3.2.1 Module entry

    Left navigation:

    image
    3.2.2 Property type
    3.2.2.1 Create type
    1. Fill in or select the attribute name, data type, and cardinality to complete the creation of the attribute.
    2. Created attributes can be used as attributes of vertex type and edge type.

    List mode:

    image

    Graph mode:

    image
    3.2.2.2 Reuse
    1. The platform provides the [Reuse] function, which can directly reuse the metadata of other graphs.
    2. Select the graph ID that needs to be reused, and continue to select the attributes that need to be reused. After that, the platform will check whether there is a conflict. After passing, the metadata can be reused.

    Select reuse items:

    image

    Check reuse items:

    image
    3.2.2.3 Management
    1. You can delete a single item or delete it in batches in the attribute list.
    3.2.3 Vertex type
    3.2.3.1 Create type
    1. Fill in or select the vertex type name, ID strategy, association attribute, primary key attribute, vertex style, content displayed below the vertex in the query result, and index information: including whether to create a type index, and the specific content of the attribute index, complete the vertex Type creation.

    List mode:

    image

    Graph mode:

    image
    3.2.3.2 Reuse
    1. The multiplexing of vertex types will reuse the attributes and attribute indexes associated with this type together.
    2. The reuse method is similar to the property reuse, see 3.2.2.2.
    3.2.3.3 Administration
    1. Editing operations are available. The vertex style, association type, vertex display content, and attribute index can be edited, and the rest cannot be edited.

    2. You can delete a single item or delete it in batches.

    image
    3.2.4 Edge Types
    3.2.4.1 Create
    1. Fill in or select the edge type name, start point type, end point type, associated attributes, whether to allow multiple connections, edge style, content displayed below the edge in the query result, and index information: including whether to create a type index, and attribute index The specific content, complete the creation of the edge type.

    List mode:

    image

    Graph mode:

    image
    3.2.4.2 Reuse
    1. The reuse of the edge type will reuse the start point type, end point type, associated attribute and attribute index of this type.
    2. The reuse method is similar to the property reuse, see 3.2.2.2.
    3.2.4.3 Administration
    1. Editing operations are available. Edge styles, associated attributes, edge display content, and attribute indexes can be edited, and the rest cannot be edited, the same as the vertex type.
    2. You can delete a single item or delete it in batches.
    3.2.5 Index Types

    Displays vertex and edge indices for vertex types and edge types.

    3.3 Data Import

    The usage process of data import is as follows:

    image
    3.3.1 Module entrance

    Left navigation:

    image
    3.3.2 Create task
    1. Fill in the task name and remarks (optional) to create an import task.
    2. Multiple import tasks can be created and imported in parallel.
    image
    3.3.3 Uploading files
    1. Upload the file that needs to be composed. The currently supported format is CSV, which will be updated continuously in the future.
    2. Multiple files can be uploaded at the same time.
    image
    3.3.4 Setting up data mapping
    1. Set up data mapping for uploaded files, including file settings and type settings

    2. File settings: Check or fill in whether to include the header, separator, encoding format and other settings of the file itself, all set the default values, no need to fill in manually

    3. Type setting:

      1. Vertex map and edge map:

        【Vertex Type】: Select the vertex type, and upload the column data in the file for its ID mapping;

        【Edge Type】: Select the edge type and map the column data of the uploaded file to the ID column of its start point type and end point type;

      2. Mapping settings: upload the column data in the file for the attribute mapping of the selected vertex type. Here, if the attribute name is the same as the header name of the file, the mapping attribute can be automatically matched, and there is no need to manually fill in the selection.

      3. After completing the setting, the setting list will be displayed before proceeding to the next step. It supports the operations of adding, editing and deleting mappings.

    Fill in the settings map:

    image

    Mapping list:

    image
    3.3.5 Import data

    Before importing, you need to fill in the import setting parameters. After filling in, you can start importing data into the gallery.

    1. Import settings
    • The import setting parameter items are as shown in the figure below, all set the default value, no need to fill in manually
    image
    1. Import details
    • Click Start Import to start the file import task
    • The import details provide the mapping type, import speed, import progress, time-consuming and the specific status of the current task set for each uploaded file, and can pause, resume, stop and other operations for each task
    • If the import fails, you can view the specific reason
    image

    3.4 Data Analysis

    3.4.1 Module entry

    Left navigation:

    image
    3.4.2 Multi-image switching

    By switching the entrance on the left, flexibly switch the operation space of multiple graphs

    image
    3.4.3 Graph Analysis and Processing

    HugeGraph supports Gremlin, a graph traversal query language of Apache TinkerPop3. Gremlin is a general graph database query language. By entering Gremlin statements and clicking execute, you can perform query and analysis operations on graph data, and create and delete vertices/edges. , vertex/edge attribute modification, etc.

    After Gremlin query, below is the graph result display area, which provides 3 kinds of graph result display modes: [Graph Mode], [Table Mode], [Json Mode].

    Support zoom, center, full screen, export and other operations.

    【Picture Mode】

    image

    【Table mode】

    image

    【Json mode】

    image
    3.4.4 Data Details

    Click the vertex/edge entity to view the data details of the vertex/edge, including: vertex/edge type, vertex ID, attribute and corresponding value, expand the information display dimension of the graph, and improve the usability.

    3.4.5 Multidimensional Path Query of Graph Results

    In addition to the global query, in-depth customized query and hidden operations can be performed for the vertices in the query result to realize customized mining of graph results.

    Right-click a vertex, and the menu entry of the vertex appears, which can be displayed, inquired, hidden, etc.

    • Expand: Click to display the vertices associated with the selected point.
    • Query: By selecting the edge type and edge direction associated with the selected point, and then selecting its attributes and corresponding filtering rules under this condition, a customized path display can be realized.
    • Hide: When clicked, hides the selected point and its associated edges.

    Double-clicking a vertex also displays the vertex associated with the selected point.

    image
    3.4.6 Add vertex/edge
    3.4.6.1 Added vertex

    In the graph area, two entries can be used to dynamically add vertices, as follows:

    1. Click on the graph area panel, the Add Vertex entry appears
    2. Click the first icon in the action bar in the upper right corner

    Complete the addition of vertices by selecting or filling in the vertex type, ID value, and attribute information.

    The entry is as follows:

    image

    Add the vertex content as follows:

    image
    3.4.6.2 Add edge

    Right-click a vertex in the graph result to add the outgoing or incoming edge of that point.

    3.4.7 Execute the query of records and favorites
    1. Record each query record at the bottom of the graph area, including: query time, execution type, content, status, time-consuming, as well as [collection] and [load] operations, to achieve a comprehensive record of graph execution, with traces to follow, and Can quickly load and reuse execution content
    2. Provides the function of collecting sentences, which can be used to collect frequently used sentences, which is convenient for fast calling of high-frequency sentences.
    image

    3.5 Task Management

    3.5.1 Module entry

    Left navigation:

    image
    3.5.2 Task Management
    1. Provide unified management and result viewing of asynchronous tasks. There are 4 types of asynchronous tasks, namely:
    • gremlin: Gremlin tasks
    • algorithm: OLAP algorithm task
    • remove_schema: remove metadata
    • rebuild_index: rebuild the index
    1. The list displays the asynchronous task information of the current graph, including: task ID, task name, task type, creation time, time-consuming, status, operation, and realizes the management of asynchronous tasks.
    2. Support filtering by task type and status
    3. Support searching for task ID and task name
    4. Asynchronous tasks can be deleted or deleted in batches
    image
    3.5.3 Gremlin asynchronous tasks
    1. Create a task
    • The data analysis module currently supports two Gremlin operations, Gremlin query and Gremlin task; if the user switches to the Gremlin task, after clicking execute, an asynchronous task will be created in the asynchronous task center;
    1. Task submission
    • After the task is submitted successfully, the graph area returns the submission result and task ID
    1. Mission details
    • Provide [View] entry, you can jump to the task details to view the specific execution of the current task After jumping to the task center, the currently executing task line will be displayed directly
    image

    Click to view the entry to jump to the task management list, as follows:

    image
    1. View the results
    • The results are displayed in the form of json
    3.5.4 OLAP algorithm tasks

    There is no visual OLAP algorithm execution on Hubble. You can call the RESTful API to perform OLAP algorithm tasks, find the corresponding tasks by ID in the task management, and view the progress and results.

    3.5.5 Delete metadata, rebuild index
    1. Create a task
    • In the metadata modeling module, when deleting metadata, an asynchronous task for deleting metadata can be created
    image
    • When editing an existing vertex/edge type operation, when adding an index, an asynchronous task of creating an index can be created
    image
    1. Task details
    • After confirming/saving, you can jump to the task center to view the details of the current task
    image

    3.5 - HugeGraph-Client Quick Start

    1 Overview Of Hugegraph

    HugeGraph-Client sends HTTP request to HugeGraph-Server to obtain and parse the execution result of Server. Currently only the HugeGraph-Client for Java is provided. You can use HugeGraph-Client to write Java code to operate HugeGraph, such as adding, deleting, modifying, and querying schema and graph data, or executing gremlin statements.

    2 What You Need

    • Java 11 (also support Java 8)
    • Maven 3.5+

    3 How To Use

    The basic steps to use HugeGraph-Client are as follows:

    • Build a new Maven project by IDEA or Eclipse
    • Add HugeGraph-Client dependency in pom file;
    • Create an object to invoke the interface of HugeGraph-Client

    See the complete example in the following section for the detail.

    4 Complete Example

    4.1 Build New Maven Project

    Using IDEA or Eclipse to create the project:

    4.2 Add Hugegraph-Client Dependency In POM

    <dependencies>
    +

    3.4 - HugeGraph-Hubble Quick Start

    1 HugeGraph-Hubble Overview

    HugeGraph is an analysis-oriented graph database system that supports batch operations, which fully supports Apache TinkerPop3 framework and Gremlin graph query language. It provides a complete tool chain ecology such as export, backup, and recovery, and effectively solve the storage, query and correlation analysis needs of massive graph data. HugeGraph is widely used in the fields of risk control, insurance claims, recommendation search, public security crime crackdown, knowledge graph, network security, IT operation and maintenance of bank securities companies, and is committed to allowing more industries, organizations and users to enjoy a wider range of data comprehensive value.

    HugeGraph-Hubble is HugeGraph’s one-stop visual analysis platform. The platform covers the whole process from data modeling, to efficient data import, to real-time and offline analysis of data, and unified management of graphs, realizing the whole process wizard of graph application. It is designed to improve the user’s use fluency, lower the user’s use threshold, and provide a more efficient and easy-to-use user experience.

    The platform mainly includes the following modules:

    Graph Management

    The graph management module realizes the unified management of multiple graphs and graph access, editing, deletion, and query by creating graph and connecting the platform and graph data.

    Metadata Modeling

    The metadata modeling module realizes the construction and management of graph models by creating attribute libraries, vertex types, edge types, and index types. The platform provides two modes, list mode and graph mode, which can display the metadata model in real time, which is more intuitive. At the same time, it also provides a metadata reuse function across graphs, which saves the tedious and repetitive creation process of the same metadata, greatly improves modeling efficiency and enhances ease of use.

    Data Import

    Data import is to convert the user’s business data into the vertices and edges of the graph and insert it into the graph database. The platform provides a wizard-style visual import module. By creating import tasks, the management of import tasks and the parallel operation of multiple import tasks are realized. Improve import performance. After entering the import task, you only need to follow the platform step prompts, upload files as needed, and fill in the content to easily implement the import process of graph data. At the same time, it supports breakpoint resuming, error retry mechanism, etc., which reduces import costs and improves efficiency.

    Graph Analysis

    By inputting the graph traversal language Gremlin, high-performance general analysis of graph data can be realized, and functions such as customized multidimensional path query of vertices can be provided, and three kinds of graph result display methods are provided, including: graph form, table form, Json form, and multidimensional display. The data form meets the needs of various scenarios used by users. It provides functions such as running records and collection of common statements, realizing the traceability of graph operations, and the reuse and sharing of query input, which is fast and efficient. It supports the export of graph data, and the export format is Json format.

    Task Management

    For Gremlin tasks that need to traverse the whole graph, index creation and reconstruction and other time-consuming asynchronous tasks, the platform provides corresponding task management functions to achieve unified management and result viewing of asynchronous tasks.

    2 Deploy

    There are three ways to deplot hugegraph-hubble

    • Download the Toolchain binary package
    • Source code compilation
    • Use Docker

    2.1 Download the Toolchain binary package

    hubble is in the toolchain project. First, download the binary tar tarball

    wget https://downloads.apache.org/incubator/hugegraph/1.0.0/apache-hugegraph-toolchain-incubating-{version}.tar.gz
    +tar -xvf apache-hugegraph-toolchain-incubating-{version}.tar.gz 
    +cd apache-hugegraph-toolchain-incubating-{version}.tar.gz/apache-hugegraph-hubble-incubating-{version}
    +

    Run hubble

    bin/start-hubble.sh
    +

    Then, we can see:

    starting HugeGraphHubble ..............timed out with http status 502
    +2023-08-30 20:38:34 [main] [INFO ] o.a.h.HugeGraphHubble [] - Starting HugeGraphHubble v1.0.0 on cpu05 with PID xxx (~/apache-hugegraph-toolchain-incubating-1.0.0/apache-hugegraph-hubble-incubating-1.0.0/lib/hubble-be-1.0.0.jar started by $USER in ~/apache-hugegraph-toolchain-incubating-1.0.0/apache-hugegraph-hubble-incubating-1.0.0)
    +...
    +2023-08-30 20:38:38 [main] [INFO ] c.z.h.HikariDataSource [] - hugegraph-hubble-HikariCP - Start completed.
    +2023-08-30 20:38:41 [main] [INFO ] o.a.c.h.Http11NioProtocol [] - Starting ProtocolHandler ["http-nio-0.0.0.0-8088"]
    +2023-08-30 20:38:41 [main] [INFO ] o.a.h.HugeGraphHubble [] - Started HugeGraphHubble in 7.379 seconds (JVM running for 8.499)
    +

    Then use a web browser to access ip:8088 and you can see the Hubble page. You can stop the service using bin/stop-hubble.sh.

    2.2 Source code compilation

    Note: Compiling Hubble requires the user’s local environment to have Node.js V16.x and yarn installed.

    apt install curl build-essential
    +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
    +source ~/.bashrc
    +nvm install 16
    +

    Then, verify that the installed Node.js version is 16.x (please note that higher Node version may cause conflicts).

    node -v
    +

    install yarn by the command below:

    npm install -g yarn
    +

    Download the toolchain source code.

    git clone https://github.com/apache/hugegraph-toolchain.git
    +

    Compile hubble. It depends on the loader and client, so you need to build these dependencies in advance during the compilation process (you can skip this step later).

    cd incubator-hugegraph-toolchain
    +sudo pip install -r hugegraph-hubble/hubble-dist/assembly/travis/requirements.txt
    +mvn install -pl hugegraph-client,hugegraph-loader -am -Dmaven.javadoc.skip=true -DskipTests -ntp
    +cd hugegraph-hubble
    +mvn -e compile package -Dmaven.javadoc.skip=true -Dmaven.test.skip=true -ntp
    +cd apache-hugegraph-hubble-incubating*
    +

    Run hubble

    bin/start-hubble.sh -d
    +

    2.3 Use docker

    Special Note: If you are starting hubble with Docker, and hubble and the server are on the same host. When configuring the hostname for the graph on the Hubble web page, please do not directly set it to localhost/127.0.0.1. This will refer to the hubble container internally rather than the host machine, resulting in a connection failure to the server.

    We can use docker run -itd --name=hubble -p 8088:8088 hugegraph/hubble to quick start hubble.

    Alternatively, you can use Docker Compose to start hubble. Additionally, if hubble and the graph are in the same Docker network, you can access the graph using the container name of the graph, eliminating the need for the host machine’s IP address.

    Use docker-compose up -ddocker-compose.yml is following:

    version: '3'
    +services:
    +  graph_hubble:
    +    image: hugegraph/hugegraph
    +    container_name: graph
    +    ports:
    +      - 18080:8080
    +
    +  hubble:
    +    image: hugegraph/hubble
    +    container_name: hubble
    +    ports:
    +      - 8088:8088
    +

    3 Platform Workflow

    The module usage process of the platform is as follows:

    image

    4 Platform Instructions

    4.1 Graph Management

    4.1.1 Graph creation

    Under the graph management module, click [Create graph], and realize the connection of multiple graphs by filling in the graph ID, graph name, host name, port number, username, and password information.

    image

    Create graph by filling in the content as follows::

    image
    4.1.2 Graph Access

    Realize the information access of the graph space. After entering, you can perform operations such as multidimensional query analysis, metadata management, data import, and algorithm analysis of the graph.

    image
    4.1.3 Graph management
    1. Users can achieve unified management of graphs through overview, search, and information editing and deletion of single graphs.
    2. Search range: You can search for the graph name and ID.
    image

    4.2 Metadata Modeling (list + graph mode)

    4.2.1 Module entry

    Left navigation:

    image
    4.2.2 Property type
    4.2.2.1 Create type
    1. Fill in or select the attribute name, data type, and cardinality to complete the creation of the attribute.
    2. Created attributes can be used as attributes of vertex type and edge type.

    List mode:

    image

    Graph mode:

    image
    4.2.2.2 Reuse
    1. The platform provides the [Reuse] function, which can directly reuse the metadata of other graphs.
    2. Select the graph ID that needs to be reused, and continue to select the attributes that need to be reused. After that, the platform will check whether there is a conflict. After passing, the metadata can be reused.

    Select reuse items:

    image

    Check reuse items:

    image
    4.2.2.3 Management
    1. You can delete a single item or delete it in batches in the attribute list.
    4.2.3 Vertex type
    4.2.3.1 Create type
    1. Fill in or select the vertex type name, ID strategy, association attribute, primary key attribute, vertex style, content displayed below the vertex in the query result, and index information: including whether to create a type index, and the specific content of the attribute index, complete the vertex Type creation.

    List mode:

    image

    Graph mode:

    image
    4.2.3.2 Reuse
    1. The multiplexing of vertex types will reuse the attributes and attribute indexes associated with this type together.
    2. The reuse method is similar to the property reuse, see 3.2.2.2.
    4.2.3.3 Administration
    1. Editing operations are available. The vertex style, association type, vertex display content, and attribute index can be edited, and the rest cannot be edited.

    2. You can delete a single item or delete it in batches.

    image
    4.2.4 Edge Types
    4.2.4.1 Create
    1. Fill in or select the edge type name, start point type, end point type, associated attributes, whether to allow multiple connections, edge style, content displayed below the edge in the query result, and index information: including whether to create a type index, and attribute index The specific content, complete the creation of the edge type.

    List mode:

    image

    Graph mode:

    image
    4.2.4.2 Reuse
    1. The reuse of the edge type will reuse the start point type, end point type, associated attribute and attribute index of this type.
    2. The reuse method is similar to the property reuse, see 3.2.2.2.
    4.2.4.3 Administration
    1. Editing operations are available. Edge styles, associated attributes, edge display content, and attribute indexes can be edited, and the rest cannot be edited, the same as the vertex type.
    2. You can delete a single item or delete it in batches.
    4.2.5 Index Types

    Displays vertex and edge indices for vertex types and edge types.

    4.3 Data Import

    The usage process of data import is as follows:

    image
    4.3.1 Module entrance

    Left navigation:

    image
    4.3.2 Create task
    1. Fill in the task name and remarks (optional) to create an import task.
    2. Multiple import tasks can be created and imported in parallel.
    image
    4.3.3 Uploading files
    1. Upload the file that needs to be composed. The currently supported format is CSV, which will be updated continuously in the future.
    2. Multiple files can be uploaded at the same time.
    image
    4.3.4 Setting up data mapping
    1. Set up data mapping for uploaded files, including file settings and type settings

    2. File settings: Check or fill in whether to include the header, separator, encoding format and other settings of the file itself, all set the default values, no need to fill in manually

    3. Type setting:

      1. Vertex map and edge map:

        【Vertex Type】: Select the vertex type, and upload the column data in the file for its ID mapping;

        【Edge Type】: Select the edge type and map the column data of the uploaded file to the ID column of its start point type and end point type;

      2. Mapping settings: upload the column data in the file for the attribute mapping of the selected vertex type. Here, if the attribute name is the same as the header name of the file, the mapping attribute can be automatically matched, and there is no need to manually fill in the selection.

      3. After completing the setting, the setting list will be displayed before proceeding to the next step. It supports the operations of adding, editing and deleting mappings.

    Fill in the settings map:

    image

    Mapping list:

    image
    4.3.5 Import data

    Before importing, you need to fill in the import setting parameters. After filling in, you can start importing data into the gallery.

    1. Import settings
    • The import setting parameter items are as shown in the figure below, all set the default value, no need to fill in manually
    image
    1. Import details
    • Click Start Import to start the file import task
    • The import details provide the mapping type, import speed, import progress, time-consuming and the specific status of the current task set for each uploaded file, and can pause, resume, stop and other operations for each task
    • If the import fails, you can view the specific reason
    image

    4.4 Data Analysis

    4.4.1 Module entry

    Left navigation:

    image
    4.4.2 Multi-image switching

    By switching the entrance on the left, flexibly switch the operation space of multiple graphs

    image
    4.4.3 Graph Analysis and Processing

    HugeGraph supports Gremlin, a graph traversal query language of Apache TinkerPop3. Gremlin is a general graph database query language. By entering Gremlin statements and clicking execute, you can perform query and analysis operations on graph data, and create and delete vertices/edges. , vertex/edge attribute modification, etc.

    After Gremlin query, below is the graph result display area, which provides 3 kinds of graph result display modes: [Graph Mode], [Table Mode], [Json Mode].

    Support zoom, center, full screen, export and other operations.

    【Picture Mode】

    image

    【Table mode】

    image

    【Json mode】

    image
    4.4.4 Data Details

    Click the vertex/edge entity to view the data details of the vertex/edge, including: vertex/edge type, vertex ID, attribute and corresponding value, expand the information display dimension of the graph, and improve the usability.

    4.4.5 Multidimensional Path Query of Graph Results

    In addition to the global query, in-depth customized query and hidden operations can be performed for the vertices in the query result to realize customized mining of graph results.

    Right-click a vertex, and the menu entry of the vertex appears, which can be displayed, inquired, hidden, etc.

    • Expand: Click to display the vertices associated with the selected point.
    • Query: By selecting the edge type and edge direction associated with the selected point, and then selecting its attributes and corresponding filtering rules under this condition, a customized path display can be realized.
    • Hide: When clicked, hides the selected point and its associated edges.

    Double-clicking a vertex also displays the vertex associated with the selected point.

    image
    4.4.6 Add vertex/edge
    4.4.6.1 Added vertex

    In the graph area, two entries can be used to dynamically add vertices, as follows:

    1. Click on the graph area panel, the Add Vertex entry appears
    2. Click the first icon in the action bar in the upper right corner

    Complete the addition of vertices by selecting or filling in the vertex type, ID value, and attribute information.

    The entry is as follows:

    image

    Add the vertex content as follows:

    image
    4.4.6.2 Add edge

    Right-click a vertex in the graph result to add the outgoing or incoming edge of that point.

    4.4.7 Execute the query of records and favorites
    1. Record each query record at the bottom of the graph area, including: query time, execution type, content, status, time-consuming, as well as [collection] and [load] operations, to achieve a comprehensive record of graph execution, with traces to follow, and Can quickly load and reuse execution content
    2. Provides the function of collecting sentences, which can be used to collect frequently used sentences, which is convenient for fast calling of high-frequency sentences.
    image

    4.5 Task Management

    4.5.1 Module entry

    Left navigation:

    image
    4.5.2 Task Management
    1. Provide unified management and result viewing of asynchronous tasks. There are 4 types of asynchronous tasks, namely:
    • gremlin: Gremlin tasks
    • algorithm: OLAP algorithm task
    • remove_schema: remove metadata
    • rebuild_index: rebuild the index
    1. The list displays the asynchronous task information of the current graph, including: task ID, task name, task type, creation time, time-consuming, status, operation, and realizes the management of asynchronous tasks.
    2. Support filtering by task type and status
    3. Support searching for task ID and task name
    4. Asynchronous tasks can be deleted or deleted in batches
    image
    4.5.3 Gremlin asynchronous tasks
    1. Create a task
    • The data analysis module currently supports two Gremlin operations, Gremlin query and Gremlin task; if the user switches to the Gremlin task, after clicking execute, an asynchronous task will be created in the asynchronous task center;
    1. Task submission
    • After the task is submitted successfully, the graph area returns the submission result and task ID
    1. Mission details
    • Provide [View] entry, you can jump to the task details to view the specific execution of the current task After jumping to the task center, the currently executing task line will be displayed directly
    image

    Click to view the entry to jump to the task management list, as follows:

    image
    1. View the results
    • The results are displayed in the form of json
    4.5.4 OLAP algorithm tasks

    There is no visual OLAP algorithm execution on Hubble. You can call the RESTful API to perform OLAP algorithm tasks, find the corresponding tasks by ID in the task management, and view the progress and results.

    4.5.5 Delete metadata, rebuild index
    1. Create a task
    • In the metadata modeling module, when deleting metadata, an asynchronous task for deleting metadata can be created
    image
    • When editing an existing vertex/edge type operation, when adding an index, an asynchronous task of creating an index can be created
    image
    1. Task details
    • After confirming/saving, you can jump to the task center to view the details of the current task
    image

    3.5 - HugeGraph-Client Quick Start

    1 Overview Of Hugegraph

    HugeGraph-Client sends HTTP request to HugeGraph-Server to obtain and parse the execution result of Server. Currently only the HugeGraph-Client for Java is provided. You can use HugeGraph-Client to write Java code to operate HugeGraph, such as adding, deleting, modifying, and querying schema and graph data, or executing gremlin statements.

    2 What You Need

    • Java 11 (also support Java 8)
    • Maven 3.5+

    3 How To Use

    The basic steps to use HugeGraph-Client are as follows:

    • Build a new Maven project by IDEA or Eclipse
    • Add HugeGraph-Client dependency in pom file;
    • Create an object to invoke the interface of HugeGraph-Client

    See the complete example in the following section for the detail.

    4 Complete Example

    4.1 Build New Maven Project

    Using IDEA or Eclipse to create the project:

    4.2 Add Hugegraph-Client Dependency In POM

    <dependencies>
         <dependency>
             <groupId>org.apache.hugegraph</groupId>
             <artifactId>hugegraph-client</artifactId>
    diff --git a/docs/index.xml b/docs/index.xml
    index 26cc4c512..81db4b762 100644
    --- a/docs/index.xml
    +++ b/docs/index.xml
    @@ -1748,6 +1748,13 @@ after the service is stopped artificially, or when the service needs to be start
     </span></span></code></pre></div><h3 id="8-debug-server-with-intellij-idea">8 Debug Server with IntelliJ IDEA</h3>
     <p>Please refer to <a href="/docs/contribution-guidelines/hugegraph-server-idea-setup">Setup Server in IDEA</a></p>
     <h3 id="9-create-sample-graph-on-server-startup">9 Create Sample Graph on Server Startup</h3>
    +<p>There are three ways to create sample graph on server startup</p>
    +<ul>
    +<li>Method 1: Modify the configuration file directly.</li>
    +<li>Method 2: Use command-line arguments in the startup script.</li>
    +<li>Method 3: Use Docker or Docker Compose to add environment variables.</li>
    +</ul>
    +<h4 id="91-modify-the-configuration-file-directly">9.1 Modify the configuration file directly.</h4>
     <p>Modify <code>conf/gremlin-server.yaml</code> and change <code>empty-sample.groovy</code> to <code>example.groovy</code>:</p>
     <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>{<span style="color:#f8f8f8;text-decoration:underline">
     </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">files</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">[</span><span style="color:#000">scripts/example.groovy]</span><span style="color:#f8f8f8;text-decoration:underline">
    @@ -1776,7 +1783,44 @@ after the service is stopped artificially, or when the service needs to be start
     </span></span></code></pre></div><p>indicating the successful creation of the sample graph.</p>
     <blockquote>
     <p>The process of creating sample graph on server startup is similar when using IntelliJ IDEA and will not be described further.</p>
    -</blockquote>Docs: Introduction with HugeGraph/docs/introduction/readme/Mon, 01 Jan 0001 00:00:00 +0000/docs/introduction/readme/
    +</blockquote>
    +<h4 id="92-specify-command-line-arguments-in-the-startup-script">9.2 Specify command-line arguments in the startup script.</h4>
    +<p>Carry the <code>-p true</code> arguments when starting the script, which indicates <code>preload</code>, to create a sample graph.</p>
    +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>bin/start-hugegraph.sh -p true
    +</span></span><span style="display:flex;"><span>Starting HugeGraphServer in daemon mode...
    +</span></span><span style="display:flex;"><span>Connecting to HugeGraphServer (http://127.0.0.1:8080/graphs)......OK
    +</span></span></code></pre></div><p>And use the RESTful API to request <code>HugeGraphServer</code> and get the following result:</p>
    +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold">&gt;</span> <span style="color:#000">curl</span> <span style="color:#4e9a06">&#34;http://localhost:8080/graphs/hugegraph/graph/vertices&#34;</span> <span style="color:#ce5c00;font-weight:bold">|</span> <span style="color:#000">gunzip</span>
    +</span></span><span style="display:flex;"><span>
    +</span></span><span style="display:flex;"><span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;vertices&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">[{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;2:lop&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;software&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;lop&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;lang&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;java&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;price&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">328</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:josh&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;josh&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">32</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Beijing&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:marko&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;marko&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">29</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Beijing&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:peter&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;peter&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">35</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Shanghai&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:vadas&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vadas&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">27</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Hongkong&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;2:ripple&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;software&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;ripple&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;lang&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;java&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;price&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">199</span><span style="color:#000;font-weight:bold">}}]}</span>
    +</span></span></code></pre></div><p>This indicates the successful creation of the sample graph.</p>
    +<h4 id="93-use-docker-or-docker-compose-to-add-environment-variables">9.3 Use Docker or Docker Compose to add environment variables.</h4>
    +<p>Set the environment variable <code>PRELOAD=true</code> when starting Docker in order to load data during the execution of the startup script.</p>
    +<ol>
    +<li>
    +<p>Use <code>docker run</code></p>
    +<p>Use <code>docker run -itd --name=graph -p 18080:8080 -e PRELOAD=true hugegraph/hugegraph:latest</code></p>
    +</li>
    +<li>
    +<p>Use <code>docker-compose</code></p>
    +<p>Create <code>docker-compose.yml</code> as following</p>
    +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">version</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;3&#39;</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">services</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">graph</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">image</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">hugegraph/hugegraph:latest</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">container_name</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">graph</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">environment</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>- <span style="color:#000">PRELOAD=true</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">ports</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>- <span style="color:#0000cf;font-weight:bold">18080</span><span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">8080</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span></code></pre></div><p>Use <code>docker-compose up -d</code> to start the container</p>
    +</li>
    +</ol>
    +<p>And use the RESTful API to request <code>HugeGraphServer</code> and get the following result:</p>
    +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold">&gt;</span> <span style="color:#000">curl</span> <span style="color:#4e9a06">&#34;http://localhost:8080/graphs/hugegraph/graph/vertices&#34;</span> <span style="color:#ce5c00;font-weight:bold">|</span> <span style="color:#000">gunzip</span>
    +</span></span><span style="display:flex;"><span>
    +</span></span><span style="display:flex;"><span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;vertices&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">[{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;2:lop&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;software&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;lop&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;lang&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;java&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;price&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">328</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:josh&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;josh&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">32</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Beijing&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:marko&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;marko&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">29</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Beijing&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:peter&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;peter&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">35</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Shanghai&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:vadas&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vadas&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">27</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Hongkong&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;2:ripple&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;software&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;ripple&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;lang&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;java&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;price&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">199</span><span style="color:#000;font-weight:bold">}}]}</span>
    +</span></span></code></pre></div><p>This indicates the successful creation of the sample graph.</p>Docs: Introduction with HugeGraph/docs/introduction/readme/Mon, 01 Jan 0001 00:00:00 +0000/docs/introduction/readme/
     <h3 id="summary">Summary</h3>
     <p>HugeGraph is an easy-to-use, efficient, general-purpose open source graph database system(Graph Database, <a href="https://github.com/hugegraph/hugegraph">GitHub project address</a>),
     implemented the <a href="https://tinkerpop.apache.org">Apache TinkerPop3</a> framework and is fully compatible with the <a href="https://tinkerpop.apache.org/gremlin.html">Gremlin</a> query language,
    @@ -8362,14 +8406,77 @@ Merging mode as needed, and when the Restore is completed, restore the graph mod
     <p>By inputting the graph traversal language Gremlin, high-performance general analysis of graph data can be realized, and functions such as customized multidimensional path query of vertices can be provided, and three kinds of graph result display methods are provided, including: graph form, table form, Json form, and multidimensional display. The data form meets the needs of various scenarios used by users. It provides functions such as running records and collection of common statements, realizing the traceability of graph operations, and the reuse and sharing of query input, which is fast and efficient. It supports the export of graph data, and the export format is Json format.</p>
     <h5 id="task-management">Task Management</h5>
     <p>For Gremlin tasks that need to traverse the whole graph, index creation and reconstruction and other time-consuming asynchronous tasks, the platform provides corresponding task management functions to achieve unified management and result viewing of asynchronous tasks.</p>
    -<h3 id="2platform-workflow">2 Platform Workflow</h3>
    +<h3 id="2-deploy">2 Deploy</h3>
    +<p>There are three ways to deplot <code>hugegraph-hubble</code></p>
    +<ul>
    +<li>Download the Toolchain binary package</li>
    +<li>Source code compilation</li>
    +<li>Use Docker</li>
    +</ul>
    +<h4 id="21-download-the-toolchain-binary-package">2.1 Download the Toolchain binary package</h4>
    +<p><code>hubble</code> is in the <code>toolchain</code> project. First, download the binary tar tarball</p>
    +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>wget https://downloads.apache.org/incubator/hugegraph/1.0.0/apache-hugegraph-toolchain-incubating-<span style="color:#ce5c00;font-weight:bold">{</span>version<span style="color:#ce5c00;font-weight:bold">}</span>.tar.gz
    +</span></span><span style="display:flex;"><span>tar -xvf apache-hugegraph-toolchain-incubating-<span style="color:#ce5c00;font-weight:bold">{</span>version<span style="color:#ce5c00;font-weight:bold">}</span>.tar.gz
    +</span></span><span style="display:flex;"><span><span style="color:#204a87">cd</span> apache-hugegraph-toolchain-incubating-<span style="color:#ce5c00;font-weight:bold">{</span>version<span style="color:#ce5c00;font-weight:bold">}</span>.tar.gz/apache-hugegraph-hubble-incubating-<span style="color:#ce5c00;font-weight:bold">{</span>version<span style="color:#ce5c00;font-weight:bold">}</span>
    +</span></span></code></pre></div><p>Run <code>hubble</code></p>
    +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>bin/start-hubble.sh
    +</span></span></code></pre></div><p>Then, we can see:</p>
    +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>starting HugeGraphHubble ..............timed out with http status <span style="color:#0000cf;font-weight:bold">502</span>
    +</span></span><span style="display:flex;"><span>2023-08-30 20:38:34 <span style="color:#ce5c00;font-weight:bold">[</span>main<span style="color:#ce5c00;font-weight:bold">]</span> <span style="color:#ce5c00;font-weight:bold">[</span>INFO <span style="color:#ce5c00;font-weight:bold">]</span> o.a.h.HugeGraphHubble <span style="color:#ce5c00;font-weight:bold">[]</span> - Starting HugeGraphHubble v1.0.0 on cpu05 with PID xxx <span style="color:#ce5c00;font-weight:bold">(</span>~/apache-hugegraph-toolchain-incubating-1.0.0/apache-hugegraph-hubble-incubating-1.0.0/lib/hubble-be-1.0.0.jar started by <span style="color:#000">$USER</span> in ~/apache-hugegraph-toolchain-incubating-1.0.0/apache-hugegraph-hubble-incubating-1.0.0<span style="color:#ce5c00;font-weight:bold">)</span>
    +</span></span><span style="display:flex;"><span>...
    +</span></span><span style="display:flex;"><span>2023-08-30 20:38:38 <span style="color:#ce5c00;font-weight:bold">[</span>main<span style="color:#ce5c00;font-weight:bold">]</span> <span style="color:#ce5c00;font-weight:bold">[</span>INFO <span style="color:#ce5c00;font-weight:bold">]</span> c.z.h.HikariDataSource <span style="color:#ce5c00;font-weight:bold">[]</span> - hugegraph-hubble-HikariCP - Start completed.
    +</span></span><span style="display:flex;"><span>2023-08-30 20:38:41 <span style="color:#ce5c00;font-weight:bold">[</span>main<span style="color:#ce5c00;font-weight:bold">]</span> <span style="color:#ce5c00;font-weight:bold">[</span>INFO <span style="color:#ce5c00;font-weight:bold">]</span> o.a.c.h.Http11NioProtocol <span style="color:#ce5c00;font-weight:bold">[]</span> - Starting ProtocolHandler <span style="color:#ce5c00;font-weight:bold">[</span><span style="color:#4e9a06">&#34;http-nio-0.0.0.0-8088&#34;</span><span style="color:#ce5c00;font-weight:bold">]</span>
    +</span></span><span style="display:flex;"><span>2023-08-30 20:38:41 <span style="color:#ce5c00;font-weight:bold">[</span>main<span style="color:#ce5c00;font-weight:bold">]</span> <span style="color:#ce5c00;font-weight:bold">[</span>INFO <span style="color:#ce5c00;font-weight:bold">]</span> o.a.h.HugeGraphHubble <span style="color:#ce5c00;font-weight:bold">[]</span> - Started HugeGraphHubble in 7.379 seconds <span style="color:#ce5c00;font-weight:bold">(</span>JVM running <span style="color:#204a87;font-weight:bold">for</span> 8.499<span style="color:#ce5c00;font-weight:bold">)</span>
    +</span></span></code></pre></div><p>Then use a web browser to access <code>ip:8088</code> and you can see the <code>Hubble</code> page. You can stop the service using bin/stop-hubble.sh.</p>
    +<h4 id="22-source-code-compilation">2.2 Source code compilation</h4>
    +<p><strong>Note</strong>: Compiling Hubble requires the user&rsquo;s local environment to have Node.js V16.x and yarn installed.</p>
    +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>apt install curl build-essential
    +</span></span><span style="display:flex;"><span>curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh <span style="color:#000;font-weight:bold">|</span> bash
    +</span></span><span style="display:flex;"><span><span style="color:#204a87">source</span> ~/.bashrc
    +</span></span><span style="display:flex;"><span>nvm install <span style="color:#0000cf;font-weight:bold">16</span>
    +</span></span></code></pre></div><p>Then, verify that the installed Node.js version is 16.x (please note that higher Node version may cause conflicts).</p>
    +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>node -v
    +</span></span></code></pre></div><p>install <code>yarn</code> by the command below:</p>
    +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>npm install -g yarn
    +</span></span></code></pre></div><p>Download the toolchain source code.</p>
    +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>git clone https://github.com/apache/hugegraph-toolchain.git
    +</span></span></code></pre></div><p>Compile <code>hubble</code>. It depends on the loader and client, so you need to build these dependencies in advance during the compilation process (you can skip this step later).</p>
    +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span><span style="color:#204a87">cd</span> incubator-hugegraph-toolchain
    +</span></span><span style="display:flex;"><span>sudo pip install -r hugegraph-hubble/hubble-dist/assembly/travis/requirements.txt
    +</span></span><span style="display:flex;"><span>mvn install -pl hugegraph-client,hugegraph-loader -am -Dmaven.javadoc.skip<span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#204a87">true</span> -DskipTests -ntp
    +</span></span><span style="display:flex;"><span><span style="color:#204a87">cd</span> hugegraph-hubble
    +</span></span><span style="display:flex;"><span>mvn -e compile package -Dmaven.javadoc.skip<span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#204a87">true</span> -Dmaven.test.skip<span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#204a87">true</span> -ntp
    +</span></span><span style="display:flex;"><span><span style="color:#204a87">cd</span> apache-hugegraph-hubble-incubating*
    +</span></span></code></pre></div><p>Run <code>hubble</code></p>
    +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>bin/start-hubble.sh -d
    +</span></span></code></pre></div><h4 id="23-use-docker">2.3 Use docker</h4>
    +<blockquote>
    +<p><strong>Special Note</strong>: If you are starting <code>hubble</code> with Docker, and <code>hubble</code> and the server are on the same host. When configuring the hostname for the graph on the Hubble web page, please do not directly set it to <code>localhost/127.0.0.1</code>. This will refer to the <code>hubble</code> container internally rather than the host machine, resulting in a connection failure to the server.</p>
    +</blockquote>
    +<p>We can use <code>docker run -itd --name=hubble -p 8088:8088 hugegraph/hubble</code> to quick start <a href="https://hub.docker.com/r/hugegraph/hubble">hubble</a>.</p>
    +<p>Alternatively, you can use Docker Compose to start <code>hubble</code>. Additionally, if <code>hubble</code> and the graph are in the same Docker network, you can access the graph using the container name of the graph, eliminating the need for the host machine&rsquo;s IP address.</p>
    +<p>Use <code>docker-compose up -d</code>,<code>docker-compose.yml</code> is following:</p>
    +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">version</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;3&#39;</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#204a87;font-weight:bold">services</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">graph_hubble</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">image</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">hugegraph/hugegraph</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">container_name</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">graph</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">ports</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>- <span style="color:#0000cf;font-weight:bold">18080</span><span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">8080</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">hubble</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">image</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">hugegraph/hubble</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">container_name</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">hubble</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">ports</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>- <span style="color:#0000cf;font-weight:bold">8088</span><span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">8088</span><span style="color:#f8f8f8;text-decoration:underline">
    +</span></span></span></code></pre></div><h3 id="3platform-workflow">3 Platform Workflow</h3>
     <p>The module usage process of the platform is as follows:</p>
     <div style="text-align: center;">
     <img src="/docs/images/images-hubble/2平台使用流程.png" alt="image">
     </div>
    -<h3 id="3platform-instructions">3 Platform Instructions</h3>
    -<h4 id="31graph-management">3.1 Graph Management</h4>
    -<h5 id="311graph-creation">3.1.1 Graph creation</h5>
    +<h3 id="4platform-instructions">4 Platform Instructions</h3>
    +<h4 id="41graph-management">4.1 Graph Management</h4>
    +<h5 id="411graph-creation">4.1.1 Graph creation</h5>
     <p>Under the graph management module, click [Create graph], and realize the connection of multiple graphs by filling in the graph ID, graph name, host name, port number, username, and password information.</p>
     <div style="text-align: center;">
     <img src="/docs/images/images-hubble/311图创建.png" alt="image">
    @@ -8378,12 +8485,12 @@ Merging mode as needed, and when the Restore is completed, restore the graph mod
     <center>
     <img src="/docs/images/images-hubble/311图创建2.png" alt="image">
     </center>
    -<h5 id="312graph-access">3.1.2 Graph Access</h5>
    +<h5 id="412graph-access">4.1.2 Graph Access</h5>
     <p>Realize the information access of the graph space. After entering, you can perform operations such as multidimensional query analysis, metadata management, data import, and algorithm analysis of the graph.</p>
     <center>
     <img src="/docs/images/images-hubble/312图访问.png" alt="image">
     </center>
    -<h5 id="313graph-management">3.1.3 Graph management</h5>
    +<h5 id="413graph-management">4.1.3 Graph management</h5>
     <ol>
     <li>Users can achieve unified management of graphs through overview, search, and information editing and deletion of single graphs.</li>
     <li>Search range: You can search for the graph name and ID.</li>
    @@ -8391,14 +8498,14 @@ Merging mode as needed, and when the Restore is completed, restore the graph mod
     <center>
     <img src="/docs/images/images-hubble/313图管理.png" alt="image">
     </center>
    -<h4 id="32metadata-modeling-list--graph-mode">3.2 Metadata Modeling (list + graph mode)</h4>
    -<h5 id="321module-entry">3.2.1 Module entry</h5>
    +<h4 id="42metadata-modeling-list--graph-mode">4.2 Metadata Modeling (list + graph mode)</h4>
    +<h5 id="421module-entry">4.2.1 Module entry</h5>
     <p>Left navigation:</p>
     <center>
     <img src="/docs/images/images-hubble/321元数据入口.png" alt="image">
     </center>
    -<h5 id="322property-type">3.2.2 Property type</h5>
    -<h6 id="3221create-type">3.2.2.1 Create type</h6>
    +<h5 id="422property-type">4.2.2 Property type</h5>
    +<h6 id="4221create-type">4.2.2.1 Create type</h6>
     <ol>
     <li>Fill in or select the attribute name, data type, and cardinality to complete the creation of the attribute.</li>
     <li>Created attributes can be used as attributes of vertex type and edge type.</li>
    @@ -8411,7 +8518,7 @@ Merging mode as needed, and when the Restore is completed, restore the graph mod
     <center>
     <img src="/docs/images/images-hubble/3221属性创建2.png" alt="image">
     </center>
    -<h6 id="3222reuse">3.2.2.2 Reuse</h6>
    +<h6 id="4222reuse">4.2.2.2 Reuse</h6>
     <ol>
     <li>The platform provides the [Reuse] function, which can directly reuse the metadata of other graphs.</li>
     <li>Select the graph ID that needs to be reused, and continue to select the attributes that need to be reused. After that, the platform will check whether there is a conflict. After passing, the metadata can be reused.</li>
    @@ -8424,12 +8531,12 @@ Merging mode as needed, and when the Restore is completed, restore the graph mod
     <center>
     <img src="/docs/images/images-hubble/3222属性复用2.png" alt="image">
     </center>
    -<h6 id="3223management">3.2.2.3 Management</h6>
    +<h6 id="4223management">4.2.2.3 Management</h6>
     <ol>
     <li>You can delete a single item or delete it in batches in the attribute list.</li>
     </ol>
    -<h5 id="323vertex-type">3.2.3 Vertex type</h5>
    -<h6 id="3231create-type">3.2.3.1 Create type</h6>
    +<h5 id="423vertex-type">4.2.3 Vertex type</h5>
    +<h6 id="4231create-type">4.2.3.1 Create type</h6>
     <ol>
     <li>Fill in or select the vertex type name, ID strategy, association attribute, primary key attribute, vertex style, content displayed below the vertex in the query result, and index information: including whether to create a type index, and the specific content of the attribute index, complete the vertex Type creation.</li>
     </ol>
    @@ -8441,12 +8548,12 @@ Merging mode as needed, and when the Restore is completed, restore the graph mod
     <center>
     <img src="/docs/images/images-hubble/3231顶点创建2.png" alt="image">
     </center>
    -<h6 id="3232-reuse">3.2.3.2 Reuse</h6>
    +<h6 id="4232-reuse">4.2.3.2 Reuse</h6>
     <ol>
     <li>The multiplexing of vertex types will reuse the attributes and attribute indexes associated with this type together.</li>
     <li>The reuse method is similar to the property reuse, see 3.2.2.2.</li>
     </ol>
    -<h6 id="3233-administration">3.2.3.3 Administration</h6>
    +<h6 id="4233-administration">4.2.3.3 Administration</h6>
     <ol>
     <li>
     <p>Editing operations are available. The vertex style, association type, vertex display content, and attribute index can be edited, and the rest cannot be edited.</p>
    @@ -8458,8 +8565,8 @@ Merging mode as needed, and when the Restore is completed, restore the graph mod
     <center>
     <img src="/docs/images/images-hubble/3233顶点删除.png" alt="image">
     </center>
    -<h5 id="324-edge-types">3.2.4 Edge Types</h5>
    -<h6 id="3241-create">3.2.4.1 Create</h6>
    +<h5 id="424-edge-types">4.2.4 Edge Types</h5>
    +<h6 id="4241-create">4.2.4.1 Create</h6>
     <ol>
     <li>Fill in or select the edge type name, start point type, end point type, associated attributes, whether to allow multiple connections, edge style, content displayed below the edge in the query result, and index information: including whether to create a type index, and attribute index The specific content, complete the creation of the edge type.</li>
     </ol>
    @@ -8471,29 +8578,29 @@ Merging mode as needed, and when the Restore is completed, restore the graph mod
     <center>
     <img src="/docs/images/images-hubble/3241边创建2.png" alt="image">
     </center>
    -<h6 id="3242-reuse">3.2.4.2 Reuse</h6>
    +<h6 id="4242-reuse">4.2.4.2 Reuse</h6>
     <ol>
     <li>The reuse of the edge type will reuse the start point type, end point type, associated attribute and attribute index of this type.</li>
     <li>The reuse method is similar to the property reuse, see 3.2.2.2.</li>
     </ol>
    -<h6 id="3243-administration">3.2.4.3 Administration</h6>
    +<h6 id="4243-administration">4.2.4.3 Administration</h6>
     <ol>
     <li>Editing operations are available. Edge styles, associated attributes, edge display content, and attribute indexes can be edited, and the rest cannot be edited, the same as the vertex type.</li>
     <li>You can delete a single item or delete it in batches.</li>
     </ol>
    -<h5 id="325-index-types">3.2.5 Index Types</h5>
    +<h5 id="425-index-types">4.2.5 Index Types</h5>
     <p>Displays vertex and edge indices for vertex types and edge types.</p>
    -<h4 id="33-data-import">3.3 Data Import</h4>
    +<h4 id="43-data-import">4.3 Data Import</h4>
     <p>The usage process of data import is as follows:</p>
     <center>
     <img src="/docs/images/images-hubble/33导入流程.png" alt="image">
     </center>
    -<h5 id="331module-entrance">3.3.1 Module entrance</h5>
    +<h5 id="431module-entrance">4.3.1 Module entrance</h5>
     <p>Left navigation:</p>
     <center>
     <img src="/docs/images/images-hubble/331导入入口.png" alt="image">
     </center>
    -<h5 id="332-create-task">3.3.2 Create task</h5>
    +<h5 id="432-create-task">4.3.2 Create task</h5>
     <ol>
     <li>Fill in the task name and remarks (optional) to create an import task.</li>
     <li>Multiple import tasks can be created and imported in parallel.</li>
    @@ -8501,7 +8608,7 @@ Merging mode as needed, and when the Restore is completed, restore the graph mod
     <center>
     <img src="/docs/images/images-hubble/332创建任务.png" alt="image">
     </center>
    -<h5 id="333-uploading-files">3.3.3 Uploading files</h5>
    +<h5 id="433-uploading-files">4.3.3 Uploading files</h5>
     <ol>
     <li>Upload the file that needs to be composed. The currently supported format is CSV, which will be updated continuously in the future.</li>
     <li>Multiple files can be uploaded at the same time.</li>
    @@ -8509,7 +8616,7 @@ Merging mode as needed, and when the Restore is completed, restore the graph mod
     <center>
     <img src="/docs/images/images-hubble/333上传文件.png" alt="image">
     </center>
    -<h5 id="334-setting-up-data-mapping">3.3.4 Setting up data mapping</h5>
    +<h5 id="434-setting-up-data-mapping">4.3.4 Setting up data mapping</h5>
     <ol>
     <li>
     <p>Set up data mapping for uploaded files, including file settings and type settings</p>
    @@ -8542,7 +8649,7 @@ Merging mode as needed, and when the Restore is completed, restore the graph mod
     <center>
     <img src="/docs/images/images-hubble/334设置映射2.png" alt="image">
     </center>
    -<h5 id="335-import-data">3.3.5 Import data</h5>
    +<h5 id="435-import-data">4.3.5 Import data</h5>
     <p>Before importing, you need to fill in the import setting parameters. After filling in, you can start importing data into the gallery.</p>
     <ol>
     <li>Import settings</li>
    @@ -8564,18 +8671,18 @@ Merging mode as needed, and when the Restore is completed, restore the graph mod
     <center>
     <img src="/docs/images/images-hubble/335导入详情.png" alt="image">
     </center>
    -<h4 id="34-data-analysis">3.4 Data Analysis</h4>
    -<h5 id="341-module-entry">3.4.1 Module entry</h5>
    +<h4 id="44-data-analysis">4.4 Data Analysis</h4>
    +<h5 id="441-module-entry">4.4.1 Module entry</h5>
     <p>Left navigation:</p>
     <center>
     <img src="/docs/images/images-hubble/341分析入口.png" alt="image">
     </center>
    -<h5 id="342-multi-image-switching">3.4.2 Multi-image switching</h5>
    +<h5 id="442-multi-image-switching">4.4.2 Multi-image switching</h5>
     <p>By switching the entrance on the left, flexibly switch the operation space of multiple graphs</p>
     <center>
     <img src="/docs/images/images-hubble/342多图切换.png" alt="image">
     </center>
    -<h5 id="343-graph-analysis-and-processing">3.4.3 Graph Analysis and Processing</h5>
    +<h5 id="443-graph-analysis-and-processing">4.4.3 Graph Analysis and Processing</h5>
     <p>HugeGraph supports Gremlin, a graph traversal query language of Apache TinkerPop3. Gremlin is a general graph database query language. By entering Gremlin statements and clicking execute, you can perform query and analysis operations on graph data, and create and delete vertices/edges. , vertex/edge attribute modification, etc.</p>
     <p>After Gremlin query, below is the graph result display area, which provides 3 kinds of graph result display modes: [Graph Mode], [Table Mode], [Json Mode].</p>
     <p>Support zoom, center, full screen, export and other operations.</p>
    @@ -8591,9 +8698,9 @@ Merging mode as needed, and when the Restore is completed, restore the graph mod
     <center>
     <img src="/docs/images/images-hubble/343图分析-json.png" alt="image">
     </center>
    -<h5 id="344-data-details">3.4.4 Data Details</h5>
    +<h5 id="444-data-details">4.4.4 Data Details</h5>
     <p>Click the vertex/edge entity to view the data details of the vertex/edge, including: vertex/edge type, vertex ID, attribute and corresponding value, expand the information display dimension of the graph, and improve the usability.</p>
    -<h5 id="345-multidimensional-path-query-of-graph-results">3.4.5 Multidimensional Path Query of Graph Results</h5>
    +<h5 id="445-multidimensional-path-query-of-graph-results">4.4.5 Multidimensional Path Query of Graph Results</h5>
     <p>In addition to the global query, in-depth customized query and hidden operations can be performed for the vertices in the query result to realize customized mining of graph results.</p>
     <p>Right-click a vertex, and the menu entry of the vertex appears, which can be displayed, inquired, hidden, etc.</p>
     <ul>
    @@ -8605,8 +8712,8 @@ Merging mode as needed, and when the Restore is completed, restore the graph mod
     <center>
     <img src="/docs/images/images-hubble/345定制路径查询.png" alt="image">
     </center>
    -<h5 id="346-add-vertexedge">3.4.6 Add vertex/edge</h5>
    -<h6 id="3461-added-vertex">3.4.6.1 Added vertex</h6>
    +<h5 id="446-add-vertexedge">4.4.6 Add vertex/edge</h5>
    +<h6 id="4461-added-vertex">4.4.6.1 Added vertex</h6>
     <p>In the graph area, two entries can be used to dynamically add vertices, as follows:</p>
     <ol>
     <li>Click on the graph area panel, the Add Vertex entry appears</li>
    @@ -8621,9 +8728,9 @@ Merging mode as needed, and when the Restore is completed, restore the graph mod
     <center>
     <img src="/docs/images/images-hubble/346新增顶点2.png" alt="image">
     </center>
    -<h6 id="3462-add-edge">3.4.6.2 Add edge</h6>
    +<h6 id="4462-add-edge">4.4.6.2 Add edge</h6>
     <p>Right-click a vertex in the graph result to add the outgoing or incoming edge of that point.</p>
    -<h5 id="347-execute-the-query-of-records-and-favorites">3.4.7 Execute the query of records and favorites</h5>
    +<h5 id="447-execute-the-query-of-records-and-favorites">4.4.7 Execute the query of records and favorites</h5>
     <ol>
     <li>Record each query record at the bottom of the graph area, including: query time, execution type, content, status, time-consuming, as well as [collection] and [load] operations, to achieve a comprehensive record of graph execution, with traces to follow, and Can quickly load and reuse execution content</li>
     <li>Provides the function of collecting sentences, which can be used to collect frequently used sentences, which is convenient for fast calling of high-frequency sentences.</li>
    @@ -8631,13 +8738,13 @@ Merging mode as needed, and when the Restore is completed, restore the graph mod
     <center>
     <img src="/docs/images/images-hubble/347收藏.png" alt="image">
     </center>
    -<h4 id="35-task-management">3.5 Task Management</h4>
    -<h5 id="351-module-entry">3.5.1 Module entry</h5>
    +<h4 id="45-task-management">4.5 Task Management</h4>
    +<h5 id="451-module-entry">4.5.1 Module entry</h5>
     <p>Left navigation:</p>
     <center>
     <img src="/docs/images/images-hubble/351任务管理入口.png" alt="image">
     </center>
    -<h5 id="352-task-management">3.5.2 Task Management</h5>
    +<h5 id="452-task-management">4.5.2 Task Management</h5>
     <ol>
     <li>Provide unified management and result viewing of asynchronous tasks. There are 4 types of asynchronous tasks, namely:</li>
     </ol>
    @@ -8656,7 +8763,7 @@ Merging mode as needed, and when the Restore is completed, restore the graph mod
     <center>
     <img src="/docs/images/images-hubble/352任务列表.png" alt="image">
     </center>
    -<h5 id="353-gremlin-asynchronous-tasks">3.5.3 Gremlin asynchronous tasks</h5>
    +<h5 id="453-gremlin-asynchronous-tasks">4.5.3 Gremlin asynchronous tasks</h5>
     <ol>
     <li>Create a task</li>
     </ol>
    @@ -8688,9 +8795,9 @@ Merging mode as needed, and when the Restore is completed, restore the graph mod
     <ul>
     <li>The results are displayed in the form of json</li>
     </ul>
    -<h5 id="354-olap-algorithm-tasks">3.5.4 OLAP algorithm tasks</h5>
    +<h5 id="454-olap-algorithm-tasks">4.5.4 OLAP algorithm tasks</h5>
     <p>There is no visual OLAP algorithm execution on Hubble. You can call the RESTful API to perform OLAP algorithm tasks, find the corresponding tasks by ID in the task management, and view the progress and results.</p>
    -<h5 id="355-delete-metadata-rebuild-index">3.5.5 Delete metadata, rebuild index</h5>
    +<h5 id="455-delete-metadata-rebuild-index">4.5.5 Delete metadata, rebuild index</h5>
     <ol>
     <li>Create a task</li>
     </ol>
    diff --git a/docs/quickstart/_print/index.html b/docs/quickstart/_print/index.html
    index e363f5960..ef597ecba 100644
    --- a/docs/quickstart/_print/index.html
    +++ b/docs/quickstart/_print/index.html
    @@ -208,7 +208,7 @@
     }
     

    For detailed API, please refer to RESTful-API

    7 Stop Server

    $cd hugegraph-${version}
     $bin/stop-hugegraph.sh
    -

    8 Debug Server with IntelliJ IDEA

    Please refer to Setup Server in IDEA

    9 Create Sample Graph on Server Startup

    Modify conf/gremlin-server.yaml and change empty-sample.groovy to example.groovy:

    org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {
    +

    8 Debug Server with IntelliJ IDEA

    Please refer to Setup Server in IDEA

    9 Create Sample Graph on Server Startup

    There are three ways to create sample graph on server startup

    • Method 1: Modify the configuration file directly.
    • Method 2: Use command-line arguments in the startup script.
    • Method 3: Use Docker or Docker Compose to add environment variables.

    9.1 Modify the configuration file directly.

    Modify conf/gremlin-server.yaml and change empty-sample.groovy to example.groovy:

    org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {
         files: [scripts/example.groovy]
     }
     

    Modify scripts/example.groovy as follows:

    conf = "conf/graphs/hugegraph.properties"
    @@ -229,7 +229,25 @@
                                      Dload  Upload   Total   Spent    Left  Speed
     100   222  100   222    0     0   3163      0 --:--:-- --:--:-- --:--:--  3964
     {"vertices":[{"id":"2:lop","label":"software","type":"vertex","properties":{"name":"lop","lang":"java","price":328}},{"id":"1:josh","label":"person","type":"vertex","properties":{"name":"josh","age":32,"city":"Beijing"}},{"id":"1:marko","label":"person","type":"vertex","properties":{"name":"marko","age":29,"city":"Beijing"}},{"id":"1:peter","label":"person","type":"vertex","properties":{"name":"peter","age":35,"city":"Shanghai"}},{"id":"1:vadas","label":"person","type":"vertex","properties":{"name":"vadas","age":27,"city":"Hongkong"}},{"id":"2:ripple","label":"software","type":"vertex","properties":{"name":"ripple","lang":"java","price":199}}]}
    -

    indicating the successful creation of the sample graph.

    The process of creating sample graph on server startup is similar when using IntelliJ IDEA and will not be described further.

    2 - HugeGraph-Loader Quick Start

    1 HugeGraph-Loader Overview

    HugeGraph-Loader is the data import component of HugeGraph, which can convert data from various data sources into graph vertices and edges and import them into the graph database in batches.

    Currently supported data sources include:

    • Local disk file or directory, supports TEXT, CSV and JSON format files, supports compressed files
    • HDFS file or directory, supports compressed files
    • Mainstream relational databases, such as MySQL, PostgreSQL, Oracle, SQL Server

    Local disk files and HDFS files support resumable uploads.

    It will be explained in detail below.

    Note: HugeGraph-Loader requires HugeGraph Server service, please refer to HugeGraph-Server Quick Start to download and start Server

    2 Get HugeGraph-Loader

    There are two ways to get HugeGraph-Loader:

    • Download the compiled tarball
    • Clone source code then compile and install

    2.1 Download the compiled archive

    Download the latest version of the HugeGraph-Toolchain release package:

    wget https://downloads.apache.org/incubator/hugegraph/1.0.0/apache-hugegraph-toolchain-incubating-1.0.0.tar.gz
    +

    indicating the successful creation of the sample graph.

    The process of creating sample graph on server startup is similar when using IntelliJ IDEA and will not be described further.

    9.2 Specify command-line arguments in the startup script.

    Carry the -p true arguments when starting the script, which indicates preload, to create a sample graph.

    bin/start-hugegraph.sh -p true
    +Starting HugeGraphServer in daemon mode...
    +Connecting to HugeGraphServer (http://127.0.0.1:8080/graphs)......OK
    +

    And use the RESTful API to request HugeGraphServer and get the following result:

    > curl "http://localhost:8080/graphs/hugegraph/graph/vertices" | gunzip
    +
    +{"vertices":[{"id":"2:lop","label":"software","type":"vertex","properties":{"name":"lop","lang":"java","price":328}},{"id":"1:josh","label":"person","type":"vertex","properties":{"name":"josh","age":32,"city":"Beijing"}},{"id":"1:marko","label":"person","type":"vertex","properties":{"name":"marko","age":29,"city":"Beijing"}},{"id":"1:peter","label":"person","type":"vertex","properties":{"name":"peter","age":35,"city":"Shanghai"}},{"id":"1:vadas","label":"person","type":"vertex","properties":{"name":"vadas","age":27,"city":"Hongkong"}},{"id":"2:ripple","label":"software","type":"vertex","properties":{"name":"ripple","lang":"java","price":199}}]}
    +

    This indicates the successful creation of the sample graph.

    9.3 Use Docker or Docker Compose to add environment variables.

    Set the environment variable PRELOAD=true when starting Docker in order to load data during the execution of the startup script.

    1. Use docker run

      Use docker run -itd --name=graph -p 18080:8080 -e PRELOAD=true hugegraph/hugegraph:latest

    2. Use docker-compose

      Create docker-compose.yml as following

      version: '3'
      +  services:
      +    graph:
      +      image: hugegraph/hugegraph:latest
      +      container_name: graph
      +      environment:
      +        - PRELOAD=true
      +      ports:
      +        - 18080:8080
      +

      Use docker-compose up -d to start the container

    And use the RESTful API to request HugeGraphServer and get the following result:

    > curl "http://localhost:8080/graphs/hugegraph/graph/vertices" | gunzip
    +
    +{"vertices":[{"id":"2:lop","label":"software","type":"vertex","properties":{"name":"lop","lang":"java","price":328}},{"id":"1:josh","label":"person","type":"vertex","properties":{"name":"josh","age":32,"city":"Beijing"}},{"id":"1:marko","label":"person","type":"vertex","properties":{"name":"marko","age":29,"city":"Beijing"}},{"id":"1:peter","label":"person","type":"vertex","properties":{"name":"peter","age":35,"city":"Shanghai"}},{"id":"1:vadas","label":"person","type":"vertex","properties":{"name":"vadas","age":27,"city":"Hongkong"}},{"id":"2:ripple","label":"software","type":"vertex","properties":{"name":"ripple","lang":"java","price":199}}]}
    +

    This indicates the successful creation of the sample graph.

    2 - HugeGraph-Loader Quick Start

    1 HugeGraph-Loader Overview

    HugeGraph-Loader is the data import component of HugeGraph, which can convert data from various data sources into graph vertices and edges and import them into the graph database in batches.

    Currently supported data sources include:

    • Local disk file or directory, supports TEXT, CSV and JSON format files, supports compressed files
    • HDFS file or directory, supports compressed files
    • Mainstream relational databases, such as MySQL, PostgreSQL, Oracle, SQL Server

    Local disk files and HDFS files support resumable uploads.

    It will be explained in detail below.

    Note: HugeGraph-Loader requires HugeGraph Server service, please refer to HugeGraph-Server Quick Start to download and start Server

    2 Get HugeGraph-Loader

    There are two ways to get HugeGraph-Loader:

    • Download the compiled tarball
    • Clone source code then compile and install

    2.1 Download the compiled archive

    Download the latest version of the HugeGraph-Toolchain release package:

    wget https://downloads.apache.org/incubator/hugegraph/1.0.0/apache-hugegraph-toolchain-incubating-1.0.0.tar.gz
     tar zxf *hugegraph*.tar.gz
     

    2.2 Clone source code to compile and install

    Clone the latest version of HugeGraph-Loader source package:

    # 1. get from github
     git clone https://github.com/apache/hugegraph-toolchain.git
    @@ -1058,7 +1076,44 @@
     # restore graph mode
     ./bin/hugegraph --url http://127.0.0.1:8080 --graph hugegraph graph-mode-set -m NONE
     
    8. Graph Migration
    ./bin/hugegraph --url http://127.0.0.1:8080 --graph hugegraph migrate --target-url http://127.0.0.1:8090 --target-graph hugegraph
    -

    4 - HugeGraph-Hubble Quick Start

    1 HugeGraph-Hubble Overview

    HugeGraph is an analysis-oriented graph database system that supports batch operations, which fully supports Apache TinkerPop3 framework and Gremlin graph query language. It provides a complete tool chain ecology such as export, backup, and recovery, and effectively solve the storage, query and correlation analysis needs of massive graph data. HugeGraph is widely used in the fields of risk control, insurance claims, recommendation search, public security crime crackdown, knowledge graph, network security, IT operation and maintenance of bank securities companies, and is committed to allowing more industries, organizations and users to enjoy a wider range of data comprehensive value.

    HugeGraph-Hubble is HugeGraph’s one-stop visual analysis platform. The platform covers the whole process from data modeling, to efficient data import, to real-time and offline analysis of data, and unified management of graphs, realizing the whole process wizard of graph application. It is designed to improve the user’s use fluency, lower the user’s use threshold, and provide a more efficient and easy-to-use user experience.

    The platform mainly includes the following modules:

    Graph Management

    The graph management module realizes the unified management of multiple graphs and graph access, editing, deletion, and query by creating graph and connecting the platform and graph data.

    Metadata Modeling

    The metadata modeling module realizes the construction and management of graph models by creating attribute libraries, vertex types, edge types, and index types. The platform provides two modes, list mode and graph mode, which can display the metadata model in real time, which is more intuitive. At the same time, it also provides a metadata reuse function across graphs, which saves the tedious and repetitive creation process of the same metadata, greatly improves modeling efficiency and enhances ease of use.

    Data Import

    Data import is to convert the user’s business data into the vertices and edges of the graph and insert it into the graph database. The platform provides a wizard-style visual import module. By creating import tasks, the management of import tasks and the parallel operation of multiple import tasks are realized. Improve import performance. After entering the import task, you only need to follow the platform step prompts, upload files as needed, and fill in the content to easily implement the import process of graph data. At the same time, it supports breakpoint resuming, error retry mechanism, etc., which reduces import costs and improves efficiency.

    Graph Analysis

    By inputting the graph traversal language Gremlin, high-performance general analysis of graph data can be realized, and functions such as customized multidimensional path query of vertices can be provided, and three kinds of graph result display methods are provided, including: graph form, table form, Json form, and multidimensional display. The data form meets the needs of various scenarios used by users. It provides functions such as running records and collection of common statements, realizing the traceability of graph operations, and the reuse and sharing of query input, which is fast and efficient. It supports the export of graph data, and the export format is Json format.

    Task Management

    For Gremlin tasks that need to traverse the whole graph, index creation and reconstruction and other time-consuming asynchronous tasks, the platform provides corresponding task management functions to achieve unified management and result viewing of asynchronous tasks.

    2 Platform Workflow

    The module usage process of the platform is as follows:

    image

    3 Platform Instructions

    3.1 Graph Management

    3.1.1 Graph creation

    Under the graph management module, click [Create graph], and realize the connection of multiple graphs by filling in the graph ID, graph name, host name, port number, username, and password information.

    image

    Create graph by filling in the content as follows::

    image
    3.1.2 Graph Access

    Realize the information access of the graph space. After entering, you can perform operations such as multidimensional query analysis, metadata management, data import, and algorithm analysis of the graph.

    image
    3.1.3 Graph management
    1. Users can achieve unified management of graphs through overview, search, and information editing and deletion of single graphs.
    2. Search range: You can search for the graph name and ID.
    image

    3.2 Metadata Modeling (list + graph mode)

    3.2.1 Module entry

    Left navigation:

    image
    3.2.2 Property type
    3.2.2.1 Create type
    1. Fill in or select the attribute name, data type, and cardinality to complete the creation of the attribute.
    2. Created attributes can be used as attributes of vertex type and edge type.

    List mode:

    image

    Graph mode:

    image
    3.2.2.2 Reuse
    1. The platform provides the [Reuse] function, which can directly reuse the metadata of other graphs.
    2. Select the graph ID that needs to be reused, and continue to select the attributes that need to be reused. After that, the platform will check whether there is a conflict. After passing, the metadata can be reused.

    Select reuse items:

    image

    Check reuse items:

    image
    3.2.2.3 Management
    1. You can delete a single item or delete it in batches in the attribute list.
    3.2.3 Vertex type
    3.2.3.1 Create type
    1. Fill in or select the vertex type name, ID strategy, association attribute, primary key attribute, vertex style, content displayed below the vertex in the query result, and index information: including whether to create a type index, and the specific content of the attribute index, complete the vertex Type creation.

    List mode:

    image

    Graph mode:

    image
    3.2.3.2 Reuse
    1. The multiplexing of vertex types will reuse the attributes and attribute indexes associated with this type together.
    2. The reuse method is similar to the property reuse, see 3.2.2.2.
    3.2.3.3 Administration
    1. Editing operations are available. The vertex style, association type, vertex display content, and attribute index can be edited, and the rest cannot be edited.

    2. You can delete a single item or delete it in batches.

    image
    3.2.4 Edge Types
    3.2.4.1 Create
    1. Fill in or select the edge type name, start point type, end point type, associated attributes, whether to allow multiple connections, edge style, content displayed below the edge in the query result, and index information: including whether to create a type index, and attribute index The specific content, complete the creation of the edge type.

    List mode:

    image

    Graph mode:

    image
    3.2.4.2 Reuse
    1. The reuse of the edge type will reuse the start point type, end point type, associated attribute and attribute index of this type.
    2. The reuse method is similar to the property reuse, see 3.2.2.2.
    3.2.4.3 Administration
    1. Editing operations are available. Edge styles, associated attributes, edge display content, and attribute indexes can be edited, and the rest cannot be edited, the same as the vertex type.
    2. You can delete a single item or delete it in batches.
    3.2.5 Index Types

    Displays vertex and edge indices for vertex types and edge types.

    3.3 Data Import

    The usage process of data import is as follows:

    image
    3.3.1 Module entrance

    Left navigation:

    image
    3.3.2 Create task
    1. Fill in the task name and remarks (optional) to create an import task.
    2. Multiple import tasks can be created and imported in parallel.
    image
    3.3.3 Uploading files
    1. Upload the file that needs to be composed. The currently supported format is CSV, which will be updated continuously in the future.
    2. Multiple files can be uploaded at the same time.
    image
    3.3.4 Setting up data mapping
    1. Set up data mapping for uploaded files, including file settings and type settings

    2. File settings: Check or fill in whether to include the header, separator, encoding format and other settings of the file itself, all set the default values, no need to fill in manually

    3. Type setting:

      1. Vertex map and edge map:

        【Vertex Type】: Select the vertex type, and upload the column data in the file for its ID mapping;

        【Edge Type】: Select the edge type and map the column data of the uploaded file to the ID column of its start point type and end point type;

      2. Mapping settings: upload the column data in the file for the attribute mapping of the selected vertex type. Here, if the attribute name is the same as the header name of the file, the mapping attribute can be automatically matched, and there is no need to manually fill in the selection.

      3. After completing the setting, the setting list will be displayed before proceeding to the next step. It supports the operations of adding, editing and deleting mappings.

    Fill in the settings map:

    image

    Mapping list:

    image
    3.3.5 Import data

    Before importing, you need to fill in the import setting parameters. After filling in, you can start importing data into the gallery.

    1. Import settings
    • The import setting parameter items are as shown in the figure below, all set the default value, no need to fill in manually
    image
    1. Import details
    • Click Start Import to start the file import task
    • The import details provide the mapping type, import speed, import progress, time-consuming and the specific status of the current task set for each uploaded file, and can pause, resume, stop and other operations for each task
    • If the import fails, you can view the specific reason
    image

    3.4 Data Analysis

    3.4.1 Module entry

    Left navigation:

    image
    3.4.2 Multi-image switching

    By switching the entrance on the left, flexibly switch the operation space of multiple graphs

    image
    3.4.3 Graph Analysis and Processing

    HugeGraph supports Gremlin, a graph traversal query language of Apache TinkerPop3. Gremlin is a general graph database query language. By entering Gremlin statements and clicking execute, you can perform query and analysis operations on graph data, and create and delete vertices/edges. , vertex/edge attribute modification, etc.

    After Gremlin query, below is the graph result display area, which provides 3 kinds of graph result display modes: [Graph Mode], [Table Mode], [Json Mode].

    Support zoom, center, full screen, export and other operations.

    【Picture Mode】

    image

    【Table mode】

    image

    【Json mode】

    image
    3.4.4 Data Details

    Click the vertex/edge entity to view the data details of the vertex/edge, including: vertex/edge type, vertex ID, attribute and corresponding value, expand the information display dimension of the graph, and improve the usability.

    3.4.5 Multidimensional Path Query of Graph Results

    In addition to the global query, in-depth customized query and hidden operations can be performed for the vertices in the query result to realize customized mining of graph results.

    Right-click a vertex, and the menu entry of the vertex appears, which can be displayed, inquired, hidden, etc.

    • Expand: Click to display the vertices associated with the selected point.
    • Query: By selecting the edge type and edge direction associated with the selected point, and then selecting its attributes and corresponding filtering rules under this condition, a customized path display can be realized.
    • Hide: When clicked, hides the selected point and its associated edges.

    Double-clicking a vertex also displays the vertex associated with the selected point.

    image
    3.4.6 Add vertex/edge
    3.4.6.1 Added vertex

    In the graph area, two entries can be used to dynamically add vertices, as follows:

    1. Click on the graph area panel, the Add Vertex entry appears
    2. Click the first icon in the action bar in the upper right corner

    Complete the addition of vertices by selecting or filling in the vertex type, ID value, and attribute information.

    The entry is as follows:

    image

    Add the vertex content as follows:

    image
    3.4.6.2 Add edge

    Right-click a vertex in the graph result to add the outgoing or incoming edge of that point.

    3.4.7 Execute the query of records and favorites
    1. Record each query record at the bottom of the graph area, including: query time, execution type, content, status, time-consuming, as well as [collection] and [load] operations, to achieve a comprehensive record of graph execution, with traces to follow, and Can quickly load and reuse execution content
    2. Provides the function of collecting sentences, which can be used to collect frequently used sentences, which is convenient for fast calling of high-frequency sentences.
    image

    3.5 Task Management

    3.5.1 Module entry

    Left navigation:

    image
    3.5.2 Task Management
    1. Provide unified management and result viewing of asynchronous tasks. There are 4 types of asynchronous tasks, namely:
    • gremlin: Gremlin tasks
    • algorithm: OLAP algorithm task
    • remove_schema: remove metadata
    • rebuild_index: rebuild the index
    1. The list displays the asynchronous task information of the current graph, including: task ID, task name, task type, creation time, time-consuming, status, operation, and realizes the management of asynchronous tasks.
    2. Support filtering by task type and status
    3. Support searching for task ID and task name
    4. Asynchronous tasks can be deleted or deleted in batches
    image
    3.5.3 Gremlin asynchronous tasks
    1. Create a task
    • The data analysis module currently supports two Gremlin operations, Gremlin query and Gremlin task; if the user switches to the Gremlin task, after clicking execute, an asynchronous task will be created in the asynchronous task center;
    1. Task submission
    • After the task is submitted successfully, the graph area returns the submission result and task ID
    1. Mission details
    • Provide [View] entry, you can jump to the task details to view the specific execution of the current task After jumping to the task center, the currently executing task line will be displayed directly
    image

    Click to view the entry to jump to the task management list, as follows:

    image
    1. View the results
    • The results are displayed in the form of json
    3.5.4 OLAP algorithm tasks

    There is no visual OLAP algorithm execution on Hubble. You can call the RESTful API to perform OLAP algorithm tasks, find the corresponding tasks by ID in the task management, and view the progress and results.

    3.5.5 Delete metadata, rebuild index
    1. Create a task
    • In the metadata modeling module, when deleting metadata, an asynchronous task for deleting metadata can be created
    image
    • When editing an existing vertex/edge type operation, when adding an index, an asynchronous task of creating an index can be created
    image
    1. Task details
    • After confirming/saving, you can jump to the task center to view the details of the current task
    image

    5 - HugeGraph-Client Quick Start

    1 Overview Of Hugegraph

    HugeGraph-Client sends HTTP request to HugeGraph-Server to obtain and parse the execution result of Server. Currently only the HugeGraph-Client for Java is provided. You can use HugeGraph-Client to write Java code to operate HugeGraph, such as adding, deleting, modifying, and querying schema and graph data, or executing gremlin statements.

    2 What You Need

    • Java 11 (also support Java 8)
    • Maven 3.5+

    3 How To Use

    The basic steps to use HugeGraph-Client are as follows:

    • Build a new Maven project by IDEA or Eclipse
    • Add HugeGraph-Client dependency in pom file;
    • Create an object to invoke the interface of HugeGraph-Client

    See the complete example in the following section for the detail.

    4 Complete Example

    4.1 Build New Maven Project

    Using IDEA or Eclipse to create the project:

    4.2 Add Hugegraph-Client Dependency In POM

    <dependencies>
    +

    4 - HugeGraph-Hubble Quick Start

    1 HugeGraph-Hubble Overview

    HugeGraph is an analysis-oriented graph database system that supports batch operations, which fully supports Apache TinkerPop3 framework and Gremlin graph query language. It provides a complete tool chain ecology such as export, backup, and recovery, and effectively solve the storage, query and correlation analysis needs of massive graph data. HugeGraph is widely used in the fields of risk control, insurance claims, recommendation search, public security crime crackdown, knowledge graph, network security, IT operation and maintenance of bank securities companies, and is committed to allowing more industries, organizations and users to enjoy a wider range of data comprehensive value.

    HugeGraph-Hubble is HugeGraph’s one-stop visual analysis platform. The platform covers the whole process from data modeling, to efficient data import, to real-time and offline analysis of data, and unified management of graphs, realizing the whole process wizard of graph application. It is designed to improve the user’s use fluency, lower the user’s use threshold, and provide a more efficient and easy-to-use user experience.

    The platform mainly includes the following modules:

    Graph Management

    The graph management module realizes the unified management of multiple graphs and graph access, editing, deletion, and query by creating graph and connecting the platform and graph data.

    Metadata Modeling

    The metadata modeling module realizes the construction and management of graph models by creating attribute libraries, vertex types, edge types, and index types. The platform provides two modes, list mode and graph mode, which can display the metadata model in real time, which is more intuitive. At the same time, it also provides a metadata reuse function across graphs, which saves the tedious and repetitive creation process of the same metadata, greatly improves modeling efficiency and enhances ease of use.

    Data Import

    Data import is to convert the user’s business data into the vertices and edges of the graph and insert it into the graph database. The platform provides a wizard-style visual import module. By creating import tasks, the management of import tasks and the parallel operation of multiple import tasks are realized. Improve import performance. After entering the import task, you only need to follow the platform step prompts, upload files as needed, and fill in the content to easily implement the import process of graph data. At the same time, it supports breakpoint resuming, error retry mechanism, etc., which reduces import costs and improves efficiency.

    Graph Analysis

    By inputting the graph traversal language Gremlin, high-performance general analysis of graph data can be realized, and functions such as customized multidimensional path query of vertices can be provided, and three kinds of graph result display methods are provided, including: graph form, table form, Json form, and multidimensional display. The data form meets the needs of various scenarios used by users. It provides functions such as running records and collection of common statements, realizing the traceability of graph operations, and the reuse and sharing of query input, which is fast and efficient. It supports the export of graph data, and the export format is Json format.

    Task Management

    For Gremlin tasks that need to traverse the whole graph, index creation and reconstruction and other time-consuming asynchronous tasks, the platform provides corresponding task management functions to achieve unified management and result viewing of asynchronous tasks.

    2 Deploy

    There are three ways to deplot hugegraph-hubble

    • Download the Toolchain binary package
    • Source code compilation
    • Use Docker

    2.1 Download the Toolchain binary package

    hubble is in the toolchain project. First, download the binary tar tarball

    wget https://downloads.apache.org/incubator/hugegraph/1.0.0/apache-hugegraph-toolchain-incubating-{version}.tar.gz
    +tar -xvf apache-hugegraph-toolchain-incubating-{version}.tar.gz 
    +cd apache-hugegraph-toolchain-incubating-{version}.tar.gz/apache-hugegraph-hubble-incubating-{version}
    +

    Run hubble

    bin/start-hubble.sh
    +

    Then, we can see:

    starting HugeGraphHubble ..............timed out with http status 502
    +2023-08-30 20:38:34 [main] [INFO ] o.a.h.HugeGraphHubble [] - Starting HugeGraphHubble v1.0.0 on cpu05 with PID xxx (~/apache-hugegraph-toolchain-incubating-1.0.0/apache-hugegraph-hubble-incubating-1.0.0/lib/hubble-be-1.0.0.jar started by $USER in ~/apache-hugegraph-toolchain-incubating-1.0.0/apache-hugegraph-hubble-incubating-1.0.0)
    +...
    +2023-08-30 20:38:38 [main] [INFO ] c.z.h.HikariDataSource [] - hugegraph-hubble-HikariCP - Start completed.
    +2023-08-30 20:38:41 [main] [INFO ] o.a.c.h.Http11NioProtocol [] - Starting ProtocolHandler ["http-nio-0.0.0.0-8088"]
    +2023-08-30 20:38:41 [main] [INFO ] o.a.h.HugeGraphHubble [] - Started HugeGraphHubble in 7.379 seconds (JVM running for 8.499)
    +

    Then use a web browser to access ip:8088 and you can see the Hubble page. You can stop the service using bin/stop-hubble.sh.

    2.2 Source code compilation

    Note: Compiling Hubble requires the user’s local environment to have Node.js V16.x and yarn installed.

    apt install curl build-essential
    +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
    +source ~/.bashrc
    +nvm install 16
    +

    Then, verify that the installed Node.js version is 16.x (please note that higher Node version may cause conflicts).

    node -v
    +

    install yarn by the command below:

    npm install -g yarn
    +

    Download the toolchain source code.

    git clone https://github.com/apache/hugegraph-toolchain.git
    +

    Compile hubble. It depends on the loader and client, so you need to build these dependencies in advance during the compilation process (you can skip this step later).

    cd incubator-hugegraph-toolchain
    +sudo pip install -r hugegraph-hubble/hubble-dist/assembly/travis/requirements.txt
    +mvn install -pl hugegraph-client,hugegraph-loader -am -Dmaven.javadoc.skip=true -DskipTests -ntp
    +cd hugegraph-hubble
    +mvn -e compile package -Dmaven.javadoc.skip=true -Dmaven.test.skip=true -ntp
    +cd apache-hugegraph-hubble-incubating*
    +

    Run hubble

    bin/start-hubble.sh -d
    +

    2.3 Use docker

    Special Note: If you are starting hubble with Docker, and hubble and the server are on the same host. When configuring the hostname for the graph on the Hubble web page, please do not directly set it to localhost/127.0.0.1. This will refer to the hubble container internally rather than the host machine, resulting in a connection failure to the server.

    We can use docker run -itd --name=hubble -p 8088:8088 hugegraph/hubble to quick start hubble.

    Alternatively, you can use Docker Compose to start hubble. Additionally, if hubble and the graph are in the same Docker network, you can access the graph using the container name of the graph, eliminating the need for the host machine’s IP address.

    Use docker-compose up -ddocker-compose.yml is following:

    version: '3'
    +services:
    +  graph_hubble:
    +    image: hugegraph/hugegraph
    +    container_name: graph
    +    ports:
    +      - 18080:8080
    +
    +  hubble:
    +    image: hugegraph/hubble
    +    container_name: hubble
    +    ports:
    +      - 8088:8088
    +

    3 Platform Workflow

    The module usage process of the platform is as follows:

    image

    4 Platform Instructions

    4.1 Graph Management

    4.1.1 Graph creation

    Under the graph management module, click [Create graph], and realize the connection of multiple graphs by filling in the graph ID, graph name, host name, port number, username, and password information.

    image

    Create graph by filling in the content as follows::

    image
    4.1.2 Graph Access

    Realize the information access of the graph space. After entering, you can perform operations such as multidimensional query analysis, metadata management, data import, and algorithm analysis of the graph.

    image
    4.1.3 Graph management
    1. Users can achieve unified management of graphs through overview, search, and information editing and deletion of single graphs.
    2. Search range: You can search for the graph name and ID.
    image

    4.2 Metadata Modeling (list + graph mode)

    4.2.1 Module entry

    Left navigation:

    image
    4.2.2 Property type
    4.2.2.1 Create type
    1. Fill in or select the attribute name, data type, and cardinality to complete the creation of the attribute.
    2. Created attributes can be used as attributes of vertex type and edge type.

    List mode:

    image

    Graph mode:

    image
    4.2.2.2 Reuse
    1. The platform provides the [Reuse] function, which can directly reuse the metadata of other graphs.
    2. Select the graph ID that needs to be reused, and continue to select the attributes that need to be reused. After that, the platform will check whether there is a conflict. After passing, the metadata can be reused.

    Select reuse items:

    image

    Check reuse items:

    image
    4.2.2.3 Management
    1. You can delete a single item or delete it in batches in the attribute list.
    4.2.3 Vertex type
    4.2.3.1 Create type
    1. Fill in or select the vertex type name, ID strategy, association attribute, primary key attribute, vertex style, content displayed below the vertex in the query result, and index information: including whether to create a type index, and the specific content of the attribute index, complete the vertex Type creation.

    List mode:

    image

    Graph mode:

    image
    4.2.3.2 Reuse
    1. The multiplexing of vertex types will reuse the attributes and attribute indexes associated with this type together.
    2. The reuse method is similar to the property reuse, see 3.2.2.2.
    4.2.3.3 Administration
    1. Editing operations are available. The vertex style, association type, vertex display content, and attribute index can be edited, and the rest cannot be edited.

    2. You can delete a single item or delete it in batches.

    image
    4.2.4 Edge Types
    4.2.4.1 Create
    1. Fill in or select the edge type name, start point type, end point type, associated attributes, whether to allow multiple connections, edge style, content displayed below the edge in the query result, and index information: including whether to create a type index, and attribute index The specific content, complete the creation of the edge type.

    List mode:

    image

    Graph mode:

    image
    4.2.4.2 Reuse
    1. The reuse of the edge type will reuse the start point type, end point type, associated attribute and attribute index of this type.
    2. The reuse method is similar to the property reuse, see 3.2.2.2.
    4.2.4.3 Administration
    1. Editing operations are available. Edge styles, associated attributes, edge display content, and attribute indexes can be edited, and the rest cannot be edited, the same as the vertex type.
    2. You can delete a single item or delete it in batches.
    4.2.5 Index Types

    Displays vertex and edge indices for vertex types and edge types.

    4.3 Data Import

    The usage process of data import is as follows:

    image
    4.3.1 Module entrance

    Left navigation:

    image
    4.3.2 Create task
    1. Fill in the task name and remarks (optional) to create an import task.
    2. Multiple import tasks can be created and imported in parallel.
    image
    4.3.3 Uploading files
    1. Upload the file that needs to be composed. The currently supported format is CSV, which will be updated continuously in the future.
    2. Multiple files can be uploaded at the same time.
    image
    4.3.4 Setting up data mapping
    1. Set up data mapping for uploaded files, including file settings and type settings

    2. File settings: Check or fill in whether to include the header, separator, encoding format and other settings of the file itself, all set the default values, no need to fill in manually

    3. Type setting:

      1. Vertex map and edge map:

        【Vertex Type】: Select the vertex type, and upload the column data in the file for its ID mapping;

        【Edge Type】: Select the edge type and map the column data of the uploaded file to the ID column of its start point type and end point type;

      2. Mapping settings: upload the column data in the file for the attribute mapping of the selected vertex type. Here, if the attribute name is the same as the header name of the file, the mapping attribute can be automatically matched, and there is no need to manually fill in the selection.

      3. After completing the setting, the setting list will be displayed before proceeding to the next step. It supports the operations of adding, editing and deleting mappings.

    Fill in the settings map:

    image

    Mapping list:

    image
    4.3.5 Import data

    Before importing, you need to fill in the import setting parameters. After filling in, you can start importing data into the gallery.

    1. Import settings
    • The import setting parameter items are as shown in the figure below, all set the default value, no need to fill in manually
    image
    1. Import details
    • Click Start Import to start the file import task
    • The import details provide the mapping type, import speed, import progress, time-consuming and the specific status of the current task set for each uploaded file, and can pause, resume, stop and other operations for each task
    • If the import fails, you can view the specific reason
    image

    4.4 Data Analysis

    4.4.1 Module entry

    Left navigation:

    image
    4.4.2 Multi-image switching

    By switching the entrance on the left, flexibly switch the operation space of multiple graphs

    image
    4.4.3 Graph Analysis and Processing

    HugeGraph supports Gremlin, a graph traversal query language of Apache TinkerPop3. Gremlin is a general graph database query language. By entering Gremlin statements and clicking execute, you can perform query and analysis operations on graph data, and create and delete vertices/edges. , vertex/edge attribute modification, etc.

    After Gremlin query, below is the graph result display area, which provides 3 kinds of graph result display modes: [Graph Mode], [Table Mode], [Json Mode].

    Support zoom, center, full screen, export and other operations.

    【Picture Mode】

    image

    【Table mode】

    image

    【Json mode】

    image
    4.4.4 Data Details

    Click the vertex/edge entity to view the data details of the vertex/edge, including: vertex/edge type, vertex ID, attribute and corresponding value, expand the information display dimension of the graph, and improve the usability.

    4.4.5 Multidimensional Path Query of Graph Results

    In addition to the global query, in-depth customized query and hidden operations can be performed for the vertices in the query result to realize customized mining of graph results.

    Right-click a vertex, and the menu entry of the vertex appears, which can be displayed, inquired, hidden, etc.

    • Expand: Click to display the vertices associated with the selected point.
    • Query: By selecting the edge type and edge direction associated with the selected point, and then selecting its attributes and corresponding filtering rules under this condition, a customized path display can be realized.
    • Hide: When clicked, hides the selected point and its associated edges.

    Double-clicking a vertex also displays the vertex associated with the selected point.

    image
    4.4.6 Add vertex/edge
    4.4.6.1 Added vertex

    In the graph area, two entries can be used to dynamically add vertices, as follows:

    1. Click on the graph area panel, the Add Vertex entry appears
    2. Click the first icon in the action bar in the upper right corner

    Complete the addition of vertices by selecting or filling in the vertex type, ID value, and attribute information.

    The entry is as follows:

    image

    Add the vertex content as follows:

    image
    4.4.6.2 Add edge

    Right-click a vertex in the graph result to add the outgoing or incoming edge of that point.

    4.4.7 Execute the query of records and favorites
    1. Record each query record at the bottom of the graph area, including: query time, execution type, content, status, time-consuming, as well as [collection] and [load] operations, to achieve a comprehensive record of graph execution, with traces to follow, and Can quickly load and reuse execution content
    2. Provides the function of collecting sentences, which can be used to collect frequently used sentences, which is convenient for fast calling of high-frequency sentences.
    image

    4.5 Task Management

    4.5.1 Module entry

    Left navigation:

    image
    4.5.2 Task Management
    1. Provide unified management and result viewing of asynchronous tasks. There are 4 types of asynchronous tasks, namely:
    • gremlin: Gremlin tasks
    • algorithm: OLAP algorithm task
    • remove_schema: remove metadata
    • rebuild_index: rebuild the index
    1. The list displays the asynchronous task information of the current graph, including: task ID, task name, task type, creation time, time-consuming, status, operation, and realizes the management of asynchronous tasks.
    2. Support filtering by task type and status
    3. Support searching for task ID and task name
    4. Asynchronous tasks can be deleted or deleted in batches
    image
    4.5.3 Gremlin asynchronous tasks
    1. Create a task
    • The data analysis module currently supports two Gremlin operations, Gremlin query and Gremlin task; if the user switches to the Gremlin task, after clicking execute, an asynchronous task will be created in the asynchronous task center;
    1. Task submission
    • After the task is submitted successfully, the graph area returns the submission result and task ID
    1. Mission details
    • Provide [View] entry, you can jump to the task details to view the specific execution of the current task After jumping to the task center, the currently executing task line will be displayed directly
    image

    Click to view the entry to jump to the task management list, as follows:

    image
    1. View the results
    • The results are displayed in the form of json
    4.5.4 OLAP algorithm tasks

    There is no visual OLAP algorithm execution on Hubble. You can call the RESTful API to perform OLAP algorithm tasks, find the corresponding tasks by ID in the task management, and view the progress and results.

    4.5.5 Delete metadata, rebuild index
    1. Create a task
    • In the metadata modeling module, when deleting metadata, an asynchronous task for deleting metadata can be created
    image
    • When editing an existing vertex/edge type operation, when adding an index, an asynchronous task of creating an index can be created
    image
    1. Task details
    • After confirming/saving, you can jump to the task center to view the details of the current task
    image

    5 - HugeGraph-Client Quick Start

    1 Overview Of Hugegraph

    HugeGraph-Client sends HTTP request to HugeGraph-Server to obtain and parse the execution result of Server. Currently only the HugeGraph-Client for Java is provided. You can use HugeGraph-Client to write Java code to operate HugeGraph, such as adding, deleting, modifying, and querying schema and graph data, or executing gremlin statements.

    2 What You Need

    • Java 11 (also support Java 8)
    • Maven 3.5+

    3 How To Use

    The basic steps to use HugeGraph-Client are as follows:

    • Build a new Maven project by IDEA or Eclipse
    • Add HugeGraph-Client dependency in pom file;
    • Create an object to invoke the interface of HugeGraph-Client

    See the complete example in the following section for the detail.

    4 Complete Example

    4.1 Build New Maven Project

    Using IDEA or Eclipse to create the project:

    4.2 Add Hugegraph-Client Dependency In POM

    <dependencies>
         <dependency>
             <groupId>org.apache.hugegraph</groupId>
             <artifactId>hugegraph-client</artifactId>
    diff --git a/docs/quickstart/hugegraph-hubble/index.html b/docs/quickstart/hugegraph-hubble/index.html
    index 7dd828fe0..f6520dc31 100644
    --- a/docs/quickstart/hugegraph-hubble/index.html
    +++ b/docs/quickstart/hugegraph-hubble/index.html
    @@ -1,11 +1,48 @@
     HugeGraph-Hubble Quick Start | HugeGraph
    +HugeGraph is an analysis-oriented graph database system that supports batch operations, which fully supports Apache …">
     

    HugeGraph-Hubble Quick Start

    1 HugeGraph-Hubble Overview

    HugeGraph is an analysis-oriented graph database system that supports batch operations, which fully supports Apache TinkerPop3 framework and Gremlin graph query language. It provides a complete tool chain ecology such as export, backup, and recovery, and effectively solve the storage, query and correlation analysis needs of massive graph data. HugeGraph is widely used in the fields of risk control, insurance claims, recommendation search, public security crime crackdown, knowledge graph, network security, IT operation and maintenance of bank securities companies, and is committed to allowing more industries, organizations and users to enjoy a wider range of data comprehensive value.

    HugeGraph-Hubble is HugeGraph’s one-stop visual analysis platform. The platform covers the whole process from data modeling, to efficient data import, to real-time and offline analysis of data, and unified management of graphs, realizing the whole process wizard of graph application. It is designed to improve the user’s use fluency, lower the user’s use threshold, and provide a more efficient and easy-to-use user experience.

    The platform mainly includes the following modules:

    Graph Management

    The graph management module realizes the unified management of multiple graphs and graph access, editing, deletion, and query by creating graph and connecting the platform and graph data.

    Metadata Modeling

    The metadata modeling module realizes the construction and management of graph models by creating attribute libraries, vertex types, edge types, and index types. The platform provides two modes, list mode and graph mode, which can display the metadata model in real time, which is more intuitive. At the same time, it also provides a metadata reuse function across graphs, which saves the tedious and repetitive creation process of the same metadata, greatly improves modeling efficiency and enhances ease of use.

    Data Import

    Data import is to convert the user’s business data into the vertices and edges of the graph and insert it into the graph database. The platform provides a wizard-style visual import module. By creating import tasks, the management of import tasks and the parallel operation of multiple import tasks are realized. Improve import performance. After entering the import task, you only need to follow the platform step prompts, upload files as needed, and fill in the content to easily implement the import process of graph data. At the same time, it supports breakpoint resuming, error retry mechanism, etc., which reduces import costs and improves efficiency.

    Graph Analysis

    By inputting the graph traversal language Gremlin, high-performance general analysis of graph data can be realized, and functions such as customized multidimensional path query of vertices can be provided, and three kinds of graph result display methods are provided, including: graph form, table form, Json form, and multidimensional display. The data form meets the needs of various scenarios used by users. It provides functions such as running records and collection of common statements, realizing the traceability of graph operations, and the reuse and sharing of query input, which is fast and efficient. It supports the export of graph data, and the export format is Json format.

    Task Management

    For Gremlin tasks that need to traverse the whole graph, index creation and reconstruction and other time-consuming asynchronous tasks, the platform provides corresponding task management functions to achieve unified management and result viewing of asynchronous tasks.

    2 Platform Workflow

    The module usage process of the platform is as follows:

    image

    3 Platform Instructions

    3.1 Graph Management

    3.1.1 Graph creation

    Under the graph management module, click [Create graph], and realize the connection of multiple graphs by filling in the graph ID, graph name, host name, port number, username, and password information.

    image

    Create graph by filling in the content as follows::

    image
    3.1.2 Graph Access

    Realize the information access of the graph space. After entering, you can perform operations such as multidimensional query analysis, metadata management, data import, and algorithm analysis of the graph.

    image
    3.1.3 Graph management
    1. Users can achieve unified management of graphs through overview, search, and information editing and deletion of single graphs.
    2. Search range: You can search for the graph name and ID.
    image

    3.2 Metadata Modeling (list + graph mode)

    3.2.1 Module entry

    Left navigation:

    image
    3.2.2 Property type
    3.2.2.1 Create type
    1. Fill in or select the attribute name, data type, and cardinality to complete the creation of the attribute.
    2. Created attributes can be used as attributes of vertex type and edge type.

    List mode:

    image

    Graph mode:

    image
    3.2.2.2 Reuse
    1. The platform provides the [Reuse] function, which can directly reuse the metadata of other graphs.
    2. Select the graph ID that needs to be reused, and continue to select the attributes that need to be reused. After that, the platform will check whether there is a conflict. After passing, the metadata can be reused.

    Select reuse items:

    image

    Check reuse items:

    image
    3.2.2.3 Management
    1. You can delete a single item or delete it in batches in the attribute list.
    3.2.3 Vertex type
    3.2.3.1 Create type
    1. Fill in or select the vertex type name, ID strategy, association attribute, primary key attribute, vertex style, content displayed below the vertex in the query result, and index information: including whether to create a type index, and the specific content of the attribute index, complete the vertex Type creation.

    List mode:

    image

    Graph mode:

    image
    3.2.3.2 Reuse
    1. The multiplexing of vertex types will reuse the attributes and attribute indexes associated with this type together.
    2. The reuse method is similar to the property reuse, see 3.2.2.2.
    3.2.3.3 Administration
    1. Editing operations are available. The vertex style, association type, vertex display content, and attribute index can be edited, and the rest cannot be edited.

    2. You can delete a single item or delete it in batches.

    image
    3.2.4 Edge Types
    3.2.4.1 Create
    1. Fill in or select the edge type name, start point type, end point type, associated attributes, whether to allow multiple connections, edge style, content displayed below the edge in the query result, and index information: including whether to create a type index, and attribute index The specific content, complete the creation of the edge type.

    List mode:

    image

    Graph mode:

    image
    3.2.4.2 Reuse
    1. The reuse of the edge type will reuse the start point type, end point type, associated attribute and attribute index of this type.
    2. The reuse method is similar to the property reuse, see 3.2.2.2.
    3.2.4.3 Administration
    1. Editing operations are available. Edge styles, associated attributes, edge display content, and attribute indexes can be edited, and the rest cannot be edited, the same as the vertex type.
    2. You can delete a single item or delete it in batches.
    3.2.5 Index Types

    Displays vertex and edge indices for vertex types and edge types.

    3.3 Data Import

    The usage process of data import is as follows:

    image
    3.3.1 Module entrance

    Left navigation:

    image
    3.3.2 Create task
    1. Fill in the task name and remarks (optional) to create an import task.
    2. Multiple import tasks can be created and imported in parallel.
    image
    3.3.3 Uploading files
    1. Upload the file that needs to be composed. The currently supported format is CSV, which will be updated continuously in the future.
    2. Multiple files can be uploaded at the same time.
    image
    3.3.4 Setting up data mapping
    1. Set up data mapping for uploaded files, including file settings and type settings

    2. File settings: Check or fill in whether to include the header, separator, encoding format and other settings of the file itself, all set the default values, no need to fill in manually

    3. Type setting:

      1. Vertex map and edge map:

        【Vertex Type】: Select the vertex type, and upload the column data in the file for its ID mapping;

        【Edge Type】: Select the edge type and map the column data of the uploaded file to the ID column of its start point type and end point type;

      2. Mapping settings: upload the column data in the file for the attribute mapping of the selected vertex type. Here, if the attribute name is the same as the header name of the file, the mapping attribute can be automatically matched, and there is no need to manually fill in the selection.

      3. After completing the setting, the setting list will be displayed before proceeding to the next step. It supports the operations of adding, editing and deleting mappings.

    Fill in the settings map:

    image

    Mapping list:

    image
    3.3.5 Import data

    Before importing, you need to fill in the import setting parameters. After filling in, you can start importing data into the gallery.

    1. Import settings
    • The import setting parameter items are as shown in the figure below, all set the default value, no need to fill in manually
    image
    1. Import details
    • Click Start Import to start the file import task
    • The import details provide the mapping type, import speed, import progress, time-consuming and the specific status of the current task set for each uploaded file, and can pause, resume, stop and other operations for each task
    • If the import fails, you can view the specific reason
    image

    3.4 Data Analysis

    3.4.1 Module entry

    Left navigation:

    image
    3.4.2 Multi-image switching

    By switching the entrance on the left, flexibly switch the operation space of multiple graphs

    image
    3.4.3 Graph Analysis and Processing

    HugeGraph supports Gremlin, a graph traversal query language of Apache TinkerPop3. Gremlin is a general graph database query language. By entering Gremlin statements and clicking execute, you can perform query and analysis operations on graph data, and create and delete vertices/edges. , vertex/edge attribute modification, etc.

    After Gremlin query, below is the graph result display area, which provides 3 kinds of graph result display modes: [Graph Mode], [Table Mode], [Json Mode].

    Support zoom, center, full screen, export and other operations.

    【Picture Mode】

    image

    【Table mode】

    image

    【Json mode】

    image
    3.4.4 Data Details

    Click the vertex/edge entity to view the data details of the vertex/edge, including: vertex/edge type, vertex ID, attribute and corresponding value, expand the information display dimension of the graph, and improve the usability.

    3.4.5 Multidimensional Path Query of Graph Results

    In addition to the global query, in-depth customized query and hidden operations can be performed for the vertices in the query result to realize customized mining of graph results.

    Right-click a vertex, and the menu entry of the vertex appears, which can be displayed, inquired, hidden, etc.

    • Expand: Click to display the vertices associated with the selected point.
    • Query: By selecting the edge type and edge direction associated with the selected point, and then selecting its attributes and corresponding filtering rules under this condition, a customized path display can be realized.
    • Hide: When clicked, hides the selected point and its associated edges.

    Double-clicking a vertex also displays the vertex associated with the selected point.

    image
    3.4.6 Add vertex/edge
    3.4.6.1 Added vertex

    In the graph area, two entries can be used to dynamically add vertices, as follows:

    1. Click on the graph area panel, the Add Vertex entry appears
    2. Click the first icon in the action bar in the upper right corner

    Complete the addition of vertices by selecting or filling in the vertex type, ID value, and attribute information.

    The entry is as follows:

    image

    Add the vertex content as follows:

    image
    3.4.6.2 Add edge

    Right-click a vertex in the graph result to add the outgoing or incoming edge of that point.

    3.4.7 Execute the query of records and favorites
    1. Record each query record at the bottom of the graph area, including: query time, execution type, content, status, time-consuming, as well as [collection] and [load] operations, to achieve a comprehensive record of graph execution, with traces to follow, and Can quickly load and reuse execution content
    2. Provides the function of collecting sentences, which can be used to collect frequently used sentences, which is convenient for fast calling of high-frequency sentences.
    image

    3.5 Task Management

    3.5.1 Module entry

    Left navigation:

    image
    3.5.2 Task Management
    1. Provide unified management and result viewing of asynchronous tasks. There are 4 types of asynchronous tasks, namely:
    • gremlin: Gremlin tasks
    • algorithm: OLAP algorithm task
    • remove_schema: remove metadata
    • rebuild_index: rebuild the index
    1. The list displays the asynchronous task information of the current graph, including: task ID, task name, task type, creation time, time-consuming, status, operation, and realizes the management of asynchronous tasks.
    2. Support filtering by task type and status
    3. Support searching for task ID and task name
    4. Asynchronous tasks can be deleted or deleted in batches
    image
    3.5.3 Gremlin asynchronous tasks
    1. Create a task
    • The data analysis module currently supports two Gremlin operations, Gremlin query and Gremlin task; if the user switches to the Gremlin task, after clicking execute, an asynchronous task will be created in the asynchronous task center;
    1. Task submission
    • After the task is submitted successfully, the graph area returns the submission result and task ID
    1. Mission details
    • Provide [View] entry, you can jump to the task details to view the specific execution of the current task After jumping to the task center, the currently executing task line will be displayed directly
    image

    Click to view the entry to jump to the task management list, as follows:

    image
    1. View the results
    • The results are displayed in the form of json
    3.5.4 OLAP algorithm tasks

    There is no visual OLAP algorithm execution on Hubble. You can call the RESTful API to perform OLAP algorithm tasks, find the corresponding tasks by ID in the task management, and view the progress and results.

    3.5.5 Delete metadata, rebuild index
    1. Create a task
    • In the metadata modeling module, when deleting metadata, an asynchronous task for deleting metadata can be created
    image
    • When editing an existing vertex/edge type operation, when adding an index, an asynchronous task of creating an index can be created
    image
    1. Task details
    • After confirming/saving, you can jump to the task center to view the details of the current task
    image

    + Print entire section

    HugeGraph-Hubble Quick Start

    1 HugeGraph-Hubble Overview

    HugeGraph is an analysis-oriented graph database system that supports batch operations, which fully supports Apache TinkerPop3 framework and Gremlin graph query language. It provides a complete tool chain ecology such as export, backup, and recovery, and effectively solve the storage, query and correlation analysis needs of massive graph data. HugeGraph is widely used in the fields of risk control, insurance claims, recommendation search, public security crime crackdown, knowledge graph, network security, IT operation and maintenance of bank securities companies, and is committed to allowing more industries, organizations and users to enjoy a wider range of data comprehensive value.

    HugeGraph-Hubble is HugeGraph’s one-stop visual analysis platform. The platform covers the whole process from data modeling, to efficient data import, to real-time and offline analysis of data, and unified management of graphs, realizing the whole process wizard of graph application. It is designed to improve the user’s use fluency, lower the user’s use threshold, and provide a more efficient and easy-to-use user experience.

    The platform mainly includes the following modules:

    Graph Management

    The graph management module realizes the unified management of multiple graphs and graph access, editing, deletion, and query by creating graph and connecting the platform and graph data.

    Metadata Modeling

    The metadata modeling module realizes the construction and management of graph models by creating attribute libraries, vertex types, edge types, and index types. The platform provides two modes, list mode and graph mode, which can display the metadata model in real time, which is more intuitive. At the same time, it also provides a metadata reuse function across graphs, which saves the tedious and repetitive creation process of the same metadata, greatly improves modeling efficiency and enhances ease of use.

    Data Import

    Data import is to convert the user’s business data into the vertices and edges of the graph and insert it into the graph database. The platform provides a wizard-style visual import module. By creating import tasks, the management of import tasks and the parallel operation of multiple import tasks are realized. Improve import performance. After entering the import task, you only need to follow the platform step prompts, upload files as needed, and fill in the content to easily implement the import process of graph data. At the same time, it supports breakpoint resuming, error retry mechanism, etc., which reduces import costs and improves efficiency.

    Graph Analysis

    By inputting the graph traversal language Gremlin, high-performance general analysis of graph data can be realized, and functions such as customized multidimensional path query of vertices can be provided, and three kinds of graph result display methods are provided, including: graph form, table form, Json form, and multidimensional display. The data form meets the needs of various scenarios used by users. It provides functions such as running records and collection of common statements, realizing the traceability of graph operations, and the reuse and sharing of query input, which is fast and efficient. It supports the export of graph data, and the export format is Json format.

    Task Management

    For Gremlin tasks that need to traverse the whole graph, index creation and reconstruction and other time-consuming asynchronous tasks, the platform provides corresponding task management functions to achieve unified management and result viewing of asynchronous tasks.

    2 Deploy

    There are three ways to deplot hugegraph-hubble

    • Download the Toolchain binary package
    • Source code compilation
    • Use Docker

    2.1 Download the Toolchain binary package

    hubble is in the toolchain project. First, download the binary tar tarball

    wget https://downloads.apache.org/incubator/hugegraph/1.0.0/apache-hugegraph-toolchain-incubating-{version}.tar.gz
    +tar -xvf apache-hugegraph-toolchain-incubating-{version}.tar.gz 
    +cd apache-hugegraph-toolchain-incubating-{version}.tar.gz/apache-hugegraph-hubble-incubating-{version}
    +

    Run hubble

    bin/start-hubble.sh
    +

    Then, we can see:

    starting HugeGraphHubble ..............timed out with http status 502
    +2023-08-30 20:38:34 [main] [INFO ] o.a.h.HugeGraphHubble [] - Starting HugeGraphHubble v1.0.0 on cpu05 with PID xxx (~/apache-hugegraph-toolchain-incubating-1.0.0/apache-hugegraph-hubble-incubating-1.0.0/lib/hubble-be-1.0.0.jar started by $USER in ~/apache-hugegraph-toolchain-incubating-1.0.0/apache-hugegraph-hubble-incubating-1.0.0)
    +...
    +2023-08-30 20:38:38 [main] [INFO ] c.z.h.HikariDataSource [] - hugegraph-hubble-HikariCP - Start completed.
    +2023-08-30 20:38:41 [main] [INFO ] o.a.c.h.Http11NioProtocol [] - Starting ProtocolHandler ["http-nio-0.0.0.0-8088"]
    +2023-08-30 20:38:41 [main] [INFO ] o.a.h.HugeGraphHubble [] - Started HugeGraphHubble in 7.379 seconds (JVM running for 8.499)
    +

    Then use a web browser to access ip:8088 and you can see the Hubble page. You can stop the service using bin/stop-hubble.sh.

    2.2 Source code compilation

    Note: Compiling Hubble requires the user’s local environment to have Node.js V16.x and yarn installed.

    apt install curl build-essential
    +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
    +source ~/.bashrc
    +nvm install 16
    +

    Then, verify that the installed Node.js version is 16.x (please note that higher Node version may cause conflicts).

    node -v
    +

    install yarn by the command below:

    npm install -g yarn
    +

    Download the toolchain source code.

    git clone https://github.com/apache/hugegraph-toolchain.git
    +

    Compile hubble. It depends on the loader and client, so you need to build these dependencies in advance during the compilation process (you can skip this step later).

    cd incubator-hugegraph-toolchain
    +sudo pip install -r hugegraph-hubble/hubble-dist/assembly/travis/requirements.txt
    +mvn install -pl hugegraph-client,hugegraph-loader -am -Dmaven.javadoc.skip=true -DskipTests -ntp
    +cd hugegraph-hubble
    +mvn -e compile package -Dmaven.javadoc.skip=true -Dmaven.test.skip=true -ntp
    +cd apache-hugegraph-hubble-incubating*
    +

    Run hubble

    bin/start-hubble.sh -d
    +

    2.3 Use docker

    Special Note: If you are starting hubble with Docker, and hubble and the server are on the same host. When configuring the hostname for the graph on the Hubble web page, please do not directly set it to localhost/127.0.0.1. This will refer to the hubble container internally rather than the host machine, resulting in a connection failure to the server.

    We can use docker run -itd --name=hubble -p 8088:8088 hugegraph/hubble to quick start hubble.

    Alternatively, you can use Docker Compose to start hubble. Additionally, if hubble and the graph are in the same Docker network, you can access the graph using the container name of the graph, eliminating the need for the host machine’s IP address.

    Use docker-compose up -ddocker-compose.yml is following:

    version: '3'
    +services:
    +  graph_hubble:
    +    image: hugegraph/hugegraph
    +    container_name: graph
    +    ports:
    +      - 18080:8080
    +
    +  hubble:
    +    image: hugegraph/hubble
    +    container_name: hubble
    +    ports:
    +      - 8088:8088
    +

    3 Platform Workflow

    The module usage process of the platform is as follows:

    image

    4 Platform Instructions

    4.1 Graph Management

    4.1.1 Graph creation

    Under the graph management module, click [Create graph], and realize the connection of multiple graphs by filling in the graph ID, graph name, host name, port number, username, and password information.

    image

    Create graph by filling in the content as follows::

    image
    4.1.2 Graph Access

    Realize the information access of the graph space. After entering, you can perform operations such as multidimensional query analysis, metadata management, data import, and algorithm analysis of the graph.

    image
    4.1.3 Graph management
    1. Users can achieve unified management of graphs through overview, search, and information editing and deletion of single graphs.
    2. Search range: You can search for the graph name and ID.
    image

    4.2 Metadata Modeling (list + graph mode)

    4.2.1 Module entry

    Left navigation:

    image
    4.2.2 Property type
    4.2.2.1 Create type
    1. Fill in or select the attribute name, data type, and cardinality to complete the creation of the attribute.
    2. Created attributes can be used as attributes of vertex type and edge type.

    List mode:

    image

    Graph mode:

    image
    4.2.2.2 Reuse
    1. The platform provides the [Reuse] function, which can directly reuse the metadata of other graphs.
    2. Select the graph ID that needs to be reused, and continue to select the attributes that need to be reused. After that, the platform will check whether there is a conflict. After passing, the metadata can be reused.

    Select reuse items:

    image

    Check reuse items:

    image
    4.2.2.3 Management
    1. You can delete a single item or delete it in batches in the attribute list.
    4.2.3 Vertex type
    4.2.3.1 Create type
    1. Fill in or select the vertex type name, ID strategy, association attribute, primary key attribute, vertex style, content displayed below the vertex in the query result, and index information: including whether to create a type index, and the specific content of the attribute index, complete the vertex Type creation.

    List mode:

    image

    Graph mode:

    image
    4.2.3.2 Reuse
    1. The multiplexing of vertex types will reuse the attributes and attribute indexes associated with this type together.
    2. The reuse method is similar to the property reuse, see 3.2.2.2.
    4.2.3.3 Administration
    1. Editing operations are available. The vertex style, association type, vertex display content, and attribute index can be edited, and the rest cannot be edited.

    2. You can delete a single item or delete it in batches.

    image
    4.2.4 Edge Types
    4.2.4.1 Create
    1. Fill in or select the edge type name, start point type, end point type, associated attributes, whether to allow multiple connections, edge style, content displayed below the edge in the query result, and index information: including whether to create a type index, and attribute index The specific content, complete the creation of the edge type.

    List mode:

    image

    Graph mode:

    image
    4.2.4.2 Reuse
    1. The reuse of the edge type will reuse the start point type, end point type, associated attribute and attribute index of this type.
    2. The reuse method is similar to the property reuse, see 3.2.2.2.
    4.2.4.3 Administration
    1. Editing operations are available. Edge styles, associated attributes, edge display content, and attribute indexes can be edited, and the rest cannot be edited, the same as the vertex type.
    2. You can delete a single item or delete it in batches.
    4.2.5 Index Types

    Displays vertex and edge indices for vertex types and edge types.

    4.3 Data Import

    The usage process of data import is as follows:

    image
    4.3.1 Module entrance

    Left navigation:

    image
    4.3.2 Create task
    1. Fill in the task name and remarks (optional) to create an import task.
    2. Multiple import tasks can be created and imported in parallel.
    image
    4.3.3 Uploading files
    1. Upload the file that needs to be composed. The currently supported format is CSV, which will be updated continuously in the future.
    2. Multiple files can be uploaded at the same time.
    image
    4.3.4 Setting up data mapping
    1. Set up data mapping for uploaded files, including file settings and type settings

    2. File settings: Check or fill in whether to include the header, separator, encoding format and other settings of the file itself, all set the default values, no need to fill in manually

    3. Type setting:

      1. Vertex map and edge map:

        【Vertex Type】: Select the vertex type, and upload the column data in the file for its ID mapping;

        【Edge Type】: Select the edge type and map the column data of the uploaded file to the ID column of its start point type and end point type;

      2. Mapping settings: upload the column data in the file for the attribute mapping of the selected vertex type. Here, if the attribute name is the same as the header name of the file, the mapping attribute can be automatically matched, and there is no need to manually fill in the selection.

      3. After completing the setting, the setting list will be displayed before proceeding to the next step. It supports the operations of adding, editing and deleting mappings.

    Fill in the settings map:

    image

    Mapping list:

    image
    4.3.5 Import data

    Before importing, you need to fill in the import setting parameters. After filling in, you can start importing data into the gallery.

    1. Import settings
    • The import setting parameter items are as shown in the figure below, all set the default value, no need to fill in manually
    image
    1. Import details
    • Click Start Import to start the file import task
    • The import details provide the mapping type, import speed, import progress, time-consuming and the specific status of the current task set for each uploaded file, and can pause, resume, stop and other operations for each task
    • If the import fails, you can view the specific reason
    image

    4.4 Data Analysis

    4.4.1 Module entry

    Left navigation:

    image
    4.4.2 Multi-image switching

    By switching the entrance on the left, flexibly switch the operation space of multiple graphs

    image
    4.4.3 Graph Analysis and Processing

    HugeGraph supports Gremlin, a graph traversal query language of Apache TinkerPop3. Gremlin is a general graph database query language. By entering Gremlin statements and clicking execute, you can perform query and analysis operations on graph data, and create and delete vertices/edges. , vertex/edge attribute modification, etc.

    After Gremlin query, below is the graph result display area, which provides 3 kinds of graph result display modes: [Graph Mode], [Table Mode], [Json Mode].

    Support zoom, center, full screen, export and other operations.

    【Picture Mode】

    image

    【Table mode】

    image

    【Json mode】

    image
    4.4.4 Data Details

    Click the vertex/edge entity to view the data details of the vertex/edge, including: vertex/edge type, vertex ID, attribute and corresponding value, expand the information display dimension of the graph, and improve the usability.

    4.4.5 Multidimensional Path Query of Graph Results

    In addition to the global query, in-depth customized query and hidden operations can be performed for the vertices in the query result to realize customized mining of graph results.

    Right-click a vertex, and the menu entry of the vertex appears, which can be displayed, inquired, hidden, etc.

    • Expand: Click to display the vertices associated with the selected point.
    • Query: By selecting the edge type and edge direction associated with the selected point, and then selecting its attributes and corresponding filtering rules under this condition, a customized path display can be realized.
    • Hide: When clicked, hides the selected point and its associated edges.

    Double-clicking a vertex also displays the vertex associated with the selected point.

    image
    4.4.6 Add vertex/edge
    4.4.6.1 Added vertex

    In the graph area, two entries can be used to dynamically add vertices, as follows:

    1. Click on the graph area panel, the Add Vertex entry appears
    2. Click the first icon in the action bar in the upper right corner

    Complete the addition of vertices by selecting or filling in the vertex type, ID value, and attribute information.

    The entry is as follows:

    image

    Add the vertex content as follows:

    image
    4.4.6.2 Add edge

    Right-click a vertex in the graph result to add the outgoing or incoming edge of that point.

    4.4.7 Execute the query of records and favorites
    1. Record each query record at the bottom of the graph area, including: query time, execution type, content, status, time-consuming, as well as [collection] and [load] operations, to achieve a comprehensive record of graph execution, with traces to follow, and Can quickly load and reuse execution content
    2. Provides the function of collecting sentences, which can be used to collect frequently used sentences, which is convenient for fast calling of high-frequency sentences.
    image

    4.5 Task Management

    4.5.1 Module entry

    Left navigation:

    image
    4.5.2 Task Management
    1. Provide unified management and result viewing of asynchronous tasks. There are 4 types of asynchronous tasks, namely:
    • gremlin: Gremlin tasks
    • algorithm: OLAP algorithm task
    • remove_schema: remove metadata
    • rebuild_index: rebuild the index
    1. The list displays the asynchronous task information of the current graph, including: task ID, task name, task type, creation time, time-consuming, status, operation, and realizes the management of asynchronous tasks.
    2. Support filtering by task type and status
    3. Support searching for task ID and task name
    4. Asynchronous tasks can be deleted or deleted in batches
    image
    4.5.3 Gremlin asynchronous tasks
    1. Create a task
    • The data analysis module currently supports two Gremlin operations, Gremlin query and Gremlin task; if the user switches to the Gremlin task, after clicking execute, an asynchronous task will be created in the asynchronous task center;
    1. Task submission
    • After the task is submitted successfully, the graph area returns the submission result and task ID
    1. Mission details
    • Provide [View] entry, you can jump to the task details to view the specific execution of the current task After jumping to the task center, the currently executing task line will be displayed directly
    image

    Click to view the entry to jump to the task management list, as follows:

    image
    1. View the results
    • The results are displayed in the form of json
    4.5.4 OLAP algorithm tasks

    There is no visual OLAP algorithm execution on Hubble. You can call the RESTful API to perform OLAP algorithm tasks, find the corresponding tasks by ID in the task management, and view the progress and results.

    4.5.5 Delete metadata, rebuild index
    1. Create a task
    • In the metadata modeling module, when deleting metadata, an asynchronous task for deleting metadata can be created
    image
    • When editing an existing vertex/edge type operation, when adding an index, an asynchronous task of creating an index can be created
    image
    1. Task details
    • After confirming/saving, you can jump to the task center to view the details of the current task
    image

    diff --git a/docs/quickstart/hugegraph-server/index.html b/docs/quickstart/hugegraph-server/index.html index 582a5a7fd..3e0e77789 100644 --- a/docs/quickstart/hugegraph-server/index.html +++ b/docs/quickstart/hugegraph-server/index.html @@ -2,9 +2,9 @@ HugeGraph-Server is the core part of the HugeGraph Project, contains submodules such as Core, Backend, API. The Core …">
    +

    indicating the successful creation of the sample graph.

    The process of creating sample graph on server startup is similar when using IntelliJ IDEA and will not be described further.

    9.2 Specify command-line arguments in the startup script.

    Carry the -p true arguments when starting the script, which indicates preload, to create a sample graph.

    bin/start-hugegraph.sh -p true
    +Starting HugeGraphServer in daemon mode...
    +Connecting to HugeGraphServer (http://127.0.0.1:8080/graphs)......OK
    +

    And use the RESTful API to request HugeGraphServer and get the following result:

    > curl "http://localhost:8080/graphs/hugegraph/graph/vertices" | gunzip
    +
    +{"vertices":[{"id":"2:lop","label":"software","type":"vertex","properties":{"name":"lop","lang":"java","price":328}},{"id":"1:josh","label":"person","type":"vertex","properties":{"name":"josh","age":32,"city":"Beijing"}},{"id":"1:marko","label":"person","type":"vertex","properties":{"name":"marko","age":29,"city":"Beijing"}},{"id":"1:peter","label":"person","type":"vertex","properties":{"name":"peter","age":35,"city":"Shanghai"}},{"id":"1:vadas","label":"person","type":"vertex","properties":{"name":"vadas","age":27,"city":"Hongkong"}},{"id":"2:ripple","label":"software","type":"vertex","properties":{"name":"ripple","lang":"java","price":199}}]}
    +

    This indicates the successful creation of the sample graph.

    9.3 Use Docker or Docker Compose to add environment variables.

    Set the environment variable PRELOAD=true when starting Docker in order to load data during the execution of the startup script.

    1. Use docker run

      Use docker run -itd --name=graph -p 18080:8080 -e PRELOAD=true hugegraph/hugegraph:latest

    2. Use docker-compose

      Create docker-compose.yml as following

      version: '3'
      +  services:
      +    graph:
      +      image: hugegraph/hugegraph:latest
      +      container_name: graph
      +      environment:
      +        - PRELOAD=true
      +      ports:
      +        - 18080:8080
      +

      Use docker-compose up -d to start the container

    And use the RESTful API to request HugeGraphServer and get the following result:

    > curl "http://localhost:8080/graphs/hugegraph/graph/vertices" | gunzip
    +
    +{"vertices":[{"id":"2:lop","label":"software","type":"vertex","properties":{"name":"lop","lang":"java","price":328}},{"id":"1:josh","label":"person","type":"vertex","properties":{"name":"josh","age":32,"city":"Beijing"}},{"id":"1:marko","label":"person","type":"vertex","properties":{"name":"marko","age":29,"city":"Beijing"}},{"id":"1:peter","label":"person","type":"vertex","properties":{"name":"peter","age":35,"city":"Shanghai"}},{"id":"1:vadas","label":"person","type":"vertex","properties":{"name":"vadas","age":27,"city":"Hongkong"}},{"id":"2:ripple","label":"software","type":"vertex","properties":{"name":"ripple","lang":"java","price":199}}]}
    +

    This indicates the successful creation of the sample graph.


    diff --git a/docs/quickstart/index.xml b/docs/quickstart/index.xml index c6404b00a..24e4c16c4 100644 --- a/docs/quickstart/index.xml +++ b/docs/quickstart/index.xml @@ -331,6 +331,13 @@ after the service is stopped artificially, or when the service needs to be start </span></span></code></pre></div><h3 id="8-debug-server-with-intellij-idea">8 Debug Server with IntelliJ IDEA</h3> <p>Please refer to <a href="/docs/contribution-guidelines/hugegraph-server-idea-setup">Setup Server in IDEA</a></p> <h3 id="9-create-sample-graph-on-server-startup">9 Create Sample Graph on Server Startup</h3> +<p>There are three ways to create sample graph on server startup</p> +<ul> +<li>Method 1: Modify the configuration file directly.</li> +<li>Method 2: Use command-line arguments in the startup script.</li> +<li>Method 3: Use Docker or Docker Compose to add environment variables.</li> +</ul> +<h4 id="91-modify-the-configuration-file-directly">9.1 Modify the configuration file directly.</h4> <p>Modify <code>conf/gremlin-server.yaml</code> and change <code>empty-sample.groovy</code> to <code>example.groovy</code>:</p> <div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span>{<span style="color:#f8f8f8;text-decoration:underline"> </span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">files</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000;font-weight:bold">[</span><span style="color:#000">scripts/example.groovy]</span><span style="color:#f8f8f8;text-decoration:underline"> @@ -359,7 +366,44 @@ after the service is stopped artificially, or when the service needs to be start </span></span></code></pre></div><p>indicating the successful creation of the sample graph.</p> <blockquote> <p>The process of creating sample graph on server startup is similar when using IntelliJ IDEA and will not be described further.</p> -</blockquote>Docs: HugeGraph-Loader Quick Start/docs/quickstart/hugegraph-loader/Mon, 01 Jan 0001 00:00:00 +0000/docs/quickstart/hugegraph-loader/ +</blockquote> +<h4 id="92-specify-command-line-arguments-in-the-startup-script">9.2 Specify command-line arguments in the startup script.</h4> +<p>Carry the <code>-p true</code> arguments when starting the script, which indicates <code>preload</code>, to create a sample graph.</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>bin/start-hugegraph.sh -p true +</span></span><span style="display:flex;"><span>Starting HugeGraphServer in daemon mode... +</span></span><span style="display:flex;"><span>Connecting to HugeGraphServer (http://127.0.0.1:8080/graphs)......OK +</span></span></code></pre></div><p>And use the RESTful API to request <code>HugeGraphServer</code> and get the following result:</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold">&gt;</span> <span style="color:#000">curl</span> <span style="color:#4e9a06">&#34;http://localhost:8080/graphs/hugegraph/graph/vertices&#34;</span> <span style="color:#ce5c00;font-weight:bold">|</span> <span style="color:#000">gunzip</span> +</span></span><span style="display:flex;"><span> +</span></span><span style="display:flex;"><span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;vertices&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">[{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;2:lop&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;software&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;lop&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;lang&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;java&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;price&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">328</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:josh&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;josh&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">32</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Beijing&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:marko&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;marko&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">29</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Beijing&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:peter&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;peter&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">35</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Shanghai&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:vadas&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vadas&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">27</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Hongkong&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;2:ripple&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;software&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;ripple&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;lang&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;java&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;price&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">199</span><span style="color:#000;font-weight:bold">}}]}</span> +</span></span></code></pre></div><p>This indicates the successful creation of the sample graph.</p> +<h4 id="93-use-docker-or-docker-compose-to-add-environment-variables">9.3 Use Docker or Docker Compose to add environment variables.</h4> +<p>Set the environment variable <code>PRELOAD=true</code> when starting Docker in order to load data during the execution of the startup script.</p> +<ol> +<li> +<p>Use <code>docker run</code></p> +<p>Use <code>docker run -itd --name=graph -p 18080:8080 -e PRELOAD=true hugegraph/hugegraph:latest</code></p> +</li> +<li> +<p>Use <code>docker-compose</code></p> +<p>Create <code>docker-compose.yml</code> as following</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">version</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;3&#39;</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">services</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">graph</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">image</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">hugegraph/hugegraph:latest</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">container_name</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">graph</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">environment</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>- <span style="color:#000">PRELOAD=true</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">ports</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>- <span style="color:#0000cf;font-weight:bold">18080</span><span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">8080</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span></code></pre></div><p>Use <code>docker-compose up -d</code> to start the container</p> +</li> +</ol> +<p>And use the RESTful API to request <code>HugeGraphServer</code> and get the following result:</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-javascript" data-lang="javascript"><span style="display:flex;"><span><span style="color:#ce5c00;font-weight:bold">&gt;</span> <span style="color:#000">curl</span> <span style="color:#4e9a06">&#34;http://localhost:8080/graphs/hugegraph/graph/vertices&#34;</span> <span style="color:#ce5c00;font-weight:bold">|</span> <span style="color:#000">gunzip</span> +</span></span><span style="display:flex;"><span> +</span></span><span style="display:flex;"><span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;vertices&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">[{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;2:lop&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;software&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;lop&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;lang&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;java&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;price&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">328</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:josh&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;josh&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">32</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Beijing&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:marko&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;marko&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">29</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Beijing&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:peter&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;peter&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">35</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Shanghai&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;1:vadas&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;person&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vadas&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;age&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">27</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;city&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;Hongkong&#34;</span><span style="color:#000;font-weight:bold">}},{</span><span style="color:#4e9a06">&#34;id&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;2:ripple&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;label&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;software&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;type&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;vertex&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;properties&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#000;font-weight:bold">{</span><span style="color:#4e9a06">&#34;name&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;ripple&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;lang&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#4e9a06">&#34;java&#34;</span><span style="color:#000;font-weight:bold">,</span><span style="color:#4e9a06">&#34;price&#34;</span><span style="color:#ce5c00;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">199</span><span style="color:#000;font-weight:bold">}}]}</span> +</span></span></code></pre></div><p>This indicates the successful creation of the sample graph.</p>Docs: HugeGraph-Loader Quick Start/docs/quickstart/hugegraph-loader/Mon, 01 Jan 0001 00:00:00 +0000/docs/quickstart/hugegraph-loader/ <h3 id="1-hugegraph-loader-overview">1 HugeGraph-Loader Overview</h3> <p>HugeGraph-Loader is the data import component of HugeGraph, which can convert data from various data sources into graph vertices and edges and import them into the graph database in batches.</p> <p>Currently supported data sources include:</p> @@ -2005,14 +2049,77 @@ Implement a class inherited from <code>Formatter</code> in the directory, <p>By inputting the graph traversal language Gremlin, high-performance general analysis of graph data can be realized, and functions such as customized multidimensional path query of vertices can be provided, and three kinds of graph result display methods are provided, including: graph form, table form, Json form, and multidimensional display. The data form meets the needs of various scenarios used by users. It provides functions such as running records and collection of common statements, realizing the traceability of graph operations, and the reuse and sharing of query input, which is fast and efficient. It supports the export of graph data, and the export format is Json format.</p> <h5 id="task-management">Task Management</h5> <p>For Gremlin tasks that need to traverse the whole graph, index creation and reconstruction and other time-consuming asynchronous tasks, the platform provides corresponding task management functions to achieve unified management and result viewing of asynchronous tasks.</p> -<h3 id="2platform-workflow">2 Platform Workflow</h3> +<h3 id="2-deploy">2 Deploy</h3> +<p>There are three ways to deplot <code>hugegraph-hubble</code></p> +<ul> +<li>Download the Toolchain binary package</li> +<li>Source code compilation</li> +<li>Use Docker</li> +</ul> +<h4 id="21-download-the-toolchain-binary-package">2.1 Download the Toolchain binary package</h4> +<p><code>hubble</code> is in the <code>toolchain</code> project. First, download the binary tar tarball</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>wget https://downloads.apache.org/incubator/hugegraph/1.0.0/apache-hugegraph-toolchain-incubating-<span style="color:#ce5c00;font-weight:bold">{</span>version<span style="color:#ce5c00;font-weight:bold">}</span>.tar.gz +</span></span><span style="display:flex;"><span>tar -xvf apache-hugegraph-toolchain-incubating-<span style="color:#ce5c00;font-weight:bold">{</span>version<span style="color:#ce5c00;font-weight:bold">}</span>.tar.gz +</span></span><span style="display:flex;"><span><span style="color:#204a87">cd</span> apache-hugegraph-toolchain-incubating-<span style="color:#ce5c00;font-weight:bold">{</span>version<span style="color:#ce5c00;font-weight:bold">}</span>.tar.gz/apache-hugegraph-hubble-incubating-<span style="color:#ce5c00;font-weight:bold">{</span>version<span style="color:#ce5c00;font-weight:bold">}</span> +</span></span></code></pre></div><p>Run <code>hubble</code></p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>bin/start-hubble.sh +</span></span></code></pre></div><p>Then, we can see:</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>starting HugeGraphHubble ..............timed out with http status <span style="color:#0000cf;font-weight:bold">502</span> +</span></span><span style="display:flex;"><span>2023-08-30 20:38:34 <span style="color:#ce5c00;font-weight:bold">[</span>main<span style="color:#ce5c00;font-weight:bold">]</span> <span style="color:#ce5c00;font-weight:bold">[</span>INFO <span style="color:#ce5c00;font-weight:bold">]</span> o.a.h.HugeGraphHubble <span style="color:#ce5c00;font-weight:bold">[]</span> - Starting HugeGraphHubble v1.0.0 on cpu05 with PID xxx <span style="color:#ce5c00;font-weight:bold">(</span>~/apache-hugegraph-toolchain-incubating-1.0.0/apache-hugegraph-hubble-incubating-1.0.0/lib/hubble-be-1.0.0.jar started by <span style="color:#000">$USER</span> in ~/apache-hugegraph-toolchain-incubating-1.0.0/apache-hugegraph-hubble-incubating-1.0.0<span style="color:#ce5c00;font-weight:bold">)</span> +</span></span><span style="display:flex;"><span>... +</span></span><span style="display:flex;"><span>2023-08-30 20:38:38 <span style="color:#ce5c00;font-weight:bold">[</span>main<span style="color:#ce5c00;font-weight:bold">]</span> <span style="color:#ce5c00;font-weight:bold">[</span>INFO <span style="color:#ce5c00;font-weight:bold">]</span> c.z.h.HikariDataSource <span style="color:#ce5c00;font-weight:bold">[]</span> - hugegraph-hubble-HikariCP - Start completed. +</span></span><span style="display:flex;"><span>2023-08-30 20:38:41 <span style="color:#ce5c00;font-weight:bold">[</span>main<span style="color:#ce5c00;font-weight:bold">]</span> <span style="color:#ce5c00;font-weight:bold">[</span>INFO <span style="color:#ce5c00;font-weight:bold">]</span> o.a.c.h.Http11NioProtocol <span style="color:#ce5c00;font-weight:bold">[]</span> - Starting ProtocolHandler <span style="color:#ce5c00;font-weight:bold">[</span><span style="color:#4e9a06">&#34;http-nio-0.0.0.0-8088&#34;</span><span style="color:#ce5c00;font-weight:bold">]</span> +</span></span><span style="display:flex;"><span>2023-08-30 20:38:41 <span style="color:#ce5c00;font-weight:bold">[</span>main<span style="color:#ce5c00;font-weight:bold">]</span> <span style="color:#ce5c00;font-weight:bold">[</span>INFO <span style="color:#ce5c00;font-weight:bold">]</span> o.a.h.HugeGraphHubble <span style="color:#ce5c00;font-weight:bold">[]</span> - Started HugeGraphHubble in 7.379 seconds <span style="color:#ce5c00;font-weight:bold">(</span>JVM running <span style="color:#204a87;font-weight:bold">for</span> 8.499<span style="color:#ce5c00;font-weight:bold">)</span> +</span></span></code></pre></div><p>Then use a web browser to access <code>ip:8088</code> and you can see the <code>Hubble</code> page. You can stop the service using bin/stop-hubble.sh.</p> +<h4 id="22-source-code-compilation">2.2 Source code compilation</h4> +<p><strong>Note</strong>: Compiling Hubble requires the user&rsquo;s local environment to have Node.js V16.x and yarn installed.</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>apt install curl build-essential +</span></span><span style="display:flex;"><span>curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh <span style="color:#000;font-weight:bold">|</span> bash +</span></span><span style="display:flex;"><span><span style="color:#204a87">source</span> ~/.bashrc +</span></span><span style="display:flex;"><span>nvm install <span style="color:#0000cf;font-weight:bold">16</span> +</span></span></code></pre></div><p>Then, verify that the installed Node.js version is 16.x (please note that higher Node version may cause conflicts).</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>node -v +</span></span></code></pre></div><p>install <code>yarn</code> by the command below:</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>npm install -g yarn +</span></span></code></pre></div><p>Download the toolchain source code.</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>git clone https://github.com/apache/hugegraph-toolchain.git +</span></span></code></pre></div><p>Compile <code>hubble</code>. It depends on the loader and client, so you need to build these dependencies in advance during the compilation process (you can skip this step later).</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span><span style="color:#204a87">cd</span> incubator-hugegraph-toolchain +</span></span><span style="display:flex;"><span>sudo pip install -r hugegraph-hubble/hubble-dist/assembly/travis/requirements.txt +</span></span><span style="display:flex;"><span>mvn install -pl hugegraph-client,hugegraph-loader -am -Dmaven.javadoc.skip<span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#204a87">true</span> -DskipTests -ntp +</span></span><span style="display:flex;"><span><span style="color:#204a87">cd</span> hugegraph-hubble +</span></span><span style="display:flex;"><span>mvn -e compile package -Dmaven.javadoc.skip<span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#204a87">true</span> -Dmaven.test.skip<span style="color:#ce5c00;font-weight:bold">=</span><span style="color:#204a87">true</span> -ntp +</span></span><span style="display:flex;"><span><span style="color:#204a87">cd</span> apache-hugegraph-hubble-incubating* +</span></span></code></pre></div><p>Run <code>hubble</code></p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>bin/start-hubble.sh -d +</span></span></code></pre></div><h4 id="23-use-docker">2.3 Use docker</h4> +<blockquote> +<p><strong>Special Note</strong>: If you are starting <code>hubble</code> with Docker, and <code>hubble</code> and the server are on the same host. When configuring the hostname for the graph on the Hubble web page, please do not directly set it to <code>localhost/127.0.0.1</code>. This will refer to the <code>hubble</code> container internally rather than the host machine, resulting in a connection failure to the server.</p> +</blockquote> +<p>We can use <code>docker run -itd --name=hubble -p 8088:8088 hugegraph/hubble</code> to quick start <a href="https://hub.docker.com/r/hugegraph/hubble">hubble</a>.</p> +<p>Alternatively, you can use Docker Compose to start <code>hubble</code>. Additionally, if <code>hubble</code> and the graph are in the same Docker network, you can access the graph using the container name of the graph, eliminating the need for the host machine&rsquo;s IP address.</p> +<p>Use <code>docker-compose up -d</code>,<code>docker-compose.yml</code> is following:</p> +<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#204a87;font-weight:bold">version</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#4e9a06">&#39;3&#39;</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"></span><span style="color:#204a87;font-weight:bold">services</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">graph_hubble</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">image</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">hugegraph/hugegraph</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">container_name</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">graph</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">ports</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>- <span style="color:#0000cf;font-weight:bold">18080</span><span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">8080</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">hubble</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">image</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">hugegraph/hubble</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">container_name</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#000">hubble</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span><span style="color:#204a87;font-weight:bold">ports</span><span style="color:#000;font-weight:bold">:</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span><span style="display:flex;"><span><span style="color:#f8f8f8;text-decoration:underline"> </span>- <span style="color:#0000cf;font-weight:bold">8088</span><span style="color:#000;font-weight:bold">:</span><span style="color:#0000cf;font-weight:bold">8088</span><span style="color:#f8f8f8;text-decoration:underline"> +</span></span></span></code></pre></div><h3 id="3platform-workflow">3 Platform Workflow</h3> <p>The module usage process of the platform is as follows:</p> <div style="text-align: center;"> <img src="/docs/images/images-hubble/2平台使用流程.png" alt="image"> </div> -<h3 id="3platform-instructions">3 Platform Instructions</h3> -<h4 id="31graph-management">3.1 Graph Management</h4> -<h5 id="311graph-creation">3.1.1 Graph creation</h5> +<h3 id="4platform-instructions">4 Platform Instructions</h3> +<h4 id="41graph-management">4.1 Graph Management</h4> +<h5 id="411graph-creation">4.1.1 Graph creation</h5> <p>Under the graph management module, click [Create graph], and realize the connection of multiple graphs by filling in the graph ID, graph name, host name, port number, username, and password information.</p> <div style="text-align: center;"> <img src="/docs/images/images-hubble/311图创建.png" alt="image"> @@ -2021,12 +2128,12 @@ Implement a class inherited from <code>Formatter</code> in the directory, <center> <img src="/docs/images/images-hubble/311图创建2.png" alt="image"> </center> -<h5 id="312graph-access">3.1.2 Graph Access</h5> +<h5 id="412graph-access">4.1.2 Graph Access</h5> <p>Realize the information access of the graph space. After entering, you can perform operations such as multidimensional query analysis, metadata management, data import, and algorithm analysis of the graph.</p> <center> <img src="/docs/images/images-hubble/312图访问.png" alt="image"> </center> -<h5 id="313graph-management">3.1.3 Graph management</h5> +<h5 id="413graph-management">4.1.3 Graph management</h5> <ol> <li>Users can achieve unified management of graphs through overview, search, and information editing and deletion of single graphs.</li> <li>Search range: You can search for the graph name and ID.</li> @@ -2034,14 +2141,14 @@ Implement a class inherited from <code>Formatter</code> in the directory, <center> <img src="/docs/images/images-hubble/313图管理.png" alt="image"> </center> -<h4 id="32metadata-modeling-list--graph-mode">3.2 Metadata Modeling (list + graph mode)</h4> -<h5 id="321module-entry">3.2.1 Module entry</h5> +<h4 id="42metadata-modeling-list--graph-mode">4.2 Metadata Modeling (list + graph mode)</h4> +<h5 id="421module-entry">4.2.1 Module entry</h5> <p>Left navigation:</p> <center> <img src="/docs/images/images-hubble/321元数据入口.png" alt="image"> </center> -<h5 id="322property-type">3.2.2 Property type</h5> -<h6 id="3221create-type">3.2.2.1 Create type</h6> +<h5 id="422property-type">4.2.2 Property type</h5> +<h6 id="4221create-type">4.2.2.1 Create type</h6> <ol> <li>Fill in or select the attribute name, data type, and cardinality to complete the creation of the attribute.</li> <li>Created attributes can be used as attributes of vertex type and edge type.</li> @@ -2054,7 +2161,7 @@ Implement a class inherited from <code>Formatter</code> in the directory, <center> <img src="/docs/images/images-hubble/3221属性创建2.png" alt="image"> </center> -<h6 id="3222reuse">3.2.2.2 Reuse</h6> +<h6 id="4222reuse">4.2.2.2 Reuse</h6> <ol> <li>The platform provides the [Reuse] function, which can directly reuse the metadata of other graphs.</li> <li>Select the graph ID that needs to be reused, and continue to select the attributes that need to be reused. After that, the platform will check whether there is a conflict. After passing, the metadata can be reused.</li> @@ -2067,12 +2174,12 @@ Implement a class inherited from <code>Formatter</code> in the directory, <center> <img src="/docs/images/images-hubble/3222属性复用2.png" alt="image"> </center> -<h6 id="3223management">3.2.2.3 Management</h6> +<h6 id="4223management">4.2.2.3 Management</h6> <ol> <li>You can delete a single item or delete it in batches in the attribute list.</li> </ol> -<h5 id="323vertex-type">3.2.3 Vertex type</h5> -<h6 id="3231create-type">3.2.3.1 Create type</h6> +<h5 id="423vertex-type">4.2.3 Vertex type</h5> +<h6 id="4231create-type">4.2.3.1 Create type</h6> <ol> <li>Fill in or select the vertex type name, ID strategy, association attribute, primary key attribute, vertex style, content displayed below the vertex in the query result, and index information: including whether to create a type index, and the specific content of the attribute index, complete the vertex Type creation.</li> </ol> @@ -2084,12 +2191,12 @@ Implement a class inherited from <code>Formatter</code> in the directory, <center> <img src="/docs/images/images-hubble/3231顶点创建2.png" alt="image"> </center> -<h6 id="3232-reuse">3.2.3.2 Reuse</h6> +<h6 id="4232-reuse">4.2.3.2 Reuse</h6> <ol> <li>The multiplexing of vertex types will reuse the attributes and attribute indexes associated with this type together.</li> <li>The reuse method is similar to the property reuse, see 3.2.2.2.</li> </ol> -<h6 id="3233-administration">3.2.3.3 Administration</h6> +<h6 id="4233-administration">4.2.3.3 Administration</h6> <ol> <li> <p>Editing operations are available. The vertex style, association type, vertex display content, and attribute index can be edited, and the rest cannot be edited.</p> @@ -2101,8 +2208,8 @@ Implement a class inherited from <code>Formatter</code> in the directory, <center> <img src="/docs/images/images-hubble/3233顶点删除.png" alt="image"> </center> -<h5 id="324-edge-types">3.2.4 Edge Types</h5> -<h6 id="3241-create">3.2.4.1 Create</h6> +<h5 id="424-edge-types">4.2.4 Edge Types</h5> +<h6 id="4241-create">4.2.4.1 Create</h6> <ol> <li>Fill in or select the edge type name, start point type, end point type, associated attributes, whether to allow multiple connections, edge style, content displayed below the edge in the query result, and index information: including whether to create a type index, and attribute index The specific content, complete the creation of the edge type.</li> </ol> @@ -2114,29 +2221,29 @@ Implement a class inherited from <code>Formatter</code> in the directory, <center> <img src="/docs/images/images-hubble/3241边创建2.png" alt="image"> </center> -<h6 id="3242-reuse">3.2.4.2 Reuse</h6> +<h6 id="4242-reuse">4.2.4.2 Reuse</h6> <ol> <li>The reuse of the edge type will reuse the start point type, end point type, associated attribute and attribute index of this type.</li> <li>The reuse method is similar to the property reuse, see 3.2.2.2.</li> </ol> -<h6 id="3243-administration">3.2.4.3 Administration</h6> +<h6 id="4243-administration">4.2.4.3 Administration</h6> <ol> <li>Editing operations are available. Edge styles, associated attributes, edge display content, and attribute indexes can be edited, and the rest cannot be edited, the same as the vertex type.</li> <li>You can delete a single item or delete it in batches.</li> </ol> -<h5 id="325-index-types">3.2.5 Index Types</h5> +<h5 id="425-index-types">4.2.5 Index Types</h5> <p>Displays vertex and edge indices for vertex types and edge types.</p> -<h4 id="33-data-import">3.3 Data Import</h4> +<h4 id="43-data-import">4.3 Data Import</h4> <p>The usage process of data import is as follows:</p> <center> <img src="/docs/images/images-hubble/33导入流程.png" alt="image"> </center> -<h5 id="331module-entrance">3.3.1 Module entrance</h5> +<h5 id="431module-entrance">4.3.1 Module entrance</h5> <p>Left navigation:</p> <center> <img src="/docs/images/images-hubble/331导入入口.png" alt="image"> </center> -<h5 id="332-create-task">3.3.2 Create task</h5> +<h5 id="432-create-task">4.3.2 Create task</h5> <ol> <li>Fill in the task name and remarks (optional) to create an import task.</li> <li>Multiple import tasks can be created and imported in parallel.</li> @@ -2144,7 +2251,7 @@ Implement a class inherited from <code>Formatter</code> in the directory, <center> <img src="/docs/images/images-hubble/332创建任务.png" alt="image"> </center> -<h5 id="333-uploading-files">3.3.3 Uploading files</h5> +<h5 id="433-uploading-files">4.3.3 Uploading files</h5> <ol> <li>Upload the file that needs to be composed. The currently supported format is CSV, which will be updated continuously in the future.</li> <li>Multiple files can be uploaded at the same time.</li> @@ -2152,7 +2259,7 @@ Implement a class inherited from <code>Formatter</code> in the directory, <center> <img src="/docs/images/images-hubble/333上传文件.png" alt="image"> </center> -<h5 id="334-setting-up-data-mapping">3.3.4 Setting up data mapping</h5> +<h5 id="434-setting-up-data-mapping">4.3.4 Setting up data mapping</h5> <ol> <li> <p>Set up data mapping for uploaded files, including file settings and type settings</p> @@ -2185,7 +2292,7 @@ Implement a class inherited from <code>Formatter</code> in the directory, <center> <img src="/docs/images/images-hubble/334设置映射2.png" alt="image"> </center> -<h5 id="335-import-data">3.3.5 Import data</h5> +<h5 id="435-import-data">4.3.5 Import data</h5> <p>Before importing, you need to fill in the import setting parameters. After filling in, you can start importing data into the gallery.</p> <ol> <li>Import settings</li> @@ -2207,18 +2314,18 @@ Implement a class inherited from <code>Formatter</code> in the directory, <center> <img src="/docs/images/images-hubble/335导入详情.png" alt="image"> </center> -<h4 id="34-data-analysis">3.4 Data Analysis</h4> -<h5 id="341-module-entry">3.4.1 Module entry</h5> +<h4 id="44-data-analysis">4.4 Data Analysis</h4> +<h5 id="441-module-entry">4.4.1 Module entry</h5> <p>Left navigation:</p> <center> <img src="/docs/images/images-hubble/341分析入口.png" alt="image"> </center> -<h5 id="342-multi-image-switching">3.4.2 Multi-image switching</h5> +<h5 id="442-multi-image-switching">4.4.2 Multi-image switching</h5> <p>By switching the entrance on the left, flexibly switch the operation space of multiple graphs</p> <center> <img src="/docs/images/images-hubble/342多图切换.png" alt="image"> </center> -<h5 id="343-graph-analysis-and-processing">3.4.3 Graph Analysis and Processing</h5> +<h5 id="443-graph-analysis-and-processing">4.4.3 Graph Analysis and Processing</h5> <p>HugeGraph supports Gremlin, a graph traversal query language of Apache TinkerPop3. Gremlin is a general graph database query language. By entering Gremlin statements and clicking execute, you can perform query and analysis operations on graph data, and create and delete vertices/edges. , vertex/edge attribute modification, etc.</p> <p>After Gremlin query, below is the graph result display area, which provides 3 kinds of graph result display modes: [Graph Mode], [Table Mode], [Json Mode].</p> <p>Support zoom, center, full screen, export and other operations.</p> @@ -2234,9 +2341,9 @@ Implement a class inherited from <code>Formatter</code> in the directory, <center> <img src="/docs/images/images-hubble/343图分析-json.png" alt="image"> </center> -<h5 id="344-data-details">3.4.4 Data Details</h5> +<h5 id="444-data-details">4.4.4 Data Details</h5> <p>Click the vertex/edge entity to view the data details of the vertex/edge, including: vertex/edge type, vertex ID, attribute and corresponding value, expand the information display dimension of the graph, and improve the usability.</p> -<h5 id="345-multidimensional-path-query-of-graph-results">3.4.5 Multidimensional Path Query of Graph Results</h5> +<h5 id="445-multidimensional-path-query-of-graph-results">4.4.5 Multidimensional Path Query of Graph Results</h5> <p>In addition to the global query, in-depth customized query and hidden operations can be performed for the vertices in the query result to realize customized mining of graph results.</p> <p>Right-click a vertex, and the menu entry of the vertex appears, which can be displayed, inquired, hidden, etc.</p> <ul> @@ -2248,8 +2355,8 @@ Implement a class inherited from <code>Formatter</code> in the directory, <center> <img src="/docs/images/images-hubble/345定制路径查询.png" alt="image"> </center> -<h5 id="346-add-vertexedge">3.4.6 Add vertex/edge</h5> -<h6 id="3461-added-vertex">3.4.6.1 Added vertex</h6> +<h5 id="446-add-vertexedge">4.4.6 Add vertex/edge</h5> +<h6 id="4461-added-vertex">4.4.6.1 Added vertex</h6> <p>In the graph area, two entries can be used to dynamically add vertices, as follows:</p> <ol> <li>Click on the graph area panel, the Add Vertex entry appears</li> @@ -2264,9 +2371,9 @@ Implement a class inherited from <code>Formatter</code> in the directory, <center> <img src="/docs/images/images-hubble/346新增顶点2.png" alt="image"> </center> -<h6 id="3462-add-edge">3.4.6.2 Add edge</h6> +<h6 id="4462-add-edge">4.4.6.2 Add edge</h6> <p>Right-click a vertex in the graph result to add the outgoing or incoming edge of that point.</p> -<h5 id="347-execute-the-query-of-records-and-favorites">3.4.7 Execute the query of records and favorites</h5> +<h5 id="447-execute-the-query-of-records-and-favorites">4.4.7 Execute the query of records and favorites</h5> <ol> <li>Record each query record at the bottom of the graph area, including: query time, execution type, content, status, time-consuming, as well as [collection] and [load] operations, to achieve a comprehensive record of graph execution, with traces to follow, and Can quickly load and reuse execution content</li> <li>Provides the function of collecting sentences, which can be used to collect frequently used sentences, which is convenient for fast calling of high-frequency sentences.</li> @@ -2274,13 +2381,13 @@ Implement a class inherited from <code>Formatter</code> in the directory, <center> <img src="/docs/images/images-hubble/347收藏.png" alt="image"> </center> -<h4 id="35-task-management">3.5 Task Management</h4> -<h5 id="351-module-entry">3.5.1 Module entry</h5> +<h4 id="45-task-management">4.5 Task Management</h4> +<h5 id="451-module-entry">4.5.1 Module entry</h5> <p>Left navigation:</p> <center> <img src="/docs/images/images-hubble/351任务管理入口.png" alt="image"> </center> -<h5 id="352-task-management">3.5.2 Task Management</h5> +<h5 id="452-task-management">4.5.2 Task Management</h5> <ol> <li>Provide unified management and result viewing of asynchronous tasks. There are 4 types of asynchronous tasks, namely:</li> </ol> @@ -2299,7 +2406,7 @@ Implement a class inherited from <code>Formatter</code> in the directory, <center> <img src="/docs/images/images-hubble/352任务列表.png" alt="image"> </center> -<h5 id="353-gremlin-asynchronous-tasks">3.5.3 Gremlin asynchronous tasks</h5> +<h5 id="453-gremlin-asynchronous-tasks">4.5.3 Gremlin asynchronous tasks</h5> <ol> <li>Create a task</li> </ol> @@ -2331,9 +2438,9 @@ Implement a class inherited from <code>Formatter</code> in the directory, <ul> <li>The results are displayed in the form of json</li> </ul> -<h5 id="354-olap-algorithm-tasks">3.5.4 OLAP algorithm tasks</h5> +<h5 id="454-olap-algorithm-tasks">4.5.4 OLAP algorithm tasks</h5> <p>There is no visual OLAP algorithm execution on Hubble. You can call the RESTful API to perform OLAP algorithm tasks, find the corresponding tasks by ID in the task management, and view the progress and results.</p> -<h5 id="355-delete-metadata-rebuild-index">3.5.5 Delete metadata, rebuild index</h5> +<h5 id="455-delete-metadata-rebuild-index">4.5.5 Delete metadata, rebuild index</h5> <ol> <li>Create a task</li> </ol> diff --git a/en/sitemap.xml b/en/sitemap.xml index 7ec348cee..721a5043d 100644 --- a/en/sitemap.xml +++ b/en/sitemap.xml @@ -1 +1 @@ -/docs/guides/architectural/2023-06-25T21:06:07+08:00/docs/config/config-guide/2023-06-21T14:48:04+08:00/docs/language/hugegraph-gremlin/2023-05-14T07:29:41-05:00/docs/contribution-guidelines/contribute/2023-09-09T20:50:32+08:00/docs/performance/hugegraph-benchmark-0.5.6/2023-05-14T22:31:02-05:00/docs/quickstart/hugegraph-server/2023-06-25T21:06:07+08:00/docs/introduction/readme/2023-06-18T14:57:33+08:00/docs/changelog/hugegraph-1.0.0-release-notes/2023-01-09T07:41:46+08:00/docs/clients/restful-api/2023-07-31T23:55:30+08:00/docs/clients/restful-api/schema/2023-05-14T19:35:13+08:00/docs/performance/api-preformance/hugegraph-api-0.5.6-rocksdb/2023-05-15T22:47:44-05:00/docs/config/config-option/2023-02-08T20:56:09+08:00/docs/guides/desgin-concept/2023-05-14T07:20:21-05:00/docs/download/download/2023-06-17T14:43:04+08:00/docs/language/hugegraph-example/2023-02-02T01:21:10+08:00/docs/clients/hugegraph-client/2023-01-01T16:16:43+08:00/docs/performance/api-preformance/2023-06-17T14:43:04+08:00/docs/quickstart/hugegraph-loader/2023-05-17T23:12:35+08:00/docs/clients/restful-api/propertykey/2023-05-19T05:15:56-05:00/docs/changelog/hugegraph-0.12.0-release-notes/2023-05-18T06:11:19-05:00/docs/contribution-guidelines/subscribe/2023-06-17T14:43:04+08:00/docs/performance/api-preformance/hugegraph-api-0.5.6-cassandra/2023-05-16T23:30:00-05:00/docs/config/config-authentication/2023-05-19T05:12:35-05:00/docs/clients/gremlin-console/2023-06-12T23:52:07+08:00/docs/guides/custom-plugin/2023-05-14T07:22:46-05:00/docs/performance/hugegraph-loader-performance/2023-05-18T00:34:48-05:00/docs/quickstart/hugegraph-tools/2023-05-09T21:27:34+08:00/docs/quickstart/2022-04-17T11:36:55+08:00/docs/contribution-guidelines/validate-release/2023-02-15T16:14:21+08:00/docs/clients/restful-api/vertexlabel/2023-05-19T04:03:23-05:00/docs/guides/backup-restore/2023-05-14T07:26:12-05:00/docs/config/2022-04-17T11:36:55+08:00/docs/config/config-https/2023-05-19T05:04:16-05:00/docs/clients/restful-api/edgelabel/2023-05-19T05:17:26-05:00/docs/contribution-guidelines/hugegraph-server-idea-setup/2023-06-25T21:06:07+08:00/docs/quickstart/hugegraph-hubble/2023-01-04T22:59:07+08:00/docs/clients/2022-04-17T11:36:55+08:00/docs/config/config-computer/2023-01-01T16:16:43+08:00/docs/guides/faq/2023-05-14T07:28:41-05:00/docs/clients/restful-api/indexlabel/2023-05-19T05:18:17-05:00/docs/quickstart/hugegraph-client/2023-05-14T22:39:27+08:00/docs/guides/2022-04-17T11:36:55+08:00/docs/clients/restful-api/rebuild/2022-05-09T18:43:53+08:00/docs/quickstart/hugegraph-computer/2023-06-25T21:06:46+08:00/docs/language/2022-04-17T11:36:55+08:00/docs/clients/restful-api/vertex/2023-06-04T23:04:47+08:00/docs/clients/restful-api/edge/2023-06-29T10:17:29+08:00/docs/performance/2022-04-17T11:36:55+08:00/docs/contribution-guidelines/2022-12-30T19:36:31+08:00/docs/clients/restful-api/traverser/2023-05-20T06:12:55-05:00/docs/changelog/2022-04-28T21:26:41+08:00/docs/clients/restful-api/rank/2022-09-15T12:59:59+08:00/docs/clients/restful-api/variable/2023-05-21T04:38:57-05:00/docs/clients/restful-api/graphs/2022-05-27T09:27:37+08:00/docs/clients/restful-api/task/2022-09-15T12:59:59+08:00/docs/clients/restful-api/gremlin/2023-05-21T04:39:11-05:00/docs/clients/restful-api/cypher/2023-07-31T23:55:30+08:00/docs/clients/restful-api/auth/2023-07-31T23:55:30+08:00/docs/clients/restful-api/other/2023-07-31T23:55:30+08:00/docs/2022-12-30T19:57:48+08:00/blog/news/2022-03-21T18:55:33+08:00/blog/releases/2022-03-21T18:55:33+08:00/blog/2018/10/06/easy-documentation-with-docsy/2022-03-21T18:55:33+08:00/blog/2018/10/06/the-second-blog-post/2022-03-21T18:55:33+08:00/blog/2018/01/04/another-great-release/2022-03-21T18:55:33+08:00/docs/cla/2022-03-21T19:51:14+08:00/docs/performance/hugegraph-benchmark-0.4.4/2022-09-15T12:59:59+08:00/docs/summary/2023-07-31T23:55:30+08:00/blog/2022-03-21T18:55:33+08:00/categories//community/2022-03-21T18:55:33+08:00/2023-01-15T13:44:01+00:00/search/2022-03-21T18:55:33+08:00/tags/ \ No newline at end of file +/docs/guides/architectural/2023-06-25T21:06:07+08:00/docs/config/config-guide/2023-06-21T14:48:04+08:00/docs/language/hugegraph-gremlin/2023-05-14T07:29:41-05:00/docs/contribution-guidelines/contribute/2023-09-09T20:50:32+08:00/docs/performance/hugegraph-benchmark-0.5.6/2023-05-14T22:31:02-05:00/docs/quickstart/hugegraph-server/2023-09-12T12:18:04+08:00/docs/introduction/readme/2023-06-18T14:57:33+08:00/docs/changelog/hugegraph-1.0.0-release-notes/2023-01-09T07:41:46+08:00/docs/clients/restful-api/2023-07-31T23:55:30+08:00/docs/clients/restful-api/schema/2023-05-14T19:35:13+08:00/docs/performance/api-preformance/hugegraph-api-0.5.6-rocksdb/2023-05-15T22:47:44-05:00/docs/config/config-option/2023-02-08T20:56:09+08:00/docs/guides/desgin-concept/2023-05-14T07:20:21-05:00/docs/download/download/2023-06-17T14:43:04+08:00/docs/language/hugegraph-example/2023-02-02T01:21:10+08:00/docs/clients/hugegraph-client/2023-01-01T16:16:43+08:00/docs/performance/api-preformance/2023-06-17T14:43:04+08:00/docs/quickstart/hugegraph-loader/2023-05-17T23:12:35+08:00/docs/clients/restful-api/propertykey/2023-05-19T05:15:56-05:00/docs/changelog/hugegraph-0.12.0-release-notes/2023-05-18T06:11:19-05:00/docs/contribution-guidelines/subscribe/2023-06-17T14:43:04+08:00/docs/performance/api-preformance/hugegraph-api-0.5.6-cassandra/2023-05-16T23:30:00-05:00/docs/config/config-authentication/2023-05-19T05:12:35-05:00/docs/clients/gremlin-console/2023-06-12T23:52:07+08:00/docs/guides/custom-plugin/2023-05-14T07:22:46-05:00/docs/performance/hugegraph-loader-performance/2023-05-18T00:34:48-05:00/docs/quickstart/hugegraph-tools/2023-05-09T21:27:34+08:00/docs/quickstart/2022-04-17T11:36:55+08:00/docs/contribution-guidelines/validate-release/2023-02-15T16:14:21+08:00/docs/clients/restful-api/vertexlabel/2023-05-19T04:03:23-05:00/docs/guides/backup-restore/2023-05-14T07:26:12-05:00/docs/config/2022-04-17T11:36:55+08:00/docs/config/config-https/2023-05-19T05:04:16-05:00/docs/clients/restful-api/edgelabel/2023-05-19T05:17:26-05:00/docs/contribution-guidelines/hugegraph-server-idea-setup/2023-06-25T21:06:07+08:00/docs/quickstart/hugegraph-hubble/2023-09-12T12:18:04+08:00/docs/clients/2022-04-17T11:36:55+08:00/docs/config/config-computer/2023-01-01T16:16:43+08:00/docs/guides/faq/2023-05-14T07:28:41-05:00/docs/clients/restful-api/indexlabel/2023-05-19T05:18:17-05:00/docs/quickstart/hugegraph-client/2023-05-14T22:39:27+08:00/docs/guides/2022-04-17T11:36:55+08:00/docs/clients/restful-api/rebuild/2022-05-09T18:43:53+08:00/docs/quickstart/hugegraph-computer/2023-06-25T21:06:46+08:00/docs/language/2022-04-17T11:36:55+08:00/docs/clients/restful-api/vertex/2023-06-04T23:04:47+08:00/docs/clients/restful-api/edge/2023-06-29T10:17:29+08:00/docs/performance/2022-04-17T11:36:55+08:00/docs/contribution-guidelines/2022-12-30T19:36:31+08:00/docs/clients/restful-api/traverser/2023-05-20T06:12:55-05:00/docs/changelog/2022-04-28T21:26:41+08:00/docs/clients/restful-api/rank/2022-09-15T12:59:59+08:00/docs/clients/restful-api/variable/2023-05-21T04:38:57-05:00/docs/clients/restful-api/graphs/2022-05-27T09:27:37+08:00/docs/clients/restful-api/task/2022-09-15T12:59:59+08:00/docs/clients/restful-api/gremlin/2023-05-21T04:39:11-05:00/docs/clients/restful-api/cypher/2023-07-31T23:55:30+08:00/docs/clients/restful-api/auth/2023-07-31T23:55:30+08:00/docs/clients/restful-api/other/2023-07-31T23:55:30+08:00/docs/2022-12-30T19:57:48+08:00/blog/news/2022-03-21T18:55:33+08:00/blog/releases/2022-03-21T18:55:33+08:00/blog/2018/10/06/easy-documentation-with-docsy/2022-03-21T18:55:33+08:00/blog/2018/10/06/the-second-blog-post/2022-03-21T18:55:33+08:00/blog/2018/01/04/another-great-release/2022-03-21T18:55:33+08:00/docs/cla/2022-03-21T19:51:14+08:00/docs/performance/hugegraph-benchmark-0.4.4/2022-09-15T12:59:59+08:00/docs/summary/2023-07-31T23:55:30+08:00/blog/2022-03-21T18:55:33+08:00/categories//community/2022-03-21T18:55:33+08:00/2023-01-15T13:44:01+00:00/search/2022-03-21T18:55:33+08:00/tags/ \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index cd15f2aeb..cfe19fca4 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -/en/sitemap.xml2023-09-09T20:50:32+08:00/cn/sitemap.xml2023-09-09T20:50:32+08:00 \ No newline at end of file +/en/sitemap.xml2023-09-12T12:18:04+08:00/cn/sitemap.xml2023-09-12T12:18:04+08:00 \ No newline at end of file