NoSQL 특징및 분류

 

NoSQL 아래와 같은 속성을 가지고 있다.

·       Key-Value (-밸류) 또는 이를 응용한 데이터 모델

·       상대적으로 값싼 다수의 하드웨어를 이용

·       데이터는 분산된 노드에 파티션 복제되어 저장

·       데이터의 정합성 보다 단절내성에 대한 요구사항에 목적

·       2단계 커밋의 트랜잭션 수준보다, 정족수 기반의 트랜잭션 선호

 

데이터 모델은 아래와 같이 분류 있다.

·       Key-Value : 가장 단순한 데이터 모델로, 키와 바이너리 타입의 값을 저장소에 저장하는 구조이며, 데이터 조회또하 키로만 조회할 있다.

·       Column :  관계형 데이터베이스와 비슷하게 데이터는 컬럼에 저장되며, 트에빌, 컬럼등과 같은 스키마가 존재한다.

·       Document :  데이터의 저장단위가 문서가 되며 하나의 무서 내에는 여러 개의 필드와 필드에 대응하는 값이 있다.

·       Graph :  그래프에 있는 노드와 엣지를 저장하고 이를 쉽게 네비게이션할 있는 모델을 제공한다.

 

아래 표는 데이터 모델에 대한 대표적인 솔루션들이다.

Data Model

Solutions

Key-Value

Memcached, Dynamo, Volemort, Redis

Column

Google Bigtable, Cloudera, HBase, Hypertable, Cassandra

Document

MonhoDB, CouchDB

Graph

Neo4j, FlockDB, InfiniteGraph

 

대부분의 NoSQL 분산된 서버에 데이터를 저장한다. 이때 분산을 어떻게 하느냐에 따라 크게 메타데이터방식과 P2P 방식으로 분류할 있다.

·       메타데이터 : 데이터의 배치 정보가 중앙 집중적인 데이터 서버나 마스터 서버에 저장되어 있으며, 클라이언트는 데이터 연산을 위해 중앙(마스터) 서버를 경유해 실제 데이터를 처리할 서버로 접속하는 방식이다. 데이터 정보를 중앙에서 관리하기 때문에 관리가 편하며 맵리듀스와 결합하기도 용이하다. 단점으로는 중앙(마스터) 서버가 문제가 생기거나 데이터 관리 테이블에 문제가 발생하면 전체 데이터에 접근할 수가 없다. 대표적으로 빅테이블, 몽고DB 등이 방식을 사용한다.

·       P2P : 별도의 메타 정보가 없으며 해시 함수를 이용해 특정 키를 서비스하는 서버를 찾는 방식. 메타 정보를 관리하는 서버가 없기 때문에 장애범위가 지역적이다. 하지만 저장된 데이터를 이용해 분석 작업을 하는 경우 메타데이터 방석보다 어렵다.

 

파일 저장 방식에 따라 2가지로 구분할 있다.

·       데이터 파일은 분산 파일 시스템에 저장하고, 데이터 관리 시스템에서는 논리적인 관리만 담당하는 방식은 데이터의 복제, 장애 발생시 복제본의 재생성등은 분산 파일 시스템에서 제공하는 기능을 이용한다. 빅테이블, 클라우데이터, HBase 등이 있다.

·       데이터 관리 시스템 자체적으로 데이터 파이을 저장하는 방식은 데이터 관리 시스템 자체적으로 복제, 장애 복구 등에 대한 기능을 담당한다. 대부분의 NoSQL 솔루션들이 방식을 사용한다.

 

2020-06-08 / Sungwook Kang / http://sungwookkang.com

 

 

NoSQL, 분산 데이터 저장, NoSQL 특징, NoSQL 분류, 분산처리, 메타데이터, 데이터노드

'NoSql, MemoryDB' 카테고리의 다른 글

