밀어 큰 데이터 프로젝트, 기업 자주 발생 하는 과정 같은 주요 결정 문제-어떤 일종의 데이터베이스 시나리오를 사용 해야? 종합 고려 후 최종 옵션은 일반적으로 SQL과 NoSQL의 두 종류. SQL는 인상적인 성능 및 대형 설치 기반, 하지만 상당한 수익 및 지지자도 많은 NoSQL 가져올 수 있다. 오늘날의 토론에서 우리는 두 진영에서 전문가의 의견을 듣는 것입니다.
Networkworld 웹사이트 편집기 Johndix 논쟁을 조직 하 고 전문가의 수를 초대. 그 중 두 참여 전문가 들은 VOLTDB 회사 Ctoryanbetts와 Couchbase 회사 Ceobobwiederhold입니다. 큰 데이터는 또 다른 작업을 지 원하는 데 필요한 SQL Ryanbetts 그 SQL 대기업, 중 안정 된 생활 공간을 수상 하였다. Bobwiederhold는 NoSQL 매우 대안 이며 사실 그것은 다양 한 분야 특히 확장성에에서 큰 데이터를 위한 훌륭한 도구 되고있다.
포인트 하나: SQL 시간 테스트를 통과 했다 고 여전히 호황을 누리고 있다-voltdb 회사 CTO 라이언 Betts
구조적된 쿼리 언어 (SQL) 성공 및 걸출 한 명성, 년간 그것의 힘을 입증 하 고 여전히 큰 데이터 업체 및 관련된 기업, 구글, 페이 스 북, Cloudera, 아파치 등의 숫자에 종사 하는
.
SQL 여전히 시장에서 상당한 점유율 우위를 유지 하 고 계속 입력 및 큰 데이터 필드에 최대-와-활발 NoSQL 어떤 반향을 일으킬 않았다, 비록.
일단 기술 지배적인 위치를 얻고 있다 SQL, 사람들이 자사의 핵심 경쟁력을 잊지 하는 경향이. 왜 SQL 이길 수 있는 주된 이유는 그것이 장점 다음과 같은 독특한 결합:
1. SQL 데이터를 단일 데이터베이스 디자인에 대 한 다양 한 질문을 요청 하는 사용자와 상호 작용을 향상 시킵니다. 이것은 SQL의 성공에 열쇠입니다-그것은 그것의 유용성을 잃게됩니다 기본적으로 데이터는 상호 작용을 하는 경우. 그리고 지속적인 성장의 상호 작용 새로운 관점, 관련 된 문제 및 데이터베이스의 미래 발전에 대 한 실용적인 의미를 가져올 수 있다.
2. SQL 사용자가 자유롭게 제 3-파티 플러그-기능 및 도구를 지원 하면서 다양 한 시스템에서에서 전문성을 적용 하도록 허용 하는 기능을 표준화 했다.
3. SQL 확장, 기능-부자와 과제를 포함 하 여 빠른 트랜잭션 처리를 자주 검사를 포함 하는 쓰기와 깊은 분석의 다양 한 검증 이다.
4. SQL 데이터 성능 및 스토리지 메커니즘에 원활 하 게 연결할 수 있습니다. 일부 SQL 시스템 또한 JSON과 NoSQL 시나리오 보다 더 많은 기능 기능과 더 나은 성능을 결과 다른 구조적된 개체 형식을 지원 합니다.
그러나
식 "NoSQL"은 정말 정확 하 고,이 토론에서, 박사 Rickcattell NoSQL에 대 한 정리는 정의 사용, 즉, "시스템을 제공 하는 키/값 저장소 또는 간단한 레코드 및 인덱싱, 이러한 간단한 작업에 대 한 수직 확장성을 제공 하도록 설계 되었습니다." "
그것은 분명 현재 시장에 새 데이터베이스의 많은 매우 다른 각 기타의 편의 정확 하 게 그들의 각각 특성 깊은 메커니즘을 마스터링의 한계는 성공적인 프로젝트 배포를 키. NoSQL의 핵심 기능을 특정 문제를 해결 하기 위해 더 적절 한 수 있습니다. 예를 들어 그래픽 데이터베이스가입니다 더 나은 적합 인스턴스 데이터는 구성 기반 관계 보다는 전통적인 라인 또는 문서, 특정 텍스트 검색 시스템은 실시간으로 사용자 입력 쿼리 상황 처리에 더 나은.
여기, 나는 차이 단순한 키/값에서 SQL 시스템 및 혁신적인 스토리지 포맷 및 확장성은 JSON 객체 저장 시스템의 주요 장점 거 야.
* sql 대화형 기능을 제공. SQL은 선언적 쿼리 언어. 사용자 (예: 누가 지난 5 년 동안에서 매년 3 월에 최대 볼륨을 구입한 고객의 수를 보여주는) 원하는 말 데이터베이스 내부적으로 관련 알고리즘을 작성 하 고 필요에 따라 해당 결과 추출. 반면, NoSQL 자란 코딩 혁신 결과 MapReduce 프로토콜 쿼리 기법입니다. MapReduce는 사용자 뿐만 아니라 그들은 또한 결과 구현 하는 방법을 제공 하지만, 원하는 결과 이해 해야 합니다.
그것은 다소 지루한 기술 차이 같은 소리 수 있습니다, 있지만이 기능은 여전히 다음과 같은 두 가지 포인트에 대 한 중요 한: 첫째, 선언적 SQL 쿼리는 그래픽 도구와 보고서 작성기에서 간단한 클릭을 통해 더 쉽게 만들 수 있습니다. 사용의이 상대적으로 낮은 임계값 분석가, 운영자, 관리자, 및 다른 그들의 핵심 기능 및 효과 즐길 수 있는 소프트웨어 프로그래밍 지식을 이해 하지 않는 수 있습니다. 둘째, 데이터베이스 엔진은 내부 정보를 사용 하 고 과정을 추상화 하는 효율적인 알고리즘을 선택. 물리적 계층 또는 데이터베이스 인덱스를 변경 하는 경우에 최적화 알고리즘 완료할 수 있습니다 여전히 작업 정확 하 게. 대조적으로, 지난 프로그래밍 시스템에서 프로그래머는 기존 프로세스를 다시 검토 하 여 두 프로그래밍을 할 필요 합니다. 이 높은 비용 귀 착될 수 있다 하 고 예기치 않은 오류가 발생할 수 있습니다.
시장이 필수적인 차이 대 한 매우 분명 하다. 이르면 2010 년 구글 내부 사용자의 실제 요구에 맞게 MapReduce를 강화 하기 위해 SQL 프로그램의 도입을 발표 했다. 최근, 페이스 북 그것의 자신의 SQL 계획의 PB 수준 HDFS 클러스터 데이터를 쿼리 하는 프레스 토를 출판 했다. 페이 스 북, "우리의 데이터 웨어하우스 크기 페타 성장 했다 및 비즈니스 요구를 진화 하는, 우리가 분명히 낮은 쿼리 대기 시간을 달성 하기 위해 효율적인된 대화형 시스템 필요."에 따라 또한, Cloudera HDFS 위의 자체 SQL 솔루션 임 팔 라를 설치 하는. 위에서 언급 한 개발의이 시리즈 Hadoop 지향, 오래 고 널리 채택 SQL 포탄의 설정-하이브를 기반으로 합니다.
* sql 특성을 표준화 했다. 공급 업체는 가끔 특별 한 조정 및 그들의 SQL 인터페이스에 사용자 지정을, SQL 커널 여전히 매우 표준화 된 솔루션 이며 ODBC 및 JDBC, 나타내는 다른 사양은 또한 SQL 시스템에 대 한 광범위 하 게 사용할 수 있는, 안정적인 인터페이스를 제공 합니다. 결과 관리 및 운영 도구 생태계 응용 프로그램 디자인, 모니터링, 검사, 탐험, 및 개발 기반 SQL 시스템을 구현할 수 있습니다 수 있습니다.
SQL 사용자와 프로그래머 따라서 수 있습니다 그들은 다양 한 백 엔드 시스템에서에서 축적 된 Api와 사용자 인터페이스 기술 재사용 함으로써 응용 프로그램 개발 시간을 단축. 표준된 기능에는 또한 만들 추출, 변환 및 로드 (ETL) 도구는 구조화 된 방식으로 다른 데이터베이스와 시스템 간의 기업 프로세스 데이터 흐름 수 있도록 설계 된 선언적 권한으로 제 3 자 수 있습니다.
* sql 확장 됩니다. 친구 잘못 SQL 완전히 잘못 성능을 희생 하 여 확장성을 얻을 수 있다는 생각할 수 있습니다. 위에서 설명 했 듯이, 페이스 북 SQL 인터페이스를 쿼리 PB 수준 데이터를 만들었습니다. SQL은 또한 매우 빠른 성능을 acid 트랜잭션 처리 작업을 실행할 때 있다. SQL은 사용자가 작업의 종류와 수 있습니다 다양 한 클러스터 복제 데이터 스토리지 시스템에서 효율적으로 실행 하는 SQL 데이터의 크기를 고려 하지 않고, 통합 방식에서 처리를 수행할 수 있도록 데이터 저장 및 검색 메커니즘에 대 한 추상화를 제공 합니다. 규모를 사용 하 여 SQL 인터페이스 구름 생성을 포함 하지 않습니다, 또는 하 시스템, 내결함성, 고가용성 및 복제 기능을 제한 하는 sql에서 고유 요소 이며. 사실, 모든 현대 SQL 시스템 클라우드 시스템에서 측면 확장성, 복제 기능, 및 결함 허용을 지원 하기 위해 잘 수 있습니다.
* sql JSON을 지원 합니다. 몇 년 전, 많은 SQL 시스템은 그들의 자신의 디자인 아이디어에 XML 문서 지원 기능을 통합 하기 시작 했다. 오늘, JSON 주류 데이터 교환 형식 중 하나가 되면서, SQL 공급 업체는 적극적으로 지 원하는 JSON. 구조적된 데이터 형식 지원 기능 인터넷 액세스 인프라의 가동 시간에 대 한 현재 민첩 프로그래밍 프로세스와 요구의 중요 한 부분이 되고있다. ORACLE12C, PostgreSQL9.2, Voltdb 및 다른 유형의 데이터베이스 지원 json-시작 프로그램의 성능 벤치 마크 수준 "네이티브" Jsonnosql 체계를 일반적으로 우량 하다.
SQL 시장 점유율에 대 한 출 격에서 주도권을 계속 하 고 더 많은 투자와 도입 지원 유치를 계속 됩니다. 동시에 독점적인 쿼리 언어 또는 간단한 키 값 의미, NoSQL 데이터베이스는 심각 하 게 도전 시장 통치자에 그것의 능력에 영향을 미치는 기술적 수준에서 하지 차이 가져올 수 있다. 현대 SQL 시스템 의미, 구축 및 사용자 기반을 육성, 생태계 통합 효과 확장 하 고 엔터프라이즈 환경에 유지 하거나 원래 확장성을 능가 하면서 입양을 깊게 풍부한 쿼리를 지원할 수 있습니다.
포인트 2: NoSQL couchbase 큰 데이터 응용 프로그램에 대 한 더 적합 한 회사 Ceobobwiederhold
현재, 더 큰 데이터 응용 프로그램의 분야에서 특히 관계형 데이터베이스에 대 한 실현 가능한 대안으로 NoSQL에 대해 시작 하는 더 많은 기업, 많은 기업 사용자 실현 대규모 작업의 실제 성능 결과 표준화 된 클러스터 및 상용 서버 보다 더 나은. 또한, 모델 데이터 모델의 사용은 더 현재 데이터 캡처 및 처리 작업에 적합 합니다.
NoSQL 필드에 큰 데이터 항목을 설명할 때, 우리는 읽기에 집중 하 고 프로세스 운영 데이터베이스에 쓰기-대화형 작업 매일 온라인 트랜잭션 처리에 참여 하는 즉, (예를 들어, 사용 하 여 대용량 데이터 온라인 항공 예약 안내). 운영 데이터베이스는 일반적으로 많은 양의 데이터 처리와 데이터 (예: 큰 데이터를 사용 하 여 특정 일에 특정 비행 예정 얼마나 많은 승객이 분석)에 포함 된 분석 결론을 수집 필요가 분석 데이터베이스에서 다릅니다.
그러나
, 큰 데이터베이스의 데이터에는 운영 설계 추력은 중심 분석 작업, 일반적으로 큰 지속적인 데이터 액세스를 수행 하 고 실시간 트랜잭션 처리를 수행할 수 있도록 수많은 사용자에 대 한 데이터 집합을 제공 하는 운영 데이터베이스. 이러한 데이터베이스를 조작 하 고 큰 데이터 콘텐츠 관리의 대규모는 또한 NoSQL 기능의 중요성 그리고 왜 그것 중심 역할 큰 데이터 응용 프로그램에 설명 합니다.
* nosql이 확장성
를 달성 하는 열쇠
기술 산업 각 하드웨어 개발에 근본적인 변화에 도입 불가피 하지 전환 곡점을 경험할 것 이다. 데이터베이스 필드에서 바깥쪽으로 확장을 상향 확장에서이 변화가 되었습니다 nosql의 급속 한 성장을 하는 주요 요인. 관계형 데이터베이스, 오라클, IBM 등 거 인에서 특정 솔루션을 포함 하는 확장 문제 해결에 초점. 다른 말로 하면, 그들은 더 비싼 하드웨어 장치를 추가 하 여 확장된 요구 사항을 충족만 수 중앙, 글로벌 공유 기술 걸릴.
반면, NoSQL 데이터베이스 분산된 특성에 걸립니다 완전 한 사운드의 외부 확장 기술에 속하는 디자인 아이디어에서 계정. 그들은 다양 한 사용자 증가 대처 하는 것에 더 많은 노드를 추가할 수 있도록 탄력적인 확장성을 제공 하기 위해 클러스터의 전체 세트를 형성 하는 분산된 노드를 활용 하 여 작업.
종종 상승 보다 사용의 저렴 한 비용으로 이어질 분산된 바깥쪽으로 확장 계획 확장 메커니즘. 후자에 속하는 대형, 복잡 하 고, 내결함성 서버 시스템, 디자인, 건설, 그리고 이후 지원 높은 비용을 가져올 것 이다 그래서. 결제 전략은 단일 서버에 기반으로 하기 때문에, 상용 관계형 데이터베이스의 라이센스 비용 없습니다 무시할 수 수 있습니다. 다른 한편으로, NoSQL 데이터베이스는 일반적으로 오픈 소스 프로젝트에 속한, 서버 클러스터 전체 결제 단위 이며 가격이 낮습니다.
* nosql은 유연성
를 달성 하는 열쇠
관계는 NoSQL 데이터 모델에서 다르다. 관계형 모델은 행과 열에 저장도 되는 외래 키에 의해 참조 되는 열을 포함 하는 여러 관계형 테이블에 데이터를 분할 해야 합니다.
사용자 데이터를 필요로 하는 정보 집합을 쿼리 하는 경우
테이블-일반적으로 현재 일반적인 엔터프라이즈 응용 프로그램의 수백을 포함 하는 여러에서 수집 해야 합니다-터미널 응용 프로그램을 제공 하기 전에 그들을 통합. 마찬가지로, 데이터를 쓸 때 쓰기 프로세스 조정 하 여 여러 테이블에서 실행 해야 합니다. 관계형 데이터베이스는 종종 캡처 및 데이터의 양이 상대적으로 작은 데이터베이스에 가져오기의 속도 너무 빨리 때 정보를 저장 하는 기능이 있다. 그러나, 현재 응용 프로그램 종종 읽기 처리 쓰기 데이터, 거 대 한 양의 작업을 해야 하 고 운영 데이터베이스의 기능을 넘어은 근처 실시간 완료 요구.
NoSQL 데이터베이스는 완전히 다른 패턴을 걸립니다. 핵심 관점에서 NoSQL 데이터베이스는 정말 "Norel", 즉, 비-관계형 형식, 저장 하 고 정보를 조합 하는 과정에서 이러한 계획 테이블 및 테이블 사이의 관계에 의존 하지 않습니다 의미를 구현. 예를 들어 문서 지향 NoSQL 데이터베이스 먼저 우리가 필요로 하는 데이터를 획득 하 고 JSON 형식의 문서에 통합. 각 JSON 문서는 응용 프로그램에서 사용할 수 있는 개체로 취급할 수 있습니다. JSON 문서는 그렇지 않으면 같은 행에 25 관계형 데이터베이스 테이블을 필요로 하 고 단일 문서/개체에 구성 데이터를 저장할 수 있습니다.
정보 집계 정보 콘텐츠를 중복 발생할 수 없습니다 하지만 저장소 리소스 더 이상 기본 비용 소스 이기 때문에, 같은 데이터 모델 수 더 큰 유연성을 제공, 결과 문서의 효율적인 할당을 용이 하 게 하 고 읽기에 대 한 성능 향상 쓰기 작업, 웹 응용 프로그램의 대체 효과 강화 함으로써.
* nosql은 대용량 데이터 응용 프로그램
를 지 원하는 열쇠 이다
오늘, 우리 수 있다을 캡처하고 타사 환경, 소셜 미디어 사이트를 포함 하 여 통해 데이터를 보다 쉽게 액세스. 개인 사용자 정보, 지리 데이터, 사용자 생성 콘텐츠, 장치 로그인 데이터 및 센서 데이터는 단지 몇이이 추세의 전형적인 예의 그리고 데이터 소스의 목록을 확대. 동시에, 회사는 점점 그들의 핵심 비즈니스 응용 프로그램을 구동 하는 대용량 데이터 기술의 힘에 의존 하 고. 전반적으로, 회사는 확장 하 그들의 화해의 NoSQL, 현재 신흥 데이터 형식에 적응 하는 유일한 방법입니다 시작 했습니다.
개발자는 데이터 공급 업체에서 제공 하는 콘텐츠 구조를 방해 하지 않도록 최신 데이터 형식을 쉽게 적응할 수 있는 보다 유연한 데이터베이스 솔루션을 필요로. 대부분 새로운 유형의 데이터는 구조화 또는 반 구조화 된 그래서 개발자가 그들의 자신의 데이터베이스를 효율적으로 그들을 저장할 수 있을. 불행 하 게도, 엄격한 정 및 패턴 신속 하 게 새 데이터 형식을 허용 하는 게 불가능 한 그것은 구조화 및 반 구조화 된 데이터에 적응 하기 어려운 관계형 데이터베이스의 설계를 기반으로. NoSQL 가져온 데이터 모델 들의 실제 요구에 더 나은 매핑될 수 있습니다.
전반적으로, 웹 및 모바일 응용 프로그램, 신흥 동향의 상승 그리고 온라인 소비자 행동 및 새 데이터 클래스 쪽으로 이동의 성장 인기와 함께 다양 한 프로세스 솔루션 업계에서 갈망 데이터 관리 및 액세스에 대 한 확장성과 유연성을 제공 하는 데이터베이스 기술에. 이러한 맥락에서 NoSQL 기술은 효과적으로 이러한 요구 사항을 충족 시킬 수 있는 유일한 솔루션입니다.