Cómo insertar datos masivos en Neo4j usando Python
py2neo (2)
Quiero insertar algunos datos en Neo4j
usando py2neo
. Enlace al archivo de datos. Soy nuevo en Neo4j
. ¿Puede alguien decirme cómo insertar datos a granel en Neo4j
En realidad, quiero hacer pruebas de rendimiento de Neo4j
.....
Lo he intentado pero esto es solo para pequeños conjuntos de datos ...
from pprint import pprint
from py2neo import neo4j,node, rel
graph_db = neo4j.GraphDatabaseService()
def insert_data():
die_hard = graph_db.create(
node(name="Bruce Willis"),
node(name="John McClane"),
node(name="Alan Rickman"),
node(name="Hans Gruber"),
node(name="Nakatomi Plaza"),
rel(0, "PLAYS", 1),
rel(2, "PLAYS", 3),
rel(1, "VISITS", 4),
rel(3, "STEALS_FROM", 4),
rel(1, "KILLS", 3),)
pprint(die_hard)
insert_data()
error:
src/test/java/org/neo4j/batchimport/TestDataGenerator.java:3: error: package org.junit does not exist
import org.junit.Ignore;
^
src/test/java/org/neo4j/batchimport/TestDataGenerator.java:14: error: cannot find symbol
@Ignore
^
symbol: class Ignore
2 errors
No estoy seguro de si este es el problema que tiene, pero cuando probé su muestra, obtuve errores en la sintaxis [name =]. Lo que se está pasando al constructor node () es un diccionario. Hay una sintaxis múltiple para el constructor del nodo (), y no vi una sintaxis que coincida con la que está usando. Por lo tanto, intente utilizar la sintaxis del diccionario de esta manera:
node({"name": "Bruce Willis"})
Además, no estoy seguro de haber configurado una url predeterminada de neo4j, pero tuve que especificar una url de punto de conexión en mi llamada new4j.GraphDatabaseService ().
Por lo tanto, su código se vería así:
from pprint import pprint
from py2neo import neo4j, node, rel
graph_db = neo4j.GraphDatabaseService(''http://localhost:7474/db/data'')
def insert_data():
die_hard = graph_db.create(
node({"name": "Bruce Willis"}),
node({"name": "John McClane"}),
node({"name": "Alan Rickman"}),
node({"name": "Hans Gruber"}),
node({"name": "Nakatomi Plaza"}),
rel(0, "PLAYS", 1),
rel(2, "PLAYS", 3),
rel(1, "VISITS", 4),
rel(3, "STEALS_FROM", 4),
rel(1, "KILLS", 3),)
pprint(die_hard)
insert_data()
Recomiendo encarecidamente que utilice el formato '' Geoff '', que significa ''Formato de archivo de objeto de exportación de gráfico''.
En este método, básicamente genera un archivo de texto que contiene nodos e información de relación que luego se usa para completar la base de datos en una inserción por lotes.
El módulo '' Load2Neo '' se usa para insertar por lotes la información.
Habiéndolo usado, puedo decir que es extremadamente rápido. Asegúrese de revisar la documentación simple aquí . ¡Mientras siga las reglas de sintaxis, tendrá una experiencia fluida con Geoff!
Geoff ha sido desarrollado por Nigel Small, quien también es el autor de Py2Neo (el controlador de Python para Neo4j). Si tiene problemas y quiere ayuda rápida, asegúrese de enviar un tweet a Nigel. Él ayuda!