NoSQL 데이터베이스 시스템의 8 종류의 비교

출처: 인터넷
작성자: 사용자
키워드: 복제 자바 라이선스

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)

마스터/슬레이브 복제 (지원 자동 오류 복구, 복제 세트를 사용 하 여)

Built-in 분할 장치

자바 식 쿼리에 대 한 지원

서버 쪽에서 임의의 JavaScript 함수를 실행할 수 있습니다.

위치에서 업데이트 지원 couchdb 보다 낫다

데이터 저장에서 파일 매핑 메모리

기능 요구 사항에 대 한 성능 우려

로깅을 설정 하는 것이 좋습니다 (매개 변수-저널)

데이터베이스 크기는 32 비트 운영 체제에서 약 2.5 g b로 제한

빈 데이터베이스 192 메가바이트 약 차지

Gridfs 큰 데이터 나 메타 데이터 (진짜 파일 시스템)를 사용 하 여

최상의 연습 시나리오: 동적 쿼리 지원에 대 한 인덱싱 맵/리듀스 기능, 성능 보다 큰 데이터베이스, COUCHDB를 사용 하지만 메모리의 전체 데이터를 너무 자주 변경 되므로 응용 프로그램에 대 한 요구 사항.

예를 들어 당신은 MySQL 또는 PostgreSQL을 사용 하도록 것 이라고 하지만 미리 정의 된 그들의 자신의 바 때문에 낙 심 수 있습니다.

4입니다. Riak

사용 언어: Erlang과 C, 그리고 일부 자바 스크립트

특징: 결함 허용 능력

사용 라이센스: 아파치

프로토콜: http/나머지 또는 사용자 지정 이진

조정 가능한 배포 및 복제 (N, R, W)

전이나 작업 후 인증 및 보안 지원 JavaScript 나 Erlang을 사용 합니다.

Map/reduce에 대 한 JavaScript 나 Erlang을 사용 하 여

연결 및 연결 탐색: 그래픽 데이터베이스로 사용할 수 있습니다

인덱스: 검색에 대 한 메타 데이터를 입력 (1.0 버전 지원)

큰 데이터 개체 지원 (Luwak)

"오픈 소스" 및 "기업"의 두 가지 버전을 제공 합니다.

전체 텍스트 검색, 색인, Riak 검색 서버 (베타)를 통해 쿼리

Masterless 다중 사이트 복제 및 상업용 라이센스에 대 한 SNMP 모니터링 지원

최상의 연습 시나리오: 경우 있는 카산드라 (발전기와 유사)와 비슷한 데이터베이스를 사용 하려고 하지만 볼록 및 복잡성을 처리할 수 없습니다. 여러 사이트를 복제 하는 단일 사이트에 대 한 확장성, 가용성 및 오류 처리 하려는 상황에 적용 됩니다.

예: 판매 데이터 수집, 공장 제어 시스템, 가동 중지 시간에 대 한 엄격한 요구 사항을 쉽게 업데이트 웹 서버로 사용할 수 있습니다.

5입니다. Membase

사용 언어: Erlang과 C

특징: Memcache, 하지만 둘 다 영구 호환 및 지원 클러스터

사용 라이센스: 아파치 2.0

프로토콜: 분산 캐싱 및 확장

매우 빠른 (200 k + 초), 키 값을 통해 데이터를 색인

하드 디스크를 영구 저장소

모든 노드는 고유 (마스터-마스터 복제)

메모리에 유사한 분산 캐싱을 지 원하는 캐시 셀

데이터를 쓸 때 중복 데이터를 제거 하 여 IO를 감소

매우 좋은 클러스터 관리 웹 인터페이스를 제공 합니다.

소프트 소프트웨어를 업데이트할 때 데이터베이스 서비스를 중지 하는 데 필요한

연결 에이전트를 지 원하는 연결 풀링 및 멀티플렉싱

낮은 대기 시간 데이터 액세스, 높은 동시성 지원 및 고가용성을 필요로 하는 응용 프로그램에 대 한 최상의 시나리오

예: 광고 대상 응용 프로그램과 같은 낮은 대기 시간 데이터 액세스, 온라인 게임 (Zynga, 예) 등 높은 동시 웹 응용 프로그램

6입니다. neo4j

언어: 자바

기능: 그래프 데이터베이스 관계에 따라

사용 하 여 라이센스: GPL, 일부 기능을 사용 하 여 agpl/사업 등록증

프로토콜: Http/나머지 (또는에서 포함 된 Java)

독립적으로 사용할 수 있습니다 또는 Java 응용 프로그램에 포함 된

노드 및 가장자리는 그래프의 메타 데이터를 가질 수 있습니다.

좋은 자기-웹 관리 기능

