데이터베이스를 쉽게 선택할 수 있도록 너머 전통: NoSQL 데이터베이스 경쟁

출처: 인터넷
작성자: 사용자

그것은 쉽게 선택할 데이터베이스를 두 개 또는 3 년 전 수 했다. 자금이 회사에 Oracle 데이터베이스, 선택한 Microsoft 제품을 사용 하는 회사는 일반적으로 SQL Server, 예산 없는 기업 MySQL을 선택할 것입니다. 그러나 지금,, 상황이 많이 달라 집니다.

최근 2 ~ 3 년에서 많은 회사 그들의 자신의 오픈-소스 프로젝트 정보를 저장할 시작 했습니다. 많은 경우에,이 프로젝트는 전통적인 관계형 데이터베이스 지침 폐기. 많은 사람들이 NoSQL, "뿐만 아니라 SQL."의 약어로 이러한 항목을 참조 일부 NoSQL 데이터베이스는 간단, 일부 NoSQL 데이터베이스는 매우 복잡 합니다. 그러나, 그들의 목표는 관계형 데이터베이스를 대체 하 고 더 높은 시스템 성능의 얻을 것입니다.

NoSQL의 지지자는, 전통 건축을 포기 하 여 더 확장 가능한 응용 프로그램 구축에 성공 했다. 하지만 일부 보수적인 데이터베이스 관리자는 무시. 그들은 많은 SQL에 의해 해결 되었습니다 문제 NoSQL에 걸림돌이 될 것입니다 믿습니다. 왜냐하면 그들은 다른 프로젝트의 요구는 이제 새로운 목표를 대상으로 NoSQL 지지자 상관 없어.

NoSQL 프로젝트 간의 차이점은 무엇입니까? 이러한 새 데이터베이스는 그들의 자신의 방법으로 건축 된다. 대신, 기존 SQL 데이터베이스 많은 기능 및 언어의 표준 집합을 집계합니다. 패키지는 키 값 쌍 수 있습니다 하지만 그들은 다른 사용 사례에 대 한 조정 될 수 있다. 주요 변수 데이터 포맷, 하지만 얼마나 자주 그들은 복사, 저장, 및 세그먼트 않습니다.

예를 들어 개인 전자 메일 주소와 같은 자주 복구 되는 데이터를 저장 합니까? 일부 데이터는 로그 파일 등 응급 상황에 대 한 저장 됩니까? 더 많은 사용자가 작은 용량의 데이터를 사용 하려면 또는 단지 몇 가지 사용자-대용량 데이터를 할까요? 몇 줄의 사용자 데이터를 손실 하는 경우 사용자의 생존에 영향을 당신의 행동은 하 고이 사용자가 당신을 고소할 것 이다?

과거에는, 각 건축가 MySQL 설정에 의해 괴 롭 혀. 자, 건축가 새로운 프로젝트를 선택할 수 있습니다. 프로젝트 의심의 여지가 거기 새로운 데이터베이스의 성능이 일치 해야 하는 경우이 혼란에 큰 장점이 있다. 그들은 매우 일반적인 경우, 성능이 엄청나게 상승 됩니다. 그러나, 개발자는 모든 문제를 해결 하는 "두려움 전함"를 구축 하지 것입니다.

이전에 개발자가 차이 제거 하 고 그들을 변환 쉽게 확인 하기 좋은 크로스 데이터베이스 라이브러리를 만들었습니다. 예를 들어 많은 자바 개발자는 JDBC 함수 라이브러리에 코드를 작성. 이러한 데이터베이스는 잘 상호 운용. 오래 된 라이브러리의 이러한 새 데이터베이스를 작업할 수 있습니다. 비록 많은 프로젝트는 유사한 방법을 사용, 다시 쓰기의 많은 필요 다른 하나의 함수 라이브러리를 포팅 합니다.

악화 시키기 위하여 많은 보조 프로젝트 사라졌습니다. 많은 유형의 보고서 생성 도구, 하지만 아무도 새로운 데이터베이스의 이러한 도구를 사용할 수 있습니다. 그들은 만약 그들이 토스 하지 않습니다 작동 하지 않습니다. 수백 또는 수천의 SQL을 사용 하는 패키지 수도 있지만 몇 가지 패키지 NoSQL을 도울 수 있다. 이 상호 운용성은 NoSQL에 표시 하는 데 시간이 오래 걸립니다 표시 있다. 또한, 쿼리 언어에서 큰 차이가 있다.

카산드라

페이 스 북 상태 업데이트의 수십억을 처리 하는 더 빠르고, 더 싼 방법이 필요 합니다. 그래서 그들은 프로젝트를 시작 하 고 결국 아파치 카산드라는 포팅. 아파치, 그것은 많은 지역 사회에서 도움을 받을 수 있습니다. 카산드라는 더 이상 그냥 페이 스 북, 그리고 프로젝트에 대 한 일 하는 프로그래머의 많은 다른 회사에서 온. 지금 Datastax.com는 카산드라에 대 한 지원 사업을 제공 하기 위해 노력 하 고 있다.

