NoSQL 개념 정리

NoSQL


빅데이터, AI, 딥러닝 등 기술적인 화두들의 공통점으로 대용량 데이터에 대한 저장을 생각할 수 있습니다. 그 중에서도 NoSQL은 기존의 RDBMS를 사용함으로 해서 발생할 수 있는 문제들의 해결방안으로 손 꼽을수 있을 것입니다.



1.1 등장 배경

웹 2.0 환경과 빅데이터가 등장하면서 RDBMS에서의 '데이터를 처리하는 데 필요한 비용의 증가' 이슈를 해소하기 위해 등장하였습니다.

관계형 데이터베이스를 사용하면서 기하급수적으로 증가하는 데이터의 저장을 위해서는 장비의 성능이 좋아야하고 이를 위해서 하드웨어적으로 큰 비용이 발생한다.



1.2 특징

  1.2.1 분산저장

    • 데이터와 트래픽이 증가함에 따라 기존의 수직적 확장에서 장비의 수를 늘리는 수평적 확장(Scale-out) 방식

    • 샤드 키(Shard key)를 기준으로 하나의 테이블을 수평 분할하여 서로 다른 클러스터에 분산 저장하고 질의


  1.2.2 Schema-less

    • 데이터의 구조를 미리 정의할 필요가 없으며, 시간이 지나더라도 언제든지 바꿀 수 있다.

    • 데이터베이스가 스키마를 직접 관리하지 않는 것을 위미할 뿐, 암묵적인 스키마는 여전히 존재한다.


1.3 CAP 이론


CAP 이론은 분산 시스템에서 보장해야 한느 3가지 특성으로 Consistency (일관성), Availability (유효성), Partition Tolerance (파티션 허용) 중 3가지를 동시에 만족시키는 것은 불가능 하고, 최대 2가지 특성만 만족시킬 수 있다는 이론으로 RDBMS의 경우 CA 특성을 만족합니다.



    • 일관성(Consistency) : 분산된 노드 중 어느 노드로 접근하더라도 데이터 값이 같아야 한다.
    • 가용성(Availability) : 클러스터링된 노드 중 하나 이상의 노드가 실패(Fail)라도 정상적으로 요청을 처리할 수 있는 기능을 제공한다.

    • 분산 허용(Partition Tolerance): 클러스터링 노드 간에 통신하는 네트워크가 장애가 나더라도 정상적으로 서비스를 수행한다. 노드 간 물리적으로 전혀 다른 네트워크공간에 위치도 가능하다.


1.4 NoSQL 데이터베이스 유형

  1.4.1 컬럼 형식 데이터베이스

컬럼 형식 데이터베이스는 데이터의 행이 아니라 데이터의 컬럼을 읽고 쓰는데 최적화된 데이터베이스 입니다.
컬럼 기반 스토리지는 전반적인 디스크 I/O 요구사항과 디스크에서 로드해야 하는 데이터의 양을 획기적으로 줄여주므로, 데이터베이스 분석 성능에 중요한 요소이다.

  1.4.2 도큐먼트 데이터베이스
도큐먼트 데이터베이스는 주로 JSON 또는 XML 형식의 문서와 같은 반정형 데이터를 저장하도록 설계된 데이터베이스 입니다.
기존 관걔형 데이터베이스와는 달리, 비관계형(NoSQL) 문서별로 다른 스키마를 적용할 수 있도록 좀 더 유연하게 스키마를 적용할 수 있습니다.

  1.4.3 그래프 데이터베이스
그래프 데이터베이스는 간선이라고 부르는 방향 링크와 정점을 저장합니다. 그래프는 관계형(SQL) 및 비관계형(NoSQL) 데이터베이스에 구축될 수 있습니다.
정점 및 엣지는 각각 이들과 연관된 속성을 가집니다.

  1.4.4 인 메모리 키-값 저장소
인 메모리 키-값 저장소는 읽기 중심의 어플리케이션 워크로드(소셜 네트워킹, Q&A포털 등) 또는 컴퓨팅 집약적 워크로드(추천 엔진 등)에 최적화된 NoSQL 데이터베이스 입니다.
인 메모리 캐싱은 핵심 데이터를 메모리에 저장해 액세스 지연 시간을 줄여주므로 어플리케이션 성능이 향상됩니다.




'빅데이터' 카테고리의 다른 글

NoSQL 데이터 모델링  (0) 2017.10.30
HBase 개념 정리  (0) 2017.09.21
NoSQL 개념 정리  (0) 2017.09.21
도커 공인 ip 설정  (0) 2017.08.04
스마트의 시작, Ontology_4  (0) 2017.07.26
Storm + Kafka 연동하기  (0) 2017.07.21

New Multi-Channel Dynamic CMS