MongoDB + Neo4J vs OrientDB vs ArangoDB
저는 현재 MMO 브라우저 게임의 디자인 단계에 있으며, 게임에는 실시간 위치(각 셀의 토양 데이터)에 대한 타일 맵과 일반적인 월드 맵이 포함될 것입니다.제가 선호하는 게임 엔진은 지속적인 데이터 세계를 위해 MongoDB를 사용합니다.
저는 또한 기본적으로 데이크스트라 모듈인 배송 시뮬레이션을 구현할 것입니다. 그래프 데이터베이스를 사용하기로 결정했는데, Neo4j가 인기가 많아서 발견되었습니다.
저는 MongoDB + Neo4J 설정에 만족했지만, 분명히 MongoDB와 Neo4J(양쪽 세계의 최고)처럼 작동하는 OrientDB에 주목했습니다. MongoDB와 Neo4J용 VS 페이지도 있습니다.
요점은 MongoDB가 데이터를 잃어버리는 공포 이야기를 들었는데(아직도 데이터를 잃어버리는 것은 확실하지 않지만), 저는 그런 사치를 누릴 수 없습니다.또한 Neo4J의 경우 연간 12,000유로의 "스타트업 프렌들리" 비용에 열광하지는 않지만 수백만 개의 정점에 달하는 DB는 없을 것입니다.하나의 데이터베이스 솔루션을 사용할 수 있는 몇 가지 기회가 있을 수 있기 때문에 OrientDB는 실행 가능한 옵션으로 보입니다.
그럴 경우 논리적인 움직임이 오리엔트DB로 뛰어드는 것일 수도 있지만 커뮤니티가 작고 리뷰도 많이 찾지 못했는데, MongoDB와 Neo4J는 널리 사용되는 도구인데 오리엔트DB가 모험인지 걱정이 됩니다.
제 첫 번째 질문은 이 데이터베이스에 대한 경험/의견이 있는지 여부입니다.
그리고 두 번째 질문은 어떤 그래프 데이터베이스가 운송 시뮬레이션에 더 적합한지에 대한 것입니다.Used Database는 임의의 정점에서 임의의 정점까지의 가장 저렴한 경로를 계산하고 이를 통과해야 합니다(고전적 데이크스트라).그러나 "B국은 A국에 대한 금수 조치가 있어 A국에서 출발한 물품이 B국을 통과할 수 없고 XYZ 지역에 홍수가 발생하여 육상 운송이 불가능하다"는 등의 상황에 따라 가중치를 변경해야 합니다.또한 해당 데이터베이스는 결과를 캐시해야 합니다.저는 1000개 이하의 꼭짓점을 기대하지만 많은 모서리를 기대합니다.
미리 감사드리고 질문이 조금 애매하면 미리 사과드립니다.
PS: 타이틀에 아랑고DB를 추가했지만, 볼 기회가 별로 없었습니다.
2016년 4월 18일자로 편집 완료: 질문에 대한 응답과 개발 전략을 평가한 후, 저는 ArrangoDB를 사용하기로 결정했습니다. 왜냐하면 그들의 로드맵은 분명히 반쯤 구워진 수많은 과장된 기능을 추가하려고 하지 않기 때문입니다.
고지 사항:저는 OrientDB의 저자이자 소유자입니다.
개발자로서, 일반적으로 저는 비용을 숨기고 잠시 동안 기술을 가지고 놀게 해주는 회사를 좋아하지 않습니다. 그리고 당신이 기술에 빠듯해지면, 돈을 요구하기 시작하세요.실제로 비표준 언어 또는 API를 사용하는 애플리케이션을 개발하는 데 몇 달을 투자하면 막대한 비용을 들여 애플리케이션을 마이그레이션하거나 비용을 지불해야 합니다.
OrientDB는 상업적인 용도로도 무료입니다.또한 OrientDB는 SQL(확장자 포함)과 같은 표준을 지원하며 주요 Java API는 그래프 데이터베이스의 "JDBC" 표준인 TinkerPop Blueprints입니다.또한 OrientDB는 Gremlin도 지원합니다.
OrientDB 프로젝트는 새로운 기여자와 사용자로 인해 매일 성장하고 있습니다.커뮤니티 그룹(지원을 요청할 수 있는 무료 채널)은 GraphDB 시장에서 가장 활발한 커뮤니티입니다.
GraphDB를 사용해야 할지 의문이 든다면, 무엇이 당신의 필요에 더 가까운지를 알고 가능한 한 표준을 사용하는 것이 좋습니다.이러한 방식으로 최종적인 스위치는 영향을 적게 미칩니다.
사용 사례가 ArrangoDB의 용도와 정확히 일치하는 것처럼 들립니다. 동일한 애플리케이션에 서로 다른 데이터 모델(문서 및 그래프)이 필요한 것처럼 보이고 단일 쿼리에서 이를 혼합하고 싶을 수도 있습니다.여기서 아랑고DB로서의 다중 모델 데이터베이스가 빛을 발합니다.
지금까지 MongoDB가 당신에게 좋은 서비스를 제공했다면, 당신은 즉시 아랑고DB와 편안함을 느낄 것입니다. 왜냐하면 그것은 모양과 느낌이 매우 비슷하기 때문입니다.또한 정점을 하나 또는 여러 컬렉션에 저장하고 에지를 하나 이상의 "엣지 컬렉션"에 저장하여 그래프를 모델링할 수 있습니다.즉, 개별 모서리는 단순히 자체 문서이며 임의의 JSON 데이터를 보유할 수 있습니다.그런 다음 데이터베이스는 필요에 따라 JavaScript로 사용자 정의할 수 있는 트래버설을 제공합니다.
예를 들어 쿼리의 변형을 위해 이러한 엠바고에 대한 속성을 정점에 추가하고 쿼리/횡단을 프로그래밍하여 이를 고려할 수 있습니다.
ArangoDB 데이터베이스는 Apache 2 라이센스로 라이센스가 부여되며 커뮤니티 및 전문 지원을 즉시 이용할 수 있습니다.
더 구체적인 질문이 있다면 주저하지 말고 구글 그룹에서 물어보세요.
https://groups.google.com/forum/ #!https/arangodb
또는 연락처
arangodb.org 의 해커들
직접적으로.
Neo4j의 가격은 실제로 매우 유연하므로 웹사이트의 가격에 현혹되지 마십시오.커뮤니티 에디션이나 개인 에디션으로 오랫동안 시작할 수도 있습니다.
Neo4j 커뮤니티는 매우 적극적이고 도움이 되며 질문에 대한 지원과 도움을 신속하게 제공합니다.그것이 성능과 편리함 외에 가장 큰 장점이라고 생각합니다.일반적으로 그래프 모형 사용
사용 사례:
Neo4j는 이 경로 계산 시나리오에 정확히 사용되며, 전국에서 초당 최대 4000개의 패키지를 라우팅하는 세계 최대 물류 회사 중 하나입니다.
그리고 게임 경제 시뮬레이션을 위해 여기 GameSys와 같은 다른 게임 엔진에 사용되고 라우팅을 위해 다른 것에 사용됩니다(지구 좌표가 아니라 Neo4j-Spatial을 사용하는 게임 세계 좌표).
왜 그렇게 노드가 적은지 궁금합니다.그것들이 교통 포탈 같은 것들입니까?저는 당신이 언급한 기준과 같이 경로에 대한 세부 사항과 역학을 어디에 저장하는지 궁금합니다. 그것들은 게임 엔진의 메모리 상태에서 외부에서 오고 있습니까?
모델과 구체적인 사용 사례에 대한 자세한 내용을 공유해야 할 것입니다.
그리고 Neo4j의 설립자 중 한 명인 Emil과 저는 MUDs(Multi User Dungeon)의 오래된 플레이어이기 때문에 확실히 우리 마음에 가까운 사용 사례라는 것을 아는 것이 도움이 될 수 있습니다 :)
언급URL : https://stackoverflow.com/questions/26704134/mongodb-neo4j-vs-orientdb-vs-arangodb
'programing' 카테고리의 다른 글
그래프비즈:.dot에서 그래프로 이동하는 방법은? (0) | 2023.05.27 |
---|---|
Eclipse 디버거를 다시 시작하는 방법은 무엇입니까? (0) | 2023.05.27 |
콘솔에 대한 vbscript 출력 (0) | 2023.05.22 |
정기 작업 실행 (0) | 2023.05.22 |
Express.js - app.listen vs server.listen (0) | 2023.05.22 |