카산드라는 페이스 북에 많은 양의 상태 업데이트와 같은 데이터를 추적 하기 위한 훌륭한 도구입니다. 이 도구는 컴퓨터 네트워크를 만들 수 있고 네트워크에 모든 계산 같은 데이터. 즉, 각 컴퓨터 서로 대 한 대체 될 수 있습니다. 일단 데이터는 피어-투-피어 네트워크 노드를 통해 전달, 그들의 일관성 손실 됩니다. 열쇠는 "최종 합의", "일치" 하지. 상태 업데이트는 페이스 북에서 사라지고 하 고 다음 다시 나타나는 경우,이 무엇을 의미 하는 것이 알다시피.

CouchDB

COUCHDB 문서를 저장 하는 그리고 가장 큰 변화는 쿼리에서. 몇 가지 기본적인 쿼리 구조 대신 COUCHDB를 탐색 하 고 데이터를 줄이기 위해 두 가지 기능을 사용 하 여 문서를 검색 합니다. 하나의 문서 형식 그리고 포함 하는 문서를 결정 하는 또 다른. 프로그램을 저장 하는 방법을 알고 있는 숙련 된 Oracle 데이터베이스 연산자는 같은 일을 할 것입니다. 하지만 탐색 및 구조를 줄이는 풀뿌리 프로그래머에 대 한 눈을 뜨게 될 것입니다. Ajax 개발자 지금 더 복잡 한 논리를 쓸 수 있는 매우 복잡 한 검색 프로그램을 쓸 수 있다.

Couchdb의 핵심은 Erlang 작성 됩니다. 하지만 Api와 인터페이스는 JavaScript 또는 JSON.

JavaScript API는 단순히 일반 웹 개발자 Couchdb의 매력을 강화 한다. 이 개발자는 데이터베이스에서 문서, 또는 심지어 전체 웹 사이트를 저장할 수 있습니다.

MongoDB

MongoDB는 자바 세계를 지배할 수 있다 어떻게의 전형적인 예입니다. 프로그램 데이터를 JSON 형식으로 저장 한다. 쿼리는 브라우저 콘솔을 사용 하 여 다른 많은 하지만 뭔가 단순화 자바 스크립트의 기본 함수는. 큰 차이점은 MongoDB 데이터베이스에 대 한 인덱스를 만드는 것입니다 피드백 쿼리 결과 빠른 것은 인덱스가 올바르게 생성 하는 경우. 또한, 데이터베이스는 많은 다른 도구와 함께에서 사용할 수 있습니다.

Redis

Couchdb 등 MongoDB Redis 문서와 키 값으로 구성 되는 파일 저장 하는 데 사용 됩니다. 다른 NoSQL 데이터베이스와는 달리 저장 뿐 아니라 문자열 또는 숫자, 하지만 또한 범주 및 분류 되지 않은 문자열 컬렉션 키와 관련 된 값으로. 이 기능은 사용자가 제공 하는 더 복잡 한 컬렉션 작업을 가능 하 게. 사용자는 더 이상 Redis 서버에서 이것을 할 수 있기 때문에 교차점을 계산 하기 위해 데이터를 다운로드 해야 합니다.

Redis 너무 많은 인코딩 하지 않은 간단한 구조를 산란 했다. 루크 Melia 새 컬렉션을 생성 하 여 웹 사이트에 관객을 추적 합니다. 마지막 5 세트의 조합 당시에 온라인 했다 하는 사람들을 식별 합니다. 친구 목록 친구의이 집합의 교차는 온라인 친구 목록을 생성할 수 있습니다. 작업의 그런 세트는 많은 응용 프로그램. Redis 클러스터의 강력한 기능을 보여준다.

Redis 각 변경의 목록만 기록 하는 메모리에 데이터를 저장 합니다. 하드 디스크에 캐시를 기록 하는 강력한 기능, 많은 사람들이 할 하지도 참조 Redis로 데이터베이스. Redis를 메모리에 데이터를 읽기 전에 기다려야만 필요, 때문에 속도 기존의 데이터베이스 보다 훨씬 빠릅니다 하지만 적절 한 시기의 실패 하면 그것의 잠재적인 응용 프로그램 위험.

Riak

