|| apoc.export.graphml.all - APOC 核心文档 - Neo4j 文档

apoc.export.graphml.all

此过程不被认为可在多线程环境下安全运行。因此,并行运行时不支持此过程。欲了解更多信息,请参阅Cypher 手册 → 并行运行时

详情

语法

apoc.export.graphml.all(file, config) :: (file, source, format, nodes, relationships, properties, time, rows, batchSize, batches, done, data)

描述

将整个数据库导出到提供的 GraphML 文件。

输入参数

名称

类型

描述

file

STRING

将数据导出到的文件名称。

config

MAP

{ stream = false :: BOOLEAN, format = 'cypher-shell' :: STRING timeoutSeconds = 100 :: INTEGER, compression = 'NONE' :: ['NONE', 'BYTES', 'GZIP', 'BZIP2', 'DEFLATE', 'BLOCK_LZ4', 'FRAMED_SNAPPY'], charset = 'UTF_8' :: STRING, source :: MAP, target :: MAP, useTypes :: BOOLEAN caption :: LIST<STRING> }

返回参数

名称

类型

描述

file

STRING

数据导出到的文件名称。

source

STRING

导出数据的摘要。

format

STRING

文件导出的格式。

nodes

INTEGER

导出的节点数量。

relationships

INTEGER

导出的关系数量。

properties

INTEGER

导出的属性数量。

time

INTEGER

导出持续时间。

rows

INTEGER

返回的行数。

batchSize

INTEGER

导出运行时批处理的大小。

batches

INTEGER

导出运行时批次的数量。

done

BOOLEAN

导出是否成功运行。

data

ANY

导出返回的数据。

配置参数

此过程支持以下配置参数

配置选项
参数 类型 默认值 描述

stream

BOOLEAN

false

在查询结果中返回数据,而不是将其存储在文件中。

compression

Enum[NONE, BYTES, GZIP, BZIP2, DEFLATE, BLOCK_LZ4, FRAMED_SNAPPY]

'NONE'

允许获取二进制数据,可为未压缩(值:NONE)或已压缩(其他值)。

timeoutSeconds

INTEGER

100

查询超时前应运行的最大秒数。

charset

STRING

'UTF_8'

当前使用的 JDK 中扩展 java.nio.Charset 的字符集名称。例如:US-ASCII, ISO-8859-1, UTF-8, UTF-16

useTypes

BOOLEAN

false

将类型添加到文件头。

format

STRING

'cypher-shell'

导出格式。

source

MAP

false

target 一起使用,用于导入仅包含关系的文件。在这种情况下,edge 标签的源和目标属性并非基于节点的内部 ID,而是基于自定义属性值。
例如,在路径 (:Foo {name: "aaa"})-[:KNOWS]→(:Bar {age: 666}) 中,KNOWS 关系可以通过配置 <edge id="e2" source="aaa" sourceType="string" target="666" targetType="long" label="KNOWS"><data key="label">KNOWS</data><data key="id">1</data></edge> 导出。请注意额外的 sourceType/targetType,用于在导入时检测正确的类型。

target

MAP

100

source 一起使用,用于导入仅包含关系的文件。在这种情况下,edge 标签的源和目标属性并非基于节点的内部 ID,而是基于自定义属性值。
例如,在路径 (:Foo {name: "aaa"})-[:KNOWS]→(:Bar {age: 666}) 中,KNOWS 关系可以通过配置 <edge id="e2" source="aaa" sourceType="string" target="666" targetType="long" label="KNOWS"><data key="label">KNOWS</data><data key="id">1</data></edge> 导出。请注意额外的 sourceType/targetType,用于在导入时检测正确的类型。

caption

LIST<STRING>

['name', 'title', 'label', 'id']

允许获取二进制数据,可为未压缩(值:NONE)或已压缩(其他值)。

使用示例

本节中的示例基于以下示例图

