user799188
user799188

Reputation: 14425

Efficiently Exporting Relationships From Neo4J

I have a relatively small but growing database (2M nodes, 5M relationships). Relationships often change. I periodically need to export the list of relationships for some other computations.

At present, I use a paginated query, but it gets slow as the value of skip increases

MATCH (a)-[r]->(b) RETURN ID(a) AS id1, ID(b) AS id2, TYPE(r) AS r_type
SKIP %d LIMIT 1000

I am using py2neo. The relevant bit of code:

while (count <= num_records):
    for record in graph.cypher.stream(cq % (skip, limit)):
        id1 = record["id1"]
        id2 = record["id2"]
        r_type = record["r_type"]

Is there a better / more efficient way to do this?

Thanks in advance.

Upvotes: 1

Views: 950

Answers (1)

Michael Hunger
Michael Hunger

Reputation: 41676

You don't have to skip / limit in the first place.

Neo can easily output gigabytes of data.

See this blog post for another way of doing that: http://neo4j.com/blog/export-csv-from-neo4j-curl-cypher-jq/

You can also use Save as CSV in Neo4j Browser after you ran a query.

Upvotes: 1

Related Questions