tutorial examples conectar con python neo4j gremlin bulbs tinkerpop

examples - Elegir una forma apropiada de usar Neo4j en Python



py2neo (3)

Django es un framework web MVC, por lo que puede interesarte si el tuyo es una aplicación web.

Desde el punto de vista de py2neo (del que soy el autor), trato de centrarme en el rendimiento mediante el uso del mecanismo de ejecución de lotes de forma automática, en su caso, y de proporcionar una gran compatibilidad con Cypher. También recientemente he dedicado mucho trabajo a proporcionar buenas opciones para la gestión de exclusividad dentro de los índices, específicamente los métodos get_or_create y add_if_none .

Actualmente estoy usando el enlace embebido de python para neo4j. No tengo ningún problema actualmente ya que mi gráfico es muy pequeño (escaso y hasta 100 nodos). El algoritmo que estoy desarrollando implica una gran cantidad de cruces en el gráfico, más específicamente DFS en el gráfico en general, así como en diferentes subgrafos. En el futuro, pretendo ejecutar el algoritmo en gráficos grandes (supuestamente escasos y con millones de nodos).

Después de leer aquí diferentes hilos relacionados con el rendimiento de las vinculaciones python / neo4j, me pregunto si ya debería cambiar a algún cliente API REST para Python (como bulbflow, py2neo, neo4jrestclient) hasta que esté demasiado lejos para cambiar todo el código.

Desafortunadamente, no encontré ninguna fuente de información exhaustiva para comparar diferentes enfoques.

¿Alguien podría proporcionar alguna información adicional sobre este tema? ¿Qué criterios debo tener en cuenta al elegir una de las opciones?


No estoy seguro, no soy un experto, pero creo que también depende de las expectativas de Django y de la cantidad de marco que necesita. Py2neo es muy pragmático y delgado, Bulbflow parece construir una pila de mapeo completa, etc., y neo4jrestclient se está concentrando en Django (¿qué puede estar mal?)


La forma más fácil de ejecutar algoritmos desde Python es usar Gremlin ( https://github.com/tinkerpop/gremlin/wiki) .

Con Gremlin puedes agrupar todo en una sola solicitud HTTP para reducir la sobrecarga de ida y vuelta.

A continuación se explica cómo ejecutar los guiones de Gremlin desde Bulbs ( http://bulbflow.com ):

>>> from bulbs.neo4jserver import Graph >>> g = Graph() >>> script = "g.v(id).out(''knows'').out(''knows'')" >>> params = dict(id=3) >>> g.gremlin.execute(script, params)

Los documentos API de Bulbs Gremlin están aquí: http://bulbflow.com/docs/api/bulbs/gremlin/