Вопрос по python, neo4j – Выбор подходящего способа использования Neo4j в Python

11

В настоящее время я использую встроенную привязку Python для neo4j. У меня нет никаких проблем в настоящее время, так как мой график очень маленький (разреженный и до 100 узлов). Алгоритм, который я разрабатываю, включает в себя довольно много обходов на графе, в частности, DFS на графе в целом, а также на разных подграфах. В будущем я намереваюсь запустить алгоритм на больших графах (предположительно разреженных и с миллионами узлов).

Прочитав различные темы, связанные с производительностью привязок python / neo4jВот, ВотМне интересно, должен ли я уже переключаться на какой-нибудь REST API-клиент для Python (например, bulbflow, py2neo, neo4jrestclient), пока я не слишком далеко, чтобы изменить весь код.

К сожалению, я не нашел исчерпывающего источника информации для сравнения разных подходов.

Может ли кто-нибудь предоставить более глубокое понимание этого вопроса? Какие критерии я должен учитывать при выборе одного из вариантов?

Ваш Ответ

3   ответа
0

я не эксперт, но я думаю, что это также зависит от ваших ожиданий в Django и от того, какая часть фреймворка вам нужна. Py2neo очень прагматичный и тонкий, кажется, что Bulbflow создает целый стек отображения и т. Д., А neo4jrestclient концентрируется на Django (что может быть не так)?

не уверен, я бы попробовал.
Должен признаться, я не знаком с Джанго. Разве это не связано с веб-приложениями? Я делаю все локально на 1 машине прямо сейчас. Должен ли я все еще проверить это? npobedina
3

Gremlin (https://github.com/tinkerpop/gremlin/wiki).

С Gremlin вы можете объединить все в один HTTP-запрос, чтобы уменьшить накладные расходы.

Вот как выполнить скрипты Gremlin из 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)

Документы по Bulbs Gremlin API находятся здесь:http://bulbflow.com/docs/api/bulbs/gremlin/

спасибо за рекомендацию. Я уже читал некоторые сравнения Gremlin против Cypher. Так что, я думаю, мне нужно попробовать оба варианта, чтобы решить, какой из них больше подходит для моего варианта использования. Кажется, есть проблема с сайтом BulbFlow. Вы знаете, скоро ли это будет? npobedina
Возникла проблема с DNS, которая обновляется. Сейчас вы можете получить к нему доступ здесь:bulbflow.herokuapp.com
Да, см. Этот ответ для примеров того, как выполнять запросы Cypher в Bulbs:stackoverflow.com/questions/14281251/…
Можно ли выполнять запросы Cypher против neo4j с использованием BulbFlow? документация по этому вопросу кажется неясной. На самом деле лучше (быстрее) придерживаться Gremlin при работе с Bulbflow? npobedina
8

поэтому вас может заинтересовать это, если вы хотите быть веб-приложением.

С точки зрения py2neo (автором которого я являюсь), я стараюсь сосредоточиться на производительности, автоматически используя механизм пакетного выполнения, где это необходимо, а также обеспечивая сильную поддержку Cypher. Я также недавно проделал большую работу по обеспечению хороших вариантов управления уникальностью в индексах - в частности,get_or_create а такжеadd_if_none методы.

Похожие вопросы