CREATE (TheMatrix:Movie {title:'The Matrix', released:1999, tagline:'Welcome to the Real World'})
CREATE (Keanu:Person {name:'Keanu Reeves', born:1964})
CREATE (Carrie:Person {name:'Carrie-Anne Moss', born:1967})
CREATE (Laurence:Person {name:'Laurence Fishburne', born:1961})
CREATE (Hugo:Person {name:'Hugo Weaving', born:1960})
CREATE (LillyW:Person {name:'Lilly Wachowski', born:1967})
CREATE (LanaW:Person {name:'Lana Wachowski', born:1965})
CREATE (JoelS:Person {name:'Joel Silver', born:1952})
CREATE
(Keanu)-[:ACTED_IN {roles:['Neo']}]->(TheMatrix),
(Carrie)-[:ACTED_IN {roles:['Trinity']}]->(TheMatrix),
(Laurence)-[:ACTED_IN {roles:['Morpheus']}]->(TheMatrix),
(Hugo)-[:ACTED_IN {roles:['Agent Smith']}]->(TheMatrix),
(LillyW)-[:DIRECTED]->(TheMatrix),
(LanaW)-[:DIRECTED]->(TheMatrix),
(JoelS)-[:PRODUCED]->(TheMatrix);

下面的 Neo4j Browser 可视化显示了导入的图

play movies
图 1. 电影图可视化

apoc.export.graphml.all 过程将整个数据库导出到 GraphML 文件或作为流。

以下查询将整个数据库导出到文件 movies.graphml

CALL apoc.export.graphml.all("movies.graphml", {})
结果
file source format nodes relationships properties time rows batchSize batches done data

"movies.graphml"

"database: nodes(8), rels(7)"

"graphml"

8

7

21

4

15

-1

0

TRUE

NULL

movies.graphml
<?xml version="1.0" encoding="UTF-8"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
<key id="born" for="node" attr.name="born"/>
<key id="name" for="node" attr.name="name"/>
<key id="tagline" for="node" attr.name="tagline"/>
<key id="label" for="node" attr.name="label"/>
<key id="title" for="node" attr.name="title"/>
<key id="released" for="node" attr.name="released"/>
<key id="roles" for="edge" attr.name="roles"/>
<key id="label" for="edge" attr.name="label"/>
<graph id="G" edgedefault="directed">
<node id="n188" labels=":Movie"><data key="labels">:Movie</data><data key="title">The Matrix</data><data key="tagline">Welcome to the Real World</data><data key="released">1999</data></node>
<node id="n189" labels=":Person"><data key="labels">:Person</data><data key="born">1964</data><data key="name">Keanu Reeves</data></node>
<node id="n190" labels=":Person"><data key="labels">:Person</data><data key="born">1967</data><data key="name">Carrie-Anne Moss</data></node>
<node id="n191" labels=":Person"><data key="labels">:Person</data><data key="born">1961</data><data key="name">Laurence Fishburne</data></node>
<node id="n192" labels=":Person"><data key="labels">:Person</data><data key="born">1960</data><data key="name">Hugo Weaving</data></node>
<node id="n193" labels=":Person"><data key="labels">:Person</data><data key="born">1967</data><data key="name">Lilly Wachowski</data></node>
<node id="n194" labels=":Person"><data key="labels">:Person</data><data key="born">1965</data><data key="name">Lana Wachowski</data></node>
<node id="n195" labels=":Person"><data key="labels">:Person</data><data key="born">1952</data><data key="name">Joel Silver</data></node>
<edge id="e267" source="n189" target="n188" label="ACTED_IN"><data key="label">ACTED_IN</data><data key="roles">["Neo"]</data></edge>
<edge id="e268" source="n190" target="n188" label="ACTED_IN"><data key="label">ACTED_IN</data><data key="roles">["Trinity"]</data></edge>
<edge id="e269" source="n191" target="n188" label="ACTED_IN"><data key="label">ACTED_IN</data><data key="roles">["Morpheus"]</data></edge>
<edge id="e270" source="n192" target="n188" label="ACTED_IN"><data key="label">ACTED_IN</data><data key="roles">["Agent Smith"]</data></edge>
<edge id="e271" source="n193" target="n188" label="DIRECTED"><data key="label">DIRECTED</data></edge>
<edge id="e272" source="n194" target="n188" label="DIRECTED"><data key="label">DIRECTED</data></edge>
<edge id="e273" source="n195" target="n188" label="PRODUCED"><data key="label">PRODUCED</data></edge>
</graph>
</graphml>

以下查询在 data 列中返回整个数据库的流

CALL apoc.export.graphml.all(null, {stream:true})
YIELD file, nodes, relationships, properties, data
RETURN file, nodes, relationships, properties, data;
结果
file nodes relationships properties data

NULL

8

7

21