Riak는 대부분의 다른 제품의 기능 및 복제를 통해 더 많은 제어와 데이터 저장소의 가장 세련 된 디자인. 기본 구조는 여러 쌍의 키 값 저장, 하지만 그들을 복원 하 고 그들의 일관성을 보장에 대 한 많은 옵션이 있다. 예를 들어 쓰기 작업이 요구 하는 데이터는 전송 성공적으로 다른 컴퓨터에 클러스터에서 확인 하는 Riak를 포함 한다. 단 한 대의 컴퓨터를 신뢰 하지 않으려는 경우 요청할 수 있습니다 그것은, 2까지 3, 또는 54 기계 쓸 데이터 확인 메시지를 보내기 전에. 이 때문에 팀 "최종 일관성은 데이터 손실에 대 한 변명" 슬로건을 재생할 수 있습니다.

그냥 데이터 자체는 하드 디스크에 기록 되지 않습니다. 이것은 하나의 옵션, 하지만 그것은 주요 한. Riak 플러그인 스토리지 엔진 (기본 Bitcask)를 사용합니다. 엔진 자체 내부 형식으로 하드 디스크에 데이터를 기록합니다. 또한, MySQL에서 사용 하는 이노 Db 버전을 포함 하 여 몇 가지 옵션이 있다. 클러스터에 Riak의 능력은 모든 것이 간단 보장할 수 있습니다.

데이터를 인출할 때 Riak 발생할 수 있는 모든 오류를 제거 합니다. 두 노드의 대상 버전이 다른 경우 다음 Riak는 최신 업그레이드를 선택 하거나 결정에 대 한 클라이언트 코드를 두 개의 대상 버전을 반환 합니다. 이 데이터의 잠재적인 오류를 발견 하기 위한 유용한 옵션입니다.

Neo4j

우리가 언급 한 몇 가지 응용 프로그램 중 Neo4j 가장 큰 중 하나입니다. 그것은 대신에 데이터 그래프를 저장 하는 데 사용할 수 있습니다. 그것은 노드 및 측면 (관계) 패턴으로 그래프 데이터를 저장합니다. 소셜 네트워킹 응용 프로그램은 강점. Neo4j은 매우 새로운, 그리고 개발자는 여전히 더 나은 알고리즘을 찾고. 새로운 버전에서 개발자는 새로운 캐싱 전략으로 실험 시작: 검색 알고리즘 실행 빨리, 때문에 NEO4J 노드 정보를 캐시할 수 있습니다. 개발자는 또한 새로운 쿼리 언어를 닮은 XSL 패턴 일치를 추가 합니다.

NEO4J 네오 기술에 의해 지원 되었다. 데이터베이스의 회사의 상업적인 버전은 백업, 복구, 및 복잡 한 모니터링 기능.

Flockdb

어떤 사람들은 코드는 너무 복잡 한, 그들은 너무 복잡 하 고, 그들의 필요를 넘어 neo4j를 생각 불평 하고있다. 다음 그들은 또한 Flockdb를 시도할 수 있습니다. FLOCKDB는 실시간, 분산 데이터베이스는 트위터 인프라의 핵심 구성 요소입니다. 트위터는 FLOCKDB 1 년 이상 아파치 라이센스 기반 오픈 소스 프로젝트를 착수 했다. 자신의 트위터를 구축 하려면 다음 여러 무리에 걸쳐 데이터를 분할 하는 모래 주머니 도구를 다운로드 해야 합니다. 두 노드 사이의 연결을 저장 하는 FLOCKDB, 때문에 우리 중 많은 FLOCKDB를 "그래프 데이터베이스." 참조 그러나, 그것은 또한이 기간 neo4j 같은 복잡 한 도구에만 적용 하는 주장.

NoSQL 데이터베이스를 선택 하려면 어떻게 해야 합니까?

NoSQL 데이터베이스를 선택 하는 방법의 질문은 대답 하기 쉽지 않다. 많은 IT 부서 무작위로 하나를 선택 하 고 때로는 그들이 선택한 데이터베이스 그들의 요구를 충족 하지 않는. 좋은 개발자 프로젝트, 사업 지원, 가용성 및 문서 품질의 혜택을 균형을 원한다, 때문에 최고의 데이터베이스를 선택 하는 것이 더 어렵습니다.

이러한 데이터베이스를 모든 키 및 값의 큰 더미를 저장 하지만 진짜 문제는 제대로 서버에 부하를 분산 하는 방법과 그들에 게 변화를 전달 하는 방법. 또 다른 문제는 호스팅. 그것은 매우 매력적인 클라우드 서비스 당신을 위해 모든 유지 보수를 할 수 있습니다. NoSQL 데이터베이스 데이터 교환 SQL 데이터베이스 보다 더 어렵습니다. 세계도 JDBC 같은 큰 가상 계층 표준 쿼리 언어가입니다. 그럼에도 불구 하 고, NoSQL 데이터베이스는 이미 우리를 위해 충분히 매력적입니다.

(책임 편집기: 관리자)

연락처

이 페이지의 내용은 인터넷에서 가져온 것이므로 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.