2013-09-21 2 views
2

이제 데이터베이스를 디자인하고 일부 동적 속성 내에 일부 테이블이 있습니다. EAV 디자인 모델로 구현하기 위해 MySQL과 같은 전통적인 RDBMS를 선택할 수 있습니다. 하지만 지금은 새로운 것을 시도하고 싶습니다. NoSQL 데이터베이스가 동적 속성 문제를 쉽게 해결할 수 있다고 들었습니다. MongoDB와 Cassandra 중 하나를 선택하고 싶습니다.MongoDB와 Cassandra 사이에서 데이터베이스를 선택하는 방법

이 데이터베이스는 약 20 만 항목이있을 것입니다 및 데이터베이스가 하나의 서버에 저장 될 것입니다 :

그리고 여기에 내가 설계 할 데이터베이스에 대한 몇 가지 상황입니다.

사용자가이 데이터베이스를 사용하려는 경우 주요 절차는 다음과 같습니다. 사용자는 먼저 테이블 A의 외부 키 B를 방문한 다음 테이블 B를 방문하여 테이블 C의 외래 키를 가져옵니다. 표 C 고정 된 속성과 동적 속성이 많이 있습니다. 그런 다음 사용자는 테이블 C에서 튜플을 가져 와서 일부 값을 읽은 다음이 튜플의 일부 값을 수정하고이 튜플의 동적 값을 추가 할 수 있습니다.

이 튜플의 거의 모든 것을 Excel 스프레드 시트에서 Java 데이터베이스로 가져옵니다. 그렇다면 어느 것이 더 나은 자바를 지원합니까?

이러한 데이터를 가져온 후에 더 이상 삽입 또는 삭제 작업이 수행되지 않습니다. 외부 사용자를위한 거의 모든 작업은 읽고 업데이트됩니다. 그래서 어떤 데이터베이스가이 시나리오에 더 좋습니다.

이 작은 프로젝트에서는 NoSQL 데이터베이스를 사용할 필요가 없지만 최근에 시도해보고 싶습니다. 답장을 보내 주셔서 감사 드리며 다른 옵션이 있다면 큰 도움이됩니다.

+0

그것은 "더 나은 지원을"좋은 대답을 정말 어렵다 매우 주관적이다. 해결해야 할 실제 문제는 스토리지 요구 사항에 가장 적합한 DB입니다. – WiredPrairie

답변

2

제공하신 정보에 대해 확실한 답변이 없습니다.

테이블, 조인, 외래 키의 관점에서 쿼리 패턴을 설명했습니다. 처음에는 표 사이를 참조하는 대신 데이터 임베딩을 수행 할 수 있는지 생각해보십시오. 우리의 프로젝트 초기 단계에 대한

http://docs.mongodb.org/manual/core/data-modeling/

우리는 MongoDB의를 선택한 우리는 지금 카산드라에 몇 가지 움직이고에도 불구하고, 난 정말이 선택을에 대해 후회하지 않는다.

몽고는 정말 간단하고 유연합니다. 개발, 스키마 변경, 쿼리 적용이 매우 쉽습니다. 용서를 많이합니다. NoSQL을 처음 접하는 사람들에게는 아주 귀중한 것입니다.

카산드라는 훨씬 발전했습니다. 스키마 디자인 및 쿼리 패턴에 대해 더 많은 생각을해야합니다. 수평 확장 성은 NoSQL 시장에서 최고 중 하나입니다. 카산드라는 쓰기 작업에서도 큰 이점이 있습니다.

많은 Mongodb 사용자가 2 명의 Cassandra를 방문합니다. 그러나 실제 성능 및 확장 성의 이유가있는 경우에만

하지만 단일 시스템 설치가 필요하므로 mongodb로 충분할 수 있습니다. 그것은 데이터가 RAM에 적합하면서 아주 좋은 읽기 성능을 가지고 있습니다.

두 데이터베이스 모두 잘 지원되는 드라이버가 있습니다.이 새로운 Datastax 드라이버를 참조 가치가 카산드라를 들어

https://github.com/mongodb/mongo-java-driver

https://github.com/datastax/java-driver

나는이 작은 프로젝트의 형 NoSQL 데이터베이스를 사용하지 않아도 알고,하지만 난 정말 원하는 최근에 한 번 시도해보십시오.

내가 MongoDB를 권 해드립니다은 ...

+0

감사합니다. 이것이 내가 원하는거야. 이제는 MongoDB를 사용하여 데이터베이스를 구축 할 수 있다고 생각합니다. 주 목적은이 모든 데이터를 가져 와서 일부 튜플을 업데이트하는 것입니다. 데이터베이스 구조가 그리 복잡하지 않기 때문에 우리는 매우 높은 성능과 확장 성을 정말로 필요로한다면 Cassandra로 이동할 수 있습니다. – Jane

관련 문제