"<?xml version=\"1.0\" encoding=\"UTF-8\"?>
 <graphml xmlns="\"http://graphml.graphdrawing.org/xmlns\""
          xmlns:xsi="\"http://www.w3.org/2001/XMLSchema-instance\""
          xsi:schemaLocation="\"http://graphml.graphdrawing.org/xmlns http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd\"">
   <key id="\"born\"" for="\"node\"" attr.name="\"born\""/>
   <key id="\"name\"" for="\"node\"" attr.name="\"name\""/>
   <key id="\"tagline\"" for="\"node\"" attr.name="\"tagline\""/>
   <key id="\"label\"" for="\"node\"" attr.name="\"label\""/>
   <key id="\"title\"" for="\"node\"" attr.name="\"title\""/>
   <key id="\"released\"" for="\"node\"" attr.name="\"released\""/>
   <key id="\"roles\"" for="\"edge\"" attr.name="\"roles\""/>
   <key id="\"label\"" for="\"edge\"" attr.name="\"label\""/>
   <graph id="\"G\"" edgedefault="\"directed\"">
     <node id="\"n188\"" labels="\":Movie\"">
       <data key="\"labels\"">:Movie</data>
       <data key="\"title\"">The Matrix</data>
       <data key="\"tagline\"">Welcome to the Real World</data>
       <data key="\"released\"">1999</data>
     </node>
     <node id="\"n189\"" labels="\":Person\"">
       <data key="\"labels\"">:Person</data>
       <data key="\"born\"">1964</data>
       <data key="\"name\"">Keanu Reeves</data>
     </node>
     <node id="\"n190\"" labels="\":Person\"">
       <data key="\"labels\"">:Person</data>
       <data key="\"born\"">1967</data>
       <data key="\"name\"">Carrie-Anne Moss</data>
     </node>
     <node id="\"n191\"" labels="\":Person\"">
       <data key="\"labels\"">:Person</data>
       <data key="\"born\"">1961</data>
       <data key="\"name\"">Laurence Fishburne</data>
     </node>
     <node id="\"n192\"" labels="\":Person\"">
       <data key="\"labels\"">:Person</data>
       <data key="\"born\"">1960</data>
       <data key="\"name\"">Hugo Weaving</data>
     </node>
     <node id="\"n193\"" labels="\":Person\"">
       <data key="\"labels\"">:Person</data>
       <data key="\"born\"">1967</data>
       <data key="\"name\"">Lilly Wachowski</data>
     </node>
     <node id="\"n194\"" labels="\":Person\"">
       <data key="\"labels\"">:Person</data>
       <data key="\"born\"">1965</data>
       <data key="\"name\"">Lana Wachowski</data>
     </node>
     <node id="\"n195\"" labels="\":Person\"">
       <data key="\"labels\"">:Person</data>
       <data key="\"born\"">1952</data>
       <data key="\"name\"">Joel Silver</data>
     </node>
     <edge id="\"e267\"" source="\"n189\"" target="\"n188\"" label="\"ACTED_IN\"">
       <data key="\"label\"">ACTED_IN</data>
       <data key="\"roles\"">[\"Neo\"]</data>
     </edge>
     <edge id="\"e268\"" source="\"n190\"" target="\"n188\"" label="\"ACTED_IN\"">
       <data key="\"label\"">ACTED_IN</data>
       <data key="\"roles\"">[\"Trinity\"]</data>
     </edge>
     <edge id="\"e269\"" source="\"n191\"" target="\"n188\"" label="\"ACTED_IN\"">
       <data key="\"label\"">ACTED_IN</data>
       <data key="\"roles\"">[\"Morpheus\"]</data>
     </edge>
     <edge id="\"e270\"" source="\"n192\"" target="\"n188\"" label="\"ACTED_IN\"">
       <data key="\"label\"">ACTED_IN</data>
       <data key="\"roles\"">[\"Agent Smith\"]</data>
     </edge>
     <edge id="\"e271\"" source="\"n193\"" target="\"n188\"" label="\"DIRECTED\"">
       <data key="\"label\"">DIRECTED</data>
     </edge>
     <edge id="\"e272\"" source="\"n194\"" target="\"n188\"" label="\"DIRECTED\"">
       <data key="\"label\"">DIRECTED</data>
     </edge>
     <edge id="\"e273\"" source="\"n195\"" target="\"n188\"" label="\"PRODUCED\"">
       <data key="\"label\"">PRODUCED</data>
     </edge>
   </graph>
 </graphml>
  "
© . This site is unofficial and not affiliated with Neo4j, Inc.