CAP 이론  (0) 2020.06.08
Redis Memory LFU(Least Frequently Used) 캐시  (0) 2019.06.07
Redis Memory LRU(Least Recently Used) 캐시  (0) 2019.06.04
Redis Memory 정보  (0) 2019.05.21
Redis Architecture  (0) 2019.05.18

CAP 이론

 

관계형 데이터베이스는 ACID 속성을 가지고 있으며 안전하게 저장하고 정합성을 보장하는데 주목적이 있다.

·       Atomicity(원자성) : 트랜잭션과 관련된 모든 작업들이 정상적으로 수행 되었는지, 아니면 모든 작업들이 수행되지 않았는지를 보장한다. 원자성은 중간 단계까지 실행되고 실행이 실패하는 일은 없도록 한다.

·       Consistency(일관성) : 트랜잭션 실행이 성공적으로 완료되면 언제나 일관성 있는 데이터베이스 상태로 유지한다.

·       Isolation(고립성) : 트랜잭션이 실행되는 동안 다른 트랜잭션의 작업이 끼어들지 못하게 보장한다. , 다른 트랜잭션에서 중간단계의 데이터를 확인할 없다.

·       Durability(지속성) : 성공적으로 수행된 트랜잭션은 영원히 유지되어야 한다.

 

최근 하드웨어가 발전하고, 검색 서비스, SNS 서비스 같은 대규모 데이터 처리 장애 상황에서도 서비스를 유지해야하는 특성을 반영하여 BASE 라는 속성에 맞는 데이터 관리 시스템이 필요로 하게 되었다.

·       Basically Available : 언제든지 데이터에 접근할 있는 속성

·       Soft state : 특정 시점에서는 데이터 일관성이 보장되는 않는 속성

·       Eventually consistent : 일정시간이 지나면 데이터의 일관성이 유지되는 속성

 

결국 확장성과 고가용성을 제공해야하지만, 표준 SQL이나 엔티티 간의 관계를 지원하지 않는 데이터 관리 시스템이 등장하게 되었으며, 이러한 시스템을  NoSQL이라고 한다. 분산환경의 NoSQL 시스템을 구성할 경우 CAP 이론이라는 것이 있다.

·       Consistency (정합성) : 모든 클라이언트는 항상 동일한 데이터를 보장 받는 속성

·       Availability (가용성) : 네트워크 단절 상황에서도 장애가 발생하지 않은 노드는 모든 요청에 대해서 정해진 시간 내에 응답해야하는 속성

·       Partition Tolerance (단절내성) : 네트워크가 단절된 상태에서도 시스템의 속성(정합성이나 가용성) 유지해야한다는 속성. 분산환경에서는 네트워크상에 서버들이 분산배치되기 때문에 속성은 반드시 포함해야하는 속성이다.

 

CAP 이론은 CAP 속성을 정의한것으로 적절한 응답 시간내에 가지 속성을 모두 만족시키는 분산 시스템을 구성할 없다라고 정의한 이론이다.

 

관계형 데이터베이스는 정합성(C) 가용성(A) 초점이 맞춰져 있는 반면, NoSQL 솔루션들은 가용성(A) – 단절내성(P) 또는 정합성(C)-단절내성(P) 특성을 제공한다. CAP 이론에 따라 분산된 환경에서는 가지 속성을 동시에 만족시킬 없기 때문에 저장되는 데이터의 속성과 요구사항을 파악해 요구사항에 어떤 속성을 갖는지를 알아야 한다.

 

 

2020-06-07 / Sungwook Kang / http://sungwookkang.com

 

 

NoSQL, 분산 데이터 저장, CAP이론, Consistency, Availability, Partition Tolerance

'NoSql, MemoryDB' 카테고리의 다른 글

NoSQL 특징및 분류  (0) 2020.06.09
Redis Memory LFU(Least Frequently Used) 캐시  (0) 2019.06.07
Redis Memory LRU(Least Recently Used) 캐시  (0) 2019.06.04
Redis Memory 정보  (0) 2019.05.21
Redis Architecture  (0) 2019.05.18

+ Recent posts