介绍
图数据集,即 Ultipa GraphSet,指的是由点、边组成的图结构,以及点、边的 schema、属性和除点边之外的权限、索引等各类信息组成的集合。后面会将 GraphSet 简称为 graph。
每个 Ultipa 实例在创建后会自带一个名为 default 的图集(不可删除);每个 Ultipa 实例中可以创建多个图集。
对于暂时不使用,即不需要执行任何针对 schema、属性、元数据的 UQL、RPC 操作,或需要避免这些操作的图集,可以先卸载,待需要操作时再重新挂载;此方法可以适当节省服务器内存。
卸载后的图集仅可进行图集修改、删除、挂载这三个操作;重新挂载后,图集属性的 LTE、索引等与先前保持一致。
命名规则
图集由开发者自定义名称,一个 Ultipa 实例中的图集不能重名。
- 2 ~ 64 个字符
- 必须以字母开头
- 仅允许使用字母,下划线和数字(即 _ 、A-Z、a-z、0-9)
查看图集
返回的表名:_graph
返回的表头:id
|name
|totalNodes
|totalEdges
|description
|status
(图集的 id、名称、点数量、边数量、描述、状态;图集状态可为:mounted,unmounted,mounting;只有状态为 mounted 的图集会显示真实的点、边数量)
语法:
// 查看当前 Ultipa 实例中所有图集信息(listGraph接口)
show().graph()
// 查看当前 Ultipa 实例中所有图集信息
show().graph("")
// 查看当前 Ultipa 实例中某个图集信息
show().graph("<name>")
创建图集
语法:
// 在当前 Ultipa 实例中创建一个图集
create().graph("<name>", "<desc?>")
// 重复以上方法同时创建多个图集
create()
.graph("<name>", "<desc?>")
.graph("<name>", "<desc?>")
...
修改图集(名称、描述)
语法:
// 修改当前 Ultipa 实例中某个图集的名称、描述
alter().graph("<name>")
.set({name: "<new_name?>", description: "<new_desc?>"})
删除图集
除默认图集 default 不允许删除之外,当前实例中的其它图集均可以删除。
语法:
// 从当前 Ultipa 实例中删除某个图集
drop().graph("<name>")
// 从当前 Ultipa 实例中删除多个图集
drop().graph("<name>").graph("<name>")...
挂载图集
语法:
// 在当前 Ultipa 实例中挂载某个图集
mount().graph("<name>")
卸载图集
除默认图集 default 不允许卸载之外,当前实例中的其它图集均可以卸载。
如果当前图集的状态为 unmounted
,则无法对自身内部的模式、属性、元数据等进行任何操作。
语法:
// 从当前 Ultipa 实例中卸载某个图集
unmount().graph("<name>")
清空图集
清空操作会将当前 Ultipa 实例中某个图集的所有或部分点、边删除。
语法:
// 清空当前 Ultipa 实例中某个图集的所有点和边
truncate().graph("<graphSet>")
// 清空当前 Ultipa 实例中某个图集某个 schema 的所有点
truncate().graph("<graphSet>").nodes(@<schema>)
// 清空当前 Ultipa 实例中某个图集某个 schema 的所有边
truncate().graph("<graphSet>").edges(@<schema>)
// 清空当前 Ultipa 实例中某个图集的所有点
truncate().graph("<graphSet>").nodes("*")
// 清空当前 Ultipa 实例中某个图集的所有边
truncate().graph("<graphSet>").edges("*")
示例:删除图集 test 的全部数据
truncate().graph("test")
示例:删除图集 test 的所有边
truncate().graph("test").edges("*")
碎片整理
碎片整理操作会清理当前 Ultipa 实例中某个图集的无效数据,比如删除和修改数据时所保留的原先的旧数据。这些碎片数据会降低查询效率,建议定期对系统进行碎片整理。
语法:
// 对当前 Ultipa 实例中某个图集进行碎片整理
compact().graph("<graphSet>")