Graphspace API
2.0 Graphspace
在 HugeGraph 中,多租户是通过图空间(graph space)来实现的,资源的分配和隔离可以通过图空间进行。
重要前置条件:
- 目前图空间功能只支持在 hstore 模式下使用。
- 如果非 hstore 模式,则只能使用默认的图空间
DEFAULT,且不支持创建、删除和更新图空间的操作。 - 注意在 rest-server.properties 中,设置
usePD=true,并且 hugegraph.properties 中,设置backend=hstore - 图空间功能必须开启鉴权模式,默认账密为 admin:pa(见
auth.admin_pa配置项),请务必修改默认密码,防止未授权访问。 - 本页所有接口都只在 PD 模式下可用,单机模式下会返回
400和GraphSpace management is not supported in standalone mode错误信息。
2.0.1 创建一个图空间
Method & Url
Request Body
注意:目前 cpu,内存,以及 k8s 相关功能暂未开放
| 名称 | 是否必填 | 类型 | 默认值 | 取值范围 | 说明 |
|---|---|---|---|---|---|
| name | 是 | String | 小写字母、数字和下划线组成,首字符必须是小写字母,长度不超过 48 | 图空间的名字 | |
| nickname | 否 | String | name 的值 | 在所有图空间中必须唯一 | 图空间的显示名 |
| description | 否 | String | 图空间的描述信息 | ||
| cpu_limit | 是 | Int | > 0 | CPU 核数 | |
| memory_limit | 是 | Int | > 0 | 内存大小,单位 GB | |
| storage_limit | 是 | Int | > 0 | 图空间的数据占据的磁盘空间上限 | |
| compute_cpu_limit | 否 | Int | 0 | >= 0 | 针对图计算的额外资源配置,单位 cores。当该字段不配置或者配置为 0 时,会由 cpu_limit 字段的值进行覆盖 |
| compute_memory_limit | 否 | Int | 0 | >= 0 | 针对图计算的额外内存配置,单位 GB。当该字段不配置或者配置为 0 时,会由 memory_limit 字段的值进行覆盖 |
| oltp_namespace | 否 | String | "" | OLTP 的 k8s 命名空间 | |
| olap_namespace | 否 | String | "" | OLAP 的 k8s 命名空间。当 olap_namespace 和 oltp_namespace 的值相同时,其配置的资源限额会进行合并 | |
| storage_namespace | 否 | String | "" | 存储的 k8s 命名空间 | |
| operator_image_path | 否 | String | "" | 图计算 operator 的镜像地址:在创建图空间时,允许指定对应的图计算镜像并交由 K8S 进行统一管理 | |
| internal_algorithm_image_url | 否 | String | "" | 图计算的算法镜像地址:在创建图空间时,允许指定图计算的算法镜像并交由 K8S 进行统一管理 | |
| max_graph_number | 是 | Int | > 0 | 图空间的图数目的上限 | |
| max_role_number | 否 | Int | 0 | 图空间的角色数目的上限 | |
| auth | 否 | Boolean | false | true, false | 图空间是否支持权限认证 |
| configs | 否 | Map | 其他配置信息 |
Response Status
Response Body
2.0.2 列出系统所有图空间
Method & Url
Response Status
Response Body
2.0.3 查看某个图空间
Params
路径参数说明:
- graphspace: 图空间名称
Method & Url
Response Status
Response Body
dp_username和dp_password由图空间名称推导得到,只有该接口会返回这两个字段。
2.0.4 更新某个图空间
注意:auth 鉴权配置,在创建图空间的过程一旦确定下来,不允许更新
Params
路径参数说明:
- graphspace: 图空间名称
请求体说明:
- action: 标记本次操作为 Update 动作,取值固定为 “update”
- update: 即将更新的值,下述参数都应置于 update 中
| 名称 | 是否必填 | 类型 | 默认值 | 取值范围 | 说明 |
|---|---|---|---|---|---|
| name | 是 | String | 必须与路径中的图空间名一致 | 图空间名称 | |
| nickname | 否 | String | 在所有图空间中必须唯一 | 图空间的显示名 | |
| description | 否 | String | 图空间的描述信息 | ||
| cpu_limit | 是 | Int | > 0 | OLTP HugeGraphServer 的 CPU 核数 | |
| memory_limit | 是 | Int | > 0 | OLTP HugeGraphServer 的内存大小,单位 GB | |
| storage_limit | 是 | Int | > 0 | 图空间的数据占据的磁盘空间上限 | |
| compute_cpu_limit | 否 | Int | 0 | >= 0 | 针对图计算的额外资源配置,单位 cores。当该字段不配置或者配置为 0 时,会由 cpu_limit 字段的值进行覆盖 |
| compute_memory_limit | 否 | Int | 0 | >= 0 | 针对图计算的额外内存配置,单位 GB。当该字段不配置或者配置为 0 时,会由 memory_limit 字段的值进行覆盖 |
| oltp_namespace | 否 | String | OLTP 的 k8s 命名空间 | ||
| olap_namespace | 否 | String | OLAP 的 k8s 命名空间。当 olap_namespace 和 oltp_namespace 的值相同时,其配置的资源限额会进行合并 | ||
| storage_namespace | 否 | String | 存储的 k8s 命名空间 | ||
| operator_image_path | 否 | String | 图计算 operator 的镜像地址:在更新图空间时,允许指定对应的图计算镜像并交由 K8S 进行统一管理 | ||
| internal_algorithm_image_url | 否 | String | 图计算的算法镜像地址:在更新图空间时,允许指定图计算的算法镜像并交由 K8S 进行统一管理 | ||
| max_graph_number | 是 | Int | > 0 | 图空间的图数目的上限 | |
| max_role_number | 否 | Int | 图空间的角色数目的上限 |
Method & Url
Request Body
Response Status
Response Body
2.0.5 删除某个图空间
Params
路径参数说明:
- graphspace: 图空间名称
Method & Url
Response Status
注意:删除图空间,会导致图空间的全部资源被释放。
2.0.6 列出系统所有图空间及其详情
Params
请求参数说明:
- prefix: 只返回名称或显示名以该前缀开头的图空间
Method & Url
Response Status
Response Body
每条记录包含与 GET /graphspaces/{graphspace} 相同的字段,并额外带上 authed、default、create_time 和 update_time。authed 表示当前用户是否可以进入该图空间:当图空间开启了鉴权,而当前用户既不是管理员、也不是该空间的管理员或成员时为 false。default 目前恒为 false,默认图空间功能尚未实现。
默认角色
每个图空间内置四种默认角色,可以一次性把一整组权限赋给某个用户或角色:
space:图空间管理员,只有管理员可以授予space_member:图空间成员analyst:图空间分析师observer:只读角色,传入graph时可以收窄到单个图
user 既可以是用户名,也可以是角色名。当前用户是否具备某个默认角色也可以通过 GET /graphspaces/{graphspace}/auth/managers/default 查询,参见 Authentication API。
2.0.7 授予默认角色
Params
路径参数说明:
- graphspace: 图空间名称
请求体说明:
- user: 用户名或角色名,必填
- role: 取值为
space、space_member、analyst、observer之一,必填 - graph: 图名称,选填,只在
role=observer时生效
Method & Url
Request Body
Response Status
Response Body
只有在单个图上授予角色时才会回显 graph。
2.0.8 查询默认角色
Params
路径参数说明:
- graphspace: 图空间名称
请求参数说明:
- user: 用户名或角色名,必填
- role: 默认角色名称,必填
- graph: 图名称,选填,只在
role=observer时生效
Method & Url
Response Status
Response Body
2.0.9 回收默认角色
Params
路径参数说明:
- graphspace: 图空间名称
请求参数说明:
- user: 用户名或角色名,必填
- role: 默认角色名称,必填
- graph: 图名称,选填,只在
role=observer时生效
Method & Url
Response Status
Schema 模板
Schema 模板把一段 Gremlin schema 脚本以名称保存下来,创建图时通过 schema 字段引用它来初始化图,参见 Graphs API。模板可以由它的创建者、图空间管理员或系统管理员修改和删除。
2.0.10 创建 schema 模板
Params
路径参数说明:
- graphspace: 图空间名称
请求体说明:
- name: 模板名称,必填
- schema: Gremlin schema 脚本,必填
Method & Url
Request Body
Response Status
Response Body
2.0.11 列出图空间的全部 schema 模板
Method & Url
Response Status
Response Body
2.0.12 查看某个 schema 模板
Method & Url
Response Status
2.0.13 修改某个 schema 模板
只能修改 schema,模板名称不可修改。