删除图

为了释放内存,我们可以删除未使用的图。为此,gds.graph.drop 过程非常方便。

语法

从目录中删除图
CALL gds.graph.drop(
  graphName: String,
  failIfMissing: Boolean,
  dbName: String,
  username: String
) YIELD
  graphName: String,
  database: String,
  databaseLocation: String,
  configuration: Map,
  nodeCount: Integer,
  relationshipCount: Integer,
  schema: Map,
  schemaWithOrientation: Map,
  density: Float,
  creationTime: Datetime,
  modificationTime: Datetime,
  sizeInBytes: Integer,
  memoryUsage: String
表 1. 参数
名称 类型 可选 描述

graphName

字符串

图在目录中存储的名称。

failIfMissing

布尔值

默认情况下,库在尝试删除不存在的图时会引发错误。当设置为 false 时,过程返回空结果。

dbName

字符串

活动数据库名称

用于投影图的数据库的名称。为空时,使用当前数据库。

username

字符串

活动用户

投影图的用户名称。只能由 GDS 管理员使用。

表 2. 结果
名称 类型 描述

graphName

字符串

已删除图的名称。

database

字符串

已投影图所在的数据库的名称。

databaseLocation

字符串

已投影图的数据库位置。可以是 localremotenone 之一。

configuration

映射

用于在内存中投影图的配置。

nodeCount

整数

图中节点的数量。

relationshipCount

整数

图中关系的数量。

schema

映射

内存中图中包含的节点标签、关系类型和属性。

schemaWithOrientation

映射

投影图中包含的节点标签、关系类型、关系方向和属性。

density

浮点数

图的密度。

creationTime

日期时间

投影图的时间。

modificationTime

日期时间

图上次修改的时间。

sizeInBytes

整数

用于存储图的 Java 堆中的字节数。

memoryUsage

字符串

sizeInBytes 的人类可读描述。

示例

以下所有示例都应在空数据库中运行。

在本节中,我们将演示 gds.graph.drop 的用法。这些示例中使用的所有图名称都是虚构的,应替换为实际值。

基本用法

从目录中删除图
CALL gds.graph.drop('my-store-graph') YIELD graphName;

如果我们运行上面的示例两次,第二次会引发错误。如果我们希望该过程在不存在的图上静默失败,我们可以将布尔标志作为第二个参数设置为 false。这将对不存在的图产生空结果。

尝试从目录中删除图
CALL gds.graph.drop('my-fictive-graph', false) YIELD graphName;

多数据库支持

如果我们想要删除投影到另一个数据库的图,我们可以将数据库名称作为第三个参数设置。

尝试从目录中删除图
CALL gds.graph.drop('my-fictive-graph', true, 'my-other-db') YIELD graphName;

多用户支持

如果我们是一个 GDS 管理员并且想要删除属于另一个用户的图,我们可以将用户名作为第四个参数设置为过程。如果有多个用户具有相同名称的图,这将很有用。

从特定用户的图目录中删除图
CALL gds.graph.drop('my-fictive-graph', true, '', 'another-user') YIELD graphName;

有关此内容的更多详细信息,请参阅 管理