2012-05-22 6 views
10

저는 현재 neo4j에 대한 임베디드 python 바인딩을 사용하고 있습니다. 내 그래프가 매우 작습니다 (스파 스 및 최대 개까지 100 노드) 이후 현재 어떤 문제가 없습니다. 내가 개발하고있는 알고리즘은 그래프에서 상당히 많은 트래버스를 포함합니다. 특히 그래프 전반의 DFS뿐만 아니라 다른 서브 그래프에서도 마찬가지입니다. 미래에는 큰 그래프 (아마도 희소하고 수백만 개의 노드가있는)에서 알고리즘을 실행하려고합니다. 내가 너무 멀리 변화에 오전까지Python에서 Neo4j를 사용하는 적절한 방법 선택

파이썬/neo4j 바인딩 here, here의 성능에 관련된 다른 스레드를 읽으면서, 나는 이미 (bulbflow, py2neo, neo4jrestclient 같은) 파이썬에 대한 몇 가지 REST API 클라이언트로 전환할지 여부를 궁금해 모든 코드.

불행히도, 나는 다른 접근법을 비교하기위한 포괄적 인 정보원을 찾지 못했습니다.

누구든지이 문제에 대한 더 많은 통찰력을 제공 할 수 있습니까? 옵션 중 하나를 선택할 때 어떤 기준을 고려해야합니까?

답변

0

정말 잘 모르겠지만 전문가는 아니지만 장고에 대한 기대치와 필요한 프레임 워크의 양에 달려 있다고 생각합니다. Py2neo는 매우 실용적이고 슬림하고, Bulbflow는 전체 매핑 스택 등을 구축하는 것으로 보이고 neo4jrestclient는 Django에 집중하고 있습니다 (잘못된 것일 수 있습니다)?

+0

나는 장고에 익숙하지 않다는 것을 고백해야한다. 웹 애플리케이션과 관련된 것이 아닌가? 나는 지금 당장 1 대의 기계에서 모든 것을하고있다. 내가 계속 확인해야 할까? – npobedina

+0

잘 모르겠습니다. 시도해 보겠습니다. –

8

장고는 MVC 웹 프레임 워크이므로 웹 응용 프로그램을 만드는 데 관심이 있습니다.

필자는 py2neo의 관점에서, 배치 실행 메커니즘을 적절한 위치에서 자동으로 사용하고 강력한 Cypher 지원을 제공하여 성능에 주력하고자합니다. 최근 색인에서 고유성 관리를위한 좋은 옵션, 특히 get_or_createadd_if_none 메서드를 제공하기 위해 많은 노력을 기울였습니다.

3

파이썬에서 알고리즘을 실행하는 가장 쉬운 방법은 그렘린을 사용하는 것입니다 (https://github.com/tinkerpop/gremlin/wiki).

당신이 왕복 오버 헤드를 줄이기 위해 하나 개의 HTTP 요청으로 모든 번들 수 그렘린으로

.

여기 그렘린 스크립트를 실행하는 방법 전구 (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) 

전구 그렘린의 API 문서는 여기에 있습니다 : http://bulbflow.com/docs/api/bulbs/gremlin/

+1

추천 해 주셔서 감사합니다. Gremlin 대 Cypher의 비교를 이미 읽었습니다. 그래서, 어느 것이 더 유스 케이스에서 적절한 지 결정하기 위해 두 가지를 모두 시험해보아야합니다. bulbflow 웹 사이트에 문제가있는 것 같습니다. 곧 있을지 알고 있니? – npobedina

+1

DNS 문제가 업데이트 중입니다. 지금 여기에서 액세스 할 수 있습니다 : http://bulbflow.herokuapp.com – espeed

+0

bulbflow를 사용하여 neo4j에 대해 Cypher 쿼리를 실행할 수 있습니까? 이 문제에 대한 문서는 모호한 것으로 보입니다. 실제로 벌브 플로우로 작업 할 때 그렘린에 충실하는 것이 더 빠릅니까? – npobedina

관련 문제