apoc.export.arrow.stream.all
Procedure
apoc.export.arrow.stream.all(config MAP<STRING, ANY>) - exports the full database as an arrow byte array.
|
It is considered unsafe to run this procedure using multiple threads. It is therefore not supported by the parallel runtime (introduced in Neo4j 5.13). For more information, see the Cypher Manual → Parallel runtime. |
Config parameters
The procedure support the following config parameters:
| name | type | default | description |
|---|---|---|---|
batchSize |
Integer |
2000 |
the batch size of the ArrowStreamWriter |
Usage Examples
The procedure expose an Arrow byte[] for each batch of rows with the following structure
- <id>: for node id
- <labels>: list of labels
- <source.id>: source node id (in case of relationship)
- <target.id>: target node id (in case of relationship)
- <type>: for relationship type
- the list of properties of nodes and relationships flattened as table
So for the following query:
CREATE (f:User {name:'Adam',age:42,male:true,kids:['Sam','Anna','Grace'], born:localdatetime('2015185T19:32:24'), place:point({latitude: 13.1, longitude: 33.46789})})-[:KNOWS {since: 1993, bffSince: duration('P5M1.5D')}]->(b:User {name:'Jim',age:42}),(c:User {age:12}),(d:Another {foo: 'bar'})
With this query:
CALL apoc.export.arrow.stream.all()
We’ll have a table with the following columns:
-
<id> -
<labels> -
<source.id> -
<target.id> -
<type> -
name -
age -
male -
kids -
born -
place -
since -
bffSince