저는 CouchDB와 같은 문서 지향 데이터 저장소에 관해 많은 이야기를 들었습니다. BigTable을 Cassandra와 같은 매장과 같이 사용하는 것을 이해합니다. this question을 읽은 후, 필자는 문서 보관소를 사용하는 것이 어떤 조건이 될지 궁금해하고있었습니다.문서 저장소의 가장 좋은 용도는 무엇입니까?
답변
Bigtable 및 Cassandra와 같은 열 패밀리 저장소는 매우 제한된 쿼리 기능을 제공합니다. 응용 프로그램은 더 복잡한 데이터 모델을 쿼리하기 위해 인덱스를 유지 관리합니다.
문서 데이터베이스를 사용하면 키뿐만 아니라 내용을 쿼리 할 수 있습니다. 또한 색인을 관리하여 응용 프로그램의 복잡성을 줄입니다.
Domain-driven design은 집합과 값 객체의 사용을 전 송합니다. As Ayende points out (복잡한) 집계는 여러 테이블이나 열 패밀리에서 정규화하지 않고 단일 문서로 저장하는 매우 자연스러운 후보입니다. 이렇게하면 지속성 계층의 복잡성이 줄어 듭니다. 또한 모든 데이터가 단일 문서에 포함되어 있기 때문에 관련 데이터가 여러 노드에 분산되어있는 가능성이 적습니다.
응용 프로그램에서 다형성 객체를 저장해야하는 경우 문서 데이터베이스도 좋은 후보입니다. 물론 이것은 Cassandra에도 저장 될 수 있지만 질의 기능은 많지 않습니다. 적어도 상자 밖에서는 안됩니다.
문서 데이터베이스를 고급스러운 스포츠카라고 생각하십시오. A부터 B까지는 전문 운전자가 필요하지 않습니다 (복잡한 응용 프로그램 읽기). 에어컨 및 편안한 좌석과 같은 기능을 갖추고 있으며 허용되는 시간에 높은 확장 성을 자랑합니다. 그러나 높은 확장 성 트랙에서 무릎 기록을 설정하려면 에 에어컨과 같은 기능이없는 전문 드라이버와 최적화 된 자동차 (예 : Cassandra)가 필요합니다.
이 파워 윈도우처럼 같이 가열 할 수 있다는 것입니다
좌석 또는 걷어차는 입체 음향.
물론 자연의 부끄러운 부딪 치기 – JasonSmith
안녕하세요. 멋진 설명입니다! 내가 추가 할 수있는 유일한 것은 CouchDB가 페라리가 아니라 데이터베이스의 혼다 어코드를 목표로한다는 것입니다. 그러나 나는 그들이 서로 다른 은유라고 생각합니다. 단지 우연히 만 관련이 있습니다. – JasonSmith