备份与恢复
| 此功能在 AuraDS 中不可用。 |
此功能处于 alpha 阶段。有关功能分级的更多信息,请参阅 API 分级。
在 Neo4j 图数据科学 (GDS) 库中,图和机器学习模型存储在内存中。这主要是出于性能考虑,但缺点是数据库关闭后数据会丢失。目前已有多种方法可以规避此限制,例如以 写模式 运行算法、将图导出为 CSV 或 存储模型。本节描述的备份和恢复程序提供了一种简单且统一的方法来保存图和模型,以便在数据库重启后将其重新加载到内存中。
请注意,同一时间只能存在一个备份。调用备份将会覆盖之前的备份。对于多用户环境,建议由管理员用户执行备份和恢复操作,因为他们拥有访问所有图和模型的权限。
|
必须为此功能配置 |
语法
CALL gds.backup(configuration: Map)
YIELD
backupId: String,
backupTime: LocalDateTime,
exportMillis: Long
| 名称 | 类型 | 可选 | 描述 |
|---|---|---|---|
配置 |
Map |
是 |
用于配置备份的附加参数。 |
| 名称 | 类型 | 默认 | 描述 |
|---|---|---|---|
concurrency |
整数 |
4 |
执行备份时使用的并发线程数。 |
includeGraphs |
布尔值 |
true |
用于决定是仅备份模型,还是同时备份图的标志。 |
useLabelMapping |
布尔值 |
true |
用于决定在导出图时是否使用节点标签映射的标志。详细信息请参阅 导出图为 CSV。 |
| 名称 | 类型 | 描述 |
|---|---|---|
graphName |
字符串 |
持久化图的名称,如果持久化的是模型,则为空字符串。 |
modelName |
字符串 |
持久化模型的名称,如果持久化的是图,则为空字符串。 |
exportPath |
字符串 |
存储备份的路径。 |
backupTime |
LocalDateTime |
创建备份的时间点。 |
exportMillis |
Long |
创建备份所花费的毫秒数。 |
状态 (status) |
字符串 |
持久化操作的状态。结果为 |
CALL gds.restore(configuration: Map)
YIELD
restoredGraph: String,
restoredModel: String,
status: String,
restoreMillis: Long
| 名称 | 类型 | 可选 | 描述 |
|---|---|---|---|
配置 |
Map |
是 |
用于配置恢复的附加参数。 |
| 名称 | 类型 | 默认 | 描述 |
|---|---|---|---|
concurrency |
整数 |
4 |
执行恢复时使用的并发线程数。 |
| 名称 | 类型 | 描述 |
|---|---|---|
restoredGraph |
字符串 |
已恢复图的名称,如果恢复的是模型,则为空字符串。 |
restoredModel |
字符串 |
已恢复模型的名称,如果恢复的是图,则为空字符串。 |
状态 (status) |
字符串 |
恢复操作的状态。结果为 |
restoreMillis |
Long |
恢复过程所花费的时间(毫秒)。 |
示例
|
以下所有示例应在空数据库中运行。 这些示例以 Cypher 投影 为准。原生投影将在未来的版本中弃用。 |
首先,我们需要在相应的 Neo4j 数据库中创建一个图。
CREATE
(alice:Person {name: 'Alice'}),
(bridget:Person {name: 'Bridget'}),
(alice)-[:KNOWS]->(bridget)
现在我们需要投影一个想要备份的内存图。
MATCH (n:Person)-[r:KNOWS]->(m:Person)
RETURN gds.graph.project('myGraph', n, m)
现在我们可以运行备份程序,将内存中的图存储到磁盘上。
CALL gds.backup()
YIELD graphName, status
| graphName | 状态 (status) |
|---|---|
|
|
现在可以安全地删除内存中的图或关闭数据库了,因为我们可以在以后的时间点将其恢复。
CALL gds.graph.drop('myGraph')
如果我们想恢复已备份的图,只需运行恢复程序将其重新加载到内存中即可。
CALL gds.restore()
YIELD restoredGraph
| restoredGraph |
|---|
|
正如我们所见,该程序恢复了一个名为 myGraph 的图。