경로 검색을 지원 하기 위해 여러 알고리즘을 사용 하 여

인덱스 키 값 및 관계를 사용 하 여

읽기 작업에 대 한 최적화

(Java API)와 거래를 지원

괴물 그래픽을 사용 하 여 언어를 통과 하

그루비 스크립트에 대 한 지원

온라인 백업, 고급 모니터링 및 agpl/비즈니스 라이센스를 사용 하 여 높은 신뢰성 지원에 대 한 지원

최고의 응용 프로그램 시나리오: 그래픽 형식 데이터에 적합. 이것은 neo4j 및 다른 NoSQL 데이터베이스의 가장 중요 한 차이

예: 사회 관계, 대 중 교통 네트워크, 지도 및 네트워크 확장

7입니다. 카산드라

언어: 자바

특징: 가장 큰 테이블 및 발전기에 대 한 지원

사용 라이센스: 아파치

계약: 사용자 정의 이진 (경제적)

조정 가능한 배포 및 복제 (N, R, W)

키 값의 범위와 함께 열 쿼리 지원

큰 테이블에 유사한 기능: 열, 특성에 대 한 열 컬렉션

쓰기 작업은 읽기 보다 빠른

만큼 가능한 맵/리듀스 아파치 분산된 플랫폼에 따라

나는 그것은 편견 카산드라, 부분적으로 때문에 그것의 자신의 비 대 하 고 복잡 한 자연, 그리고 자바 문제 (구성, 예외 등) 때문에 인정

최고의 시나리오: 자바 (아무도 아파치 소프트웨어 선택에 대 한 발생)에 각 시스템 빌드를 작성 해야 하는 경우 쓰기-이상-읽기 작업 (로깅)를 사용 하는 경우

예: 은행, 금융 (비록 금융 거래, 하지만이 산업에서는 보다 더 많은 데이터베이스에 대 한 필요 하지 않습니다) 그래서 자연 기능은 실시간 데이터 분석 보다 읽기, 쓰기

8입니다. HBase

(Ghshephard)와

언어: 자바

기능: 지원 수십억 행 x 열의 수백만

사용 라이센스: 아파치

계약: Http/휴식 (php/73 지원 "rel =" nofollow "스타일 =" 여백-가기: 0px; 여백-오른쪽: 0px; 여백-하단: 0px; 여백-왼쪽: 0px; 여백-가기: 0px; 여백-오른쪽: 0px; 여백-하단: 0px; 여백-왼쪽: 0px; 색상: rgb (68, 102, 187); 개요-폭: 0px; 개요-스타일: 초기; 개요-색상: 초기; "> 중고품, 참고 4 참조)

BigTable 후 모델링

맵/리듀스 분산 아키텍처를 사용 하 여

실시간 쿼리 최적화

고성능 중고품 게이트웨이

사전 검색 및 서버 쪽 필터링 쿼리 작업 계약

XML, protobuf, 및 이진 http 지원

계단식, 하이브, 및 돼지 소스 및 싱크 모듈

Shell Jruby (JIRB)에 기반

구성 변경 및 사소한 업그레이드가 롤백됩니다.

단일 지점 실패

MySQL에 비해 랜덤 액세스 성능

최상의 연습 시나리오: 기본 설정 bigtable에 적합: 대용량 데이터에 대 한 무작위, 실시간 액세스를 필요 합니다.

예: 페이 스 북 메시지 데이터베이스 (더 일반적인 사용 사례 출시 예정)

4:thrift 다른 언어, 페이스 북과 오픈 소스 개발의 다양 한 정 및 생성 서비스를 제공 하는 인터페이스 정의 언어 이다.

물론, 모든 시스템 위에 나열 된 이러한 기능 보다 더 있다. 여기 난 그냥 내 자신의 의견에 생각 하는 중요 한 기능 중 일부를 나열 합니다. 동시에 과학 기술 진도 이므로 빠른, 콘텐츠를 지속적으로 업데이트 해야 합니다. 나는 내가 할 수 있는 최대한이 목록을 업데이 트 됩니다.

관련 문서

연락처

이 페이지의 내용은 인터넷에서 가져온 것이므로 Alibaba Cloud의 공식 의견이 아닙니다.이 페이지에서 언급 된 제품 및 서비스는 Alibaba Cloud와는 관련이 없으므로이 페이지의 내용이 골칫거리 인 경우 저희에게 알려주십시오. 우리는 5 일 근무일 이내에 이메일을 처리 할 것입니다.

커뮤니티에서 표절 사례를 발견한 경우 info-contact@alibabacloud.com 으로 관련 증거를 첨부하여 이메일을 보내주시기 바랍니다. 당사 직원이 영업일 기준 5일 내에 연락 드리도록 하겠습니다.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.