복붙노트

[MONGODB] 산드 대 MongoDB를 [폐쇄]

MONGODB

산드 대 MongoDB를 [폐쇄]

나는 최고의 마이그레이션 옵션이 될 수있는 것을 평가하고있다.

현재, 내가 JSON의 모양에 저장된 내 데이터의 대부분과 더불어, 분산됩니다 MySQL의 (수평 파티션)에입니다. 나는 복잡한 SQL 쿼리 (이미 내 DB를 분할 이후 후 멀리 마이그레이션)가 없습니다.

MongoDB를하고 카산드라 모두 가능성이 옵션이 될 것 같은 지금, 그것은 보인다. 내 상황 :

해결법

  1. ==============================

    1.모든 쿼리에서 읽고 많은, 더 적은 일반 쓰기

    모든 쿼리에서 읽고 많은, 더 적은 일반 쓰기

    모두 데이터베이스에 잘 수행하는 핫 데이터가 메모리에 맞는 설정 위치를 읽습니다. 둘은 데이터 모델이없는 가입 (대신 비정규을 장려)을 강조하고, MongoDB를의 인덱스가 현재보다 유연 있지만 둘 다, 문서 또는 행에 인덱스를 제공합니다.

    카산드라의 스토리지 엔진은 일정 시간에 상관없이 데이터 세트가 성장하는 방법 큰 기록을 제공하지 않습니다. 쓰기는 부분적으로 있기 때문에 B- 트리 기반의 스토리지 엔진으로, MongoDB의 더 많은 문제가 있지만, 그것 때문에이하는 잠금 멀티 단위의 더.

    분석을 위해, MongoDB를이 / 구현 감소 맞춤지도를 제공한다; 카산드라 (/ SQL보다 작업 부하를 줄일 수 많은 생각지도에 더 잘 맞는 것을 하둡 별 분석 언어) 하이브 (하둡지도를 내장 SQL 데이터웨어 하우스 / 감소) 및 돼지에 대한 포함, 기본 하둡 지원을 제공합니다. 카산드라는 스파크의 사용을 지원합니다.

    "대규모"확장 성을 걱정하지

    단일 서버에서 찾고 있다면, MongoDB를 아마 더 잘 맞는 것입니다. 더 확장에 대해 우려 사람들을 위해, 카산드라는 어떤 단일 오류 지점이 아키텍처는 설정하기 쉽고 더 신뢰할 수있을 것 없습니다. (MongoDB를 글로벌 쓰기 잠금도 더 고통스러운 될 경향이있다.) 카산드라는 훨씬 더 여러 데이터 센터에 대한 지원을 포함하는 방법 복제 작업을 제어 할 수 있습니다.

    더 간단한 설치, 유지 보수 및 코드에 대해 우려

    모두 하나의 서버에 대한 합리적인 아웃 - 오브 - 박스 기본값으로 설정하는 사소한 있습니다. 카산드라는 걱정할 특별한 역할 노드가 없기 때문에 다중 서버 구성에서 설정하는 간단하다.

    당신이 현재 JSON의 모양을 사용하는 경우, MongoDB를은 데이터를 저장하는 BSON을 사용하는 주어, 사용 사례에 대한 굉장히 좋은 경기이다. 당신은보다 풍부하고 질의 가능한 데이터가있는 현재의 데이터베이스에서와 이상을 할 수 있습니다. 이 몽고의 가장 중요한 승리가 될 것입니다.

  2. ==============================

    2.(설치 실행, 그것은! 사용)과 속도를 내가 계층 적 데이터 관리 시스템을 구축, (과거 6 개월) 광범위하게 MongoDB를 사용했습니다, 나는 설치의 용이성 모두에 대해 보증 할 수 있습니다. 만큼 당신이주의 깊게 인덱스에 대해 생각하는, 그것은 절대적으로 함께 비명, 속도 현명 할 수 있습니다.

    (설치 실행, 그것은! 사용)과 속도를 내가 계층 적 데이터 관리 시스템을 구축, (과거 6 개월) 광범위하게 MongoDB를 사용했습니다, 나는 설치의 용이성 모두에 대해 보증 할 수 있습니다. 만큼 당신이주의 깊게 인덱스에 대해 생각하는, 그것은 절대적으로 함께 비명, 속도 현명 할 수 있습니다.

    MongoDB의 팀이 패리티에 노력하고 있지만 나는 카산드라이 때문에 트위터와 같은 대규모 프로젝트와의 사용, 더 나은 스케일링 기능을 가진 수집합니다. 나는 세부 사항에 대해 말할 수 있도록 나는, 내가 시험 운영 단계를 넘어 카산드라를 사용하지 않는 한 것을 지적해야한다.

    나를 위해 진짜 나가던 우리가되는 NoSQL 데이터베이스를 평가할 때, 질의했다 - 카산드라는 기본적으로 그냥 거대한 키 / 값 저장소이며, 질의는 (MongoDB를 비교하여 적어도), 그래서 성능을 위해 당신이해야 할 것 조금 가로장 설치 등등입니다 수동 인덱스의 일종으로 데이터를 꽤 많이 중복. MongoDB를, 다른 한편으로 "쿼리 예에 의한"모델을 사용합니다.

    예를 들어, 사용자를 포함하는 컬렉션 (A RDMS 테이블에 동등위한 MongoDB의 말투를) 가지고 말한다. 기본적으로 바이너리 JSON 개체입니다 문서, 등 MongoDB를 저장 기록합니다. 예컨대 :

    {
       FirstName: "John",
       LastName: "Smith",
       Email: "john@smith.com",
       Groups: ["Admin", "User", "SuperUser"]
    }
    

    당신이 관리자 권한이 스미스라는 모든 사용자를 찾기 위해 원하는 경우, 당신은 단지 새 문서 작성 (자바 스크립트를 사용하여 관리 콘솔에서를, 또는 생산에서 원하는 언어를 사용) 것입니다 :

    {
       LastName: "Smith",
       Groups: "Admin"
    }
    

    ... 다음 쿼리를 실행합니다. 이게 다예요. 이, 정규식 필터링 등의 비교를 위해 추가 된 사업자는하지만, 모든 아주 간단하고, 위키 기반의 문서는 꽤 좋다.

  3. ==============================

    3.왜 기존의 데이터베이스와 NoSQL의 데이터 저장소를 선택할? 모두 사용! (초기 학습 곡선 이상)되는 NoSQL 솔루션에 대한 문제는 거래의 부족이다 - 당신이 다음 각 기술의 강점 혜택 - 당신이 읽기에 대한되는 NoSQL 데이터 저장소를 채울 MySQL로 모든 업데이트를 할 수와 MySQL이있다. 이것은 더 복잡성을 추가 않습니다,하지만 당신은 이미 MySQL의 측면이 - 그냥 믹스 등 MongoDB를, 카산드라를 추가합니다.

    왜 기존의 데이터베이스와 NoSQL의 데이터 저장소를 선택할? 모두 사용! (초기 학습 곡선 이상)되는 NoSQL 솔루션에 대한 문제는 거래의 부족이다 - 당신이 다음 각 기술의 강점 혜택 - 당신이 읽기에 대한되는 NoSQL 데이터 저장소를 채울 MySQL로 모든 업데이트를 할 수와 MySQL이있다. 이것은 더 복잡성을 추가 않습니다,하지만 당신은 이미 MySQL의 측면이 - 그냥 믹스 등 MongoDB를, 카산드라를 추가합니다.

    되는 NoSQL 데이터 저장소 나은 같은 다른 사양에 대한 기존의 DB에 비해 일반적으로 규모 방법 - 페이스 북, 트위터, 구글, 대부분의 신생 기업이되는 NoSQL 솔루션을 사용하는 이유가있다. 그것은 새로운 기술에 대한 높은 점점 단지 괴짜 아니다.

  4. ==============================

    4.아마 이상한 사람이 나올거야,하지만 난 당신이 MySQL과 머물 필요가 있다고 생각합니다. 당신은 당신이 해결해야 할 진짜 문제를 설명하지 않은,와 MySQL / InnoDB는 심지어 BLOB / JSON 데이터를위한 우수한 스토리지 백엔드입니다.

    아마 이상한 사람이 나올거야,하지만 난 당신이 MySQL과 머물 필요가 있다고 생각합니다. 당신은 당신이 해결해야 할 진짜 문제를 설명하지 않은,와 MySQL / InnoDB는 심지어 BLOB / JSON 데이터를위한 우수한 스토리지 백엔드입니다.

    실현은 RDBMS의 모든 기능이 사용하지 않는 것이 제공 한 빨리 더되는 NoSQL을 사용하려고하는 웹 엔지니어들 사이에 공통의 트릭이있다. 종종 대부분의 NoSQL의 데이터베이스가 아니라 가난한 데이터 엔진 (MySQL은 스토리지 엔진 부르는)이 있기 때문에이 혼자가 좋은 이유 없습니다.

    당신이 그런 종류의하지 않으면 이제, 다음의 MySQL에없는 당신이 (다른 데이터베이스에 대한 같은, 자동 샤딩, 자동 장애 복구, 다중 마스터 복제, 약한 데이터 일관성 보장에보고하는지 지정하세요 클러스터) 등 높은 쓰기 처리량에 떨어져 지불.

  5. ==============================

    5.나는 카산드라를 사용하지 않은,하지만 난 MongoDB를 사용하고 멋진 생각했다.

    나는 카산드라를 사용하지 않은,하지만 난 MongoDB를 사용하고 멋진 생각했다.

    당신은 단순히 압축을 풉니 다 MongoDB를하고 mongod 데몬을 실행하고 그것이 실행의 ... 그것을 : 당신은 간단한 설치 후 경우,이 그 것이다.

    분명히만을 선발, 그러나 얻을 당신은 쉽게 시작하는 그.

  6. ==============================

    6.어제 MongoDB를에 프리젠 테이션을 보았다. 나는 확실히 그 설정이 그것을 풀고 그것을 발사 한 간단하게, "간단한"이었다 말할 수있다. 끝난.

    어제 MongoDB를에 프리젠 테이션을 보았다. 나는 확실히 그 설정이 그것을 풀고 그것을 발사 한 간단하게, "간단한"이었다 말할 수있다. 끝난.

    나는 당신이 그 지역에서 많은 장벽에 찾아해서는 안 MongoDB를하고 카산드라 모두 거의 모든 일반 리눅스 하드웨어에서 실행할 것이라고 믿는다.

    나는이 경우, 하루의 끝에서, 그것은 내려 올 것이다 당신이 개인적으로 더 편안하고 당신이 선호하는 툴 세트를 가지고있는 것 같아요. 지금까지 MongoDB의에서 발표 한 발표자는 MongoDB를위한 도구 세트가 꽤 빛이라고 표시된 많은이를 werent 것을 MySQL을 사용할 수 뭐죠 도구 유사 (그들은 어떤 정말 말했다). 이 YMMV 그래서 물론 자신의 경험이었다. 나는 MongoDB를이 (두되는 것은 내가 주로 사용하는 Python 및 .NET) 그것에 대한 언어 지원을 많이있을 듯했다 대해 좋아했다 한 가지있다.

    MongoDB를를 사용하는 사이트의 목록은 꽤 인상적이며, 그 트위터 단지 카산드라를 사용하여 전환 알고있다.

  7. from https://stackoverflow.com/questions/2892729/mongodb-vs-cassandra by cc-by-sa and MIT license