导出到新的 Neo4j 数据库
此功能在 AuraDS 中不可用。 |
我们可以从存储在图目录中的投影图创建新的 Neo4j 数据库。投影图中存在的所有节点、关系和属性都将写入新的 Neo4j 数据库。这包括在 gds.graph.project
中投影的数据和在 mutate
模式下运行算法添加的数据。新创建的数据库将使用给定的数据库名称存储在 Neo4j databases
目录中。
此功能在以下示例场景中很有用:
-
通过导出数据而不是写回,避免在操作系统上产生大量写入负载。
-
创建操作系统的分析视图,该视图可用作运行算法的基础。
-
生成分析结果快照,并将其持久化以供存档和检查。
-
在组织内部共享分析结果。
语法
CALL gds.graph.export(graphName: String, configuration: Map)
YIELD
dbName: String,
graphName: String,
nodeCount: Integer,
nodePropertyCount: Integer,
relationshipCount: Integer,
relationshipTypeCount: Integer,
relationshipPropertyCount: Integer,
writeMillis: Integer
名称 | 类型 | 可选 | 描述 |
---|---|---|---|
graphName |
字符串 |
否 |
图在目录中存储的名称。 |
configuration |
地图 |
否 |
配置数据库导出的其他参数。 |
名称 | 类型 | 默认 | 可选 | 描述 |
---|---|---|---|---|
dbName |
字符串 |
|
否 |
导出 Neo4j 数据库的名称。 |
dbFormat |
字符串 |
|
是 |
数据库格式。有效值为空白(无值,默认)、 |
writeConcurrency |
布尔值 |
|
是 |
用于写入数据库的并发线程数。 |
enableDebugLog |
布尔值 |
|
是 |
将调试信息打印到 Neo4j 日志文件(已弃用)。 |
batchSize |
整数 |
|
是 |
单个线程一次处理的实体数量。 |
defaultRelationshipType |
字符串 |
|
是 |
用于 |
additionalNodeProperties |
字符串、列表或地图 |
|
是 |
允许从原始图(作为内存中图的基础)导出其他节点属性。 |
名称 | 类型 | 描述 |
---|---|---|
dbName |
字符串 |
导出 Neo4j 数据库的名称。 |
graphName |
字符串 |
图在目录中存储的名称。 |
nodeCount |
整数 |
导出的节点数。 |
nodePropertyCount |
整数 |
导出的节点属性数。 |
relationshipCount |
整数 |
导出的关系数。 |
relationshipTypeCount |
整数 |
导出的关系类型数。 |
relationshipPropertyCount |
整数 |
导出的关系属性数。 |
writeMillis |
整数 |
将图写入新数据库的毫秒数。 |
示例
my-graph
导出到名为 mydatabase
的 Neo4j 数据库CALL gds.graph.export('my-graph', { dbName: 'mydatabase' })
可以使用 数据库管理命令 启动新数据库。
在使用导出过程时,数据库必须不存在。需要使用以下命令手动创建它。 |
:use system
CREATE DATABASE mydatabase;
:use mydatabase
MATCH (n) RETURN n;
包含其他节点属性的示例
假设我们在 Neo4j 数据库中有一个名为 my-db-graph
的图,它有一个名为 myproperty
的字符串节点属性,并且我们有一个相应的内存图,名为 my-in-memory-graph
,它没有 myproperty
节点属性。如果我们想导出 my-in-memory-graph
,并额外添加来自 my-db-graph
的 myproperty
属性,可以使用 additionalProperties
配置参数。
my-db-graph
的 myproperty
从 GDS 导出 my-in-memory-graph
到名为 mydatabase
的 Neo4j 数据库。CALL gds.graph.export('my-graph', { dbName: 'mydatabase', additionalNodeProperties: ['myproperty']})
可以使用 数据库管理命令 启动新数据库。
为了使导出正常工作,原始数据库 ( |
additionalNodeProperties
参数使用与 图项目过程 的 nodeProperties
相同的语法。因此,我们可以为我们的 myproperty
定义一个默认值。
my-db-graph
的 myproperty
从 GDS 导出 my-in-memory-graph
到名为 mydatabase
的 Neo4j 数据库,并使用默认值。CALL gds.graph.export('my-graph', { dbName: 'mydatabase', additionalNodeProperties: [{ myproperty: {defaultValue: 'my-default-value'}}] })