NoSQL 데이터베이스 시스템
의 8 종류의 비교
원본: Kristóf 마스 편집기: 민첩 한 번역: 당나라 Yuhua
공유: 더: Kristóf 마스는 소프트웨어 건축가 및 컨설턴트 최근 NoSQL 데이터베이스의 다양 한 종류를 비교 하는 기사를 발표 했다. 문서는 민첩 한 번역-당나라 Yuhua에 의해 컴파일됩니다. 무단 전재 하려는 경우를 참조 하십시오 텍스트 선언 후.
SQL 데이터베이스는 매우 유용한 도구 이지만, 독점에 대 한 것입니다 깨진 솔로 쇼의 15 년 후. 그것은 단지 시간 문제: 관계형 데이터베이스를 사용 하지만 수요에 적응 하지 못하는 수많은 발견을 강요.
하지만 NoSQL 데이터베이스 사이의 차이 두 SQL 데이터베이스의 차이 보다 훨씬 더. 즉, 소프트웨어 아키텍트는 프로젝트의 시작 부분에 적합 한 NoSQL 데이터베이스를 선택 해야 합니다. 이러한 맥락에서 비교 카산드라, Mongodb, CouchDB, Redis, Riak, Membase, neo4j, 및 HBase 만들어집니다:
(1:nosql 참고: 새로운 혁명 데이터베이스 캠페인 NoSQL 비 관계형 데이터 저장소의 사용에 대 한 옹호. 오늘날의 컴퓨터 아키텍처 데이터 스토리지의 확장성의 거 대 한 수준이 필요로 이며 NoSQL 현 상태를 변경 하기 위해 최선을 다하고 있습니다. Google의 BigTable과 아마존의 디나모 NoSQL 데이터베이스를 사용 하는. NoSQL 항목을 참조 하십시오. )
1입니다. CouchDB
언어: Erlang
기능: DB 일관성, 사용 하기 쉬운
라이센스를 사용 하는
: 아파치
프로토콜: Http/나머지
양방향 데이터 복제
연속 또는 임시 처리
충돌 확인 하 고는,
와
프로세스
• 따라서,를 사용 하 여 마스터-마스터 복제 (참고 2 참조)
mvcc-쓰기 작업은 읽기 작업
를 차단 하지 않습니다.
는 파일
를 저장할 수 있습니다 전에 버전
충돌 전용 (신뢰할 수 있는) 디자인
는 데이터
를 압축 하는 데 필요한
보기: 임베디드 매핑/감소
보기 형식: 목록 표시
서버 쪽 문서 유효성 검사
에 대 한
지원
지원 인증
실시간으로 변화에 따라
업데이트
지원 첨부 파일
를 처리
, Couchapps (독립 실행형 JS 응용 프로그램)
필요 jquery 라이브러리
최고의 연습 시나리오: 응용 프로그램 데이터에 대 한 변경, 미리 정의 된 쿼리 및 데이터 통계의 실행. 데이터 버전에 대 한 지원을 제공 하는 응용 프로그램에 적용 됩니다.
예
: CRM, CMS 시스템. 마스터-마스터 복제는 다중 사이트 배포에 대 한 유용 합니다.
(2:master-마스터 복제: 데이터베이스 동기화 하는 메서드를 데이터를 컴퓨터 그룹에는 팀의 모든 구성원에 의해 그룹에서 업데이트할 수 있습니다.) )
2입니다. Redis
언어: C + +
기능: 비정상적으로 빠른
를 실행
라이센스: BSD
프로토콜: 클래스 텔넷
하드 디스크 스토리지 지원,
메모리 데이터베이스
그러나 • 양측 검정 버전 2.0 (버전 2.4는 기능이 지원 되지 않습니다 참고) 후 하드 디스크에 데이터를 교환 하는. )
마스터-슬레이브 복사 (참고 3 참조)
사용 하 여 간단한 데이터 또는 해시 테이블 키 값으로 인덱싱된 하지만 그것은 또한 Zrevrangebyscore 등의 복잡 한 작업을 지원 합니다.
INCR & Co (제한 또는 통계 데이터를 계산에 적합)
지원 세트 (또한 지원 연합/비교/인터)
지원 목록 (또한 지원 대기열, 차단 팝업 작업)
지원 해시 테이블 (도메인이 여러 개인 개체)
지원 종류 세트 (높은 점수 테이블, 적용 범위 쿼리)
Redis 지원 트랜잭션
설정 데이터 만료 데이터 (빠른 버퍼 설계와 유사한)
를 지원
Pub/sub 메시지 메커니즘
를 구현 하는 사용자 수
최고의 연습 시나리오: 응용 프로그램 데이터 변경 내용을 빠르고 데이터베이스 크기 (메모리 용량)에 대 한 충족 될 수 있다.
예
: 실시간 통신, 실시간 데이터 수집, 데이터 분석, 가격 주식.
(3:master-슬레이브 복제: 경우에 한 서버에 동시에 모든 복제 요청을 처리,이 종종 고가용성을 필요로 하는 서버 클러스터에 적용 되는 마스터-슬레이브 복제 라고. )
3입니다. MongoDB
언어: C + +
기능: 계속 SQL (쿼리, 인덱스) 어떤 친절 한 기능.
라이센스: AGPL (작성자: 아파치)
• 계약: 사용자 정의 이진 (Bson)
마스터/슬레이브 복제 (세트 복제 지원 자동 오류 복구)
파티션 메커니즘의
지원 자바 식 쿼리
는
서버 사이드
에서 임의의 javascript 함수를 실행할 수 있습니다.
위치에서 업데이트 지원 COUCHDB
보다 낫다
메모리 데이터 저장소
에서 파일 매핑
성능 우려 기능 요구 사항
그것은 로깅을 설정 하는 것이 좋습니다 (매개 변수-저널)
32 비트 운영 체제, 데이터베이스 크기가 제한 약 2.5 g b
빈 데이터베이스 약 192 Mb
차지
는 GRIDFS 큰 데이터 나 메타 데이터 (진짜 파일 시스템)
를 사용 하 여
최고의 연습 시나리오: 동적 쿼리 지원, 지도/절감 기능, 대규모 데이터베이스, COUCHDB를 사용 하지만 메모리의 전체 되기 때문에 데이터가 너무 자주 변경 하는 응용 프로그램에 대 한 성능 요구 사항 보다 인덱싱에 대 한.
예
: 당신은 MySQL 또는 PostgreSQL을 사용 하려고 하지만 저지 했다 때문에 그들은 당신을 가져온 미리 정의 된 바.
4입니다. Riak
언어: Erlang과 C, 그리고 일부 자바 스크립트
기능: 결함 허용 기능
라이센스를 사용 하는
: 아파치
프로토콜: http/나머지 또는 사용자 지정 이진
• 조정 가능한 배포와 복제 (N, R, W)
사용 하 여 자바 스크립트 또는 Erlang 인증 및 보안 지원의 작업 전후.
를 사용 하 여 자바 스크립트 또는 Erlang 맵/리듀스
에 대 한
연결 및 연결 탐색: 그래픽 데이터베이스
로 사용할 수 있습니다
인덱스: 검색에 대 한 메타 데이터를 입력 (1.0 버전 지원)
큰 데이터 개체 지원 (Luwak)
는 "오픈 소스" 및 "기업"
의 두 가지 버전을 제공합니다.
Riak 검색 서버를 통해 인덱스 전체 텍스트 검색 쿼리 (베타)
masterless 다중 사이트 복제 및 snmp 모니터링
상업 라이센스 지원
최고의 연습 시나리오: 경우 있는 카산드라 (발전기와 유사)와 비슷한 데이터베이스를 사용 하려고 하지만 볼록 및 복잡성을 처리할 수 없습니다. 여러 사이트를 복제 하는 단일 사이트에 대 한 확장성, 가용성 및 오류 처리 하려는 상황에 적용 됩니다.
예
: 판매 데이터 수집, 공장 제어 시스템, 가동 중지 시간에 대 한 엄격한 요구 사항을 쉽게 업데이트 웹 서버로 사용할 수 있습니다.
5입니다. Membase
언어: Erlang과 C
기능:
클러스터 Memcache, 하지만 둘 다 영구 호환 및 지원
라이센스: 아파치 2.0
프로토콜: 분산 캐싱 및 확장
매우 빠른
(200 k + 초), 키를 통해 인덱싱된 데이터 값
하드 디스크
에 유지 될 수 있습니다.