2014-10-10 4 views
34

프로젝트에 적합한 그래프 DB를 찾고 있습니다. 나는 Neo4j를 테스트했고 정말로 그것을 좋아했다. 그러나 AGPL 라이센스 문제로 인해서 조금 벗어났습니다 (you can read about it here).경험 OrientDB 대 Neo4j

그런 다음 OrientDB가 실제로 훨씬 빠르다고 주장하는 몇 가지 기사를 발견했습니다. 그러나 그들은 실제로 최신이 아닙니다. 당신은 그들 herehere를 찾습니다. 그리고 Apache 2에서 라이센스를 얻었습니다.

그래서 저는 여러분의 의견으로 stackoverflow의 위대한 사람들에게 물어보고 싶습니다.

  • 확장 성이 중요하고 OrientDB은 (here)
  • 라이센스는
  • 내가 정점/가장자리의 복잡한 모델을 가지고
  • 최대 3 레벨 깊은 관계를 검색해야 열려 있어야하는 더 나은 주장
  • 이벤트를 OrientDB 문서 그래프의 혼합물 혜택을 의견을

감사 것 같다!

+4

누군가 설명 할 수 있습니다, 왜 이것이 downvoted되고 사람들이 질문을 닫습니다 투표? 심각한 질문, 내가 뭘 잘못 했니? –

+2

일반적으로 SO 형식은 질문하고 답변을 얻는 것입니다. 사람들은 종종 "가장 좋은 X를 추천 할 수 있습니까?"또는 "어느 것이 더 좋습니까, X 또는 Y입니까?"와 같이 매우 독창적 인 답변을 끌어 오는 게시물을 다운 화합니다. - 질문에 특정 데이터 세트 나 쿼리가 연결되어 있지 않습니다. 어떤 기능이 더 나은지 묻기 위해 질문을 다시 작성한 경우 문제에 대해 * "의견을 말하지 않고 질문에 대답하는 것이 더 쉬울 것입니다."라고 말합니다. – FrobberOfBits

+0

Neo4j를 사용해야합니다. 먼저 시도해 보았습니다. OrientDB를 사용하지만 이른바 SQL에 많은 버그가 있지만 Neo4j가 모든 문제를 해결했습니다. –

답변

26

참고 : OrientDB 팀에 있습니다. 제 의견은 확실히 기울어졌습니다. 나는 또한 단호하게 캐주얼 한 분위기로 대답하고 있습니다. 당신의 점에

:

1) 클러스터 배포의 주제는, 현재 심지어 비교 아니다. Neo4j는 마스터 - 슬레이브 복제이며 일반적으로 한 자리 노드 배포에만 적합하며 전체 그래프는 하나의 시스템에 속해야한다고 명시합니다. http://www.infoq.com/interviews/ian-robinson-neo4j?utm_source=infoq&utm_medium=videos_homepage&utm_campaign=videos_row1

OrientDB는 다중 노드 복제 (모든 노드가 읽기 및 쓰기를 수용 할 수 있음)를 수행 할 수있는 완전한 기능을 가지고 있으며 데이터를 분할하고 클러스터를 사용하여 지능적으로 데이터를 분산하며 분산 된 쿼리와 트랜잭션을 자동화 할 수 있습니다. . 우리의 CEO는 최근 헤이즐 캐스 (hazelcast)에 대한 훌륭한 웹 세미나를 통해이 분야에 대한 설정을 보여주었습니다 : http://hazelcast.com/resources/orientdb-hazelcast-memory-distributed-graph-database/

2) Apache 2.0은 커뮤니티 라이센스이며 매우 자유로운 내용입니다. OrientDB 커뮤니티 에디션을 무료로 임베드 할 수도 있습니다. (A) GPL은 폐쇄 된 소스 코드가 오염 될 것이라고 걱정합니다. 이것은 위협 일 수도 위협이 아닐 수도 있지만 때로는 결정하기가 어렵습니다. 당사의 커뮤니티 라이센스는 완전 분산, 다중 마스터 복제 및 샤딩을 포함하여 매우 기능이 풍부합니다.

3) 트래버스 관계는 그래프 데이터베이스의 일종입니다. 그래서 Neo4j 나 OrientDB 중 어느 것이 당신을 여기에 잘 맞출 것입니까? 2000 레벨의 깊이로 가면 여전히 성능이 좋을 것입니다.

4) 문서 그래프 기능은 훌륭하지만 내가 말할 수 있음을 알았습니다. 우리가 구축 한 제품은 RDBMS 또는 다른 데이터 저장소의 보충 자료로 사용되는 보조 데이터베이스가 아니라 데이터베이스에서 전체가되도록 설계된 프로덕션 급 시스템입니다.

나는 여기서 강해지고 있습니다. 하지만 좋은 이유가 있습니다. 지난 3 주 동안 세계를 선도하는 기술 회사의 전체 개발자 팀이 Neo4j에 대해 OrientDB를 테스트했습니다. 매우 까다로운 유스 케이스의 경우, 우리는 다양한 이유로 더 나은 선택이었습니다. 돈은 문제가 아니었고, 우리는 우리 기술로 사업을 벌었습니다.

가치있는 것을 위해 가져 가라. 나는 내 편견을 앞에두고 말했다. 내 경험에 비추어 볼 때 OrientDB로 작업하면 되돌아 보는 일은 없을 것입니다. 도움이 필요하면 알려주세요!

+1

Hazelcast 링크는 훌륭합니다. 우리는 직장에서 hazelcast로 마이그레이션하고 있으며 OrientDB를 채택하도록 노력하고 있습니다. – CodeShaman

+2

@Greg McCarvell OrientDB와 거의 유일한 것은 질의를위한 (확장 된) SQL입니다. 그것은 단지 RDBMS에 적합하지 않고, 심지어 DBMS를 위해 설계된 것과는 아주 다른 DBMS를 위해 사용하는 것이 약간 불편합니다. query lang을 사용하면 OrientDB를 친숙하지 않게 만들 수 있습니다. SQL에 익숙하기 때문에 학습 곡선이 줄어 듭니다. 그래프를 생각하는 것이 테이블과 조인을 생각하는 것과 다르고 각각의 데이터를 모델링 할 때도 마찬가지이기 때문에 쿼리가 그렇게되어야한다고 주장하는 것은 매우 직관적입니다. 오늘날에는 OrientDB를 쿼리하는 것이 직관적이지 않습니다. –

+1

mr @greg 여기 lieng 문제는 PHP와 많은 다른 사람들처럼 웹 개발을 위해 주로 사용되는 언어에 대한 안정적인 드라이버와 같은 것이 아무것도 없다는 것입니다. –