NoSQL 특징및 분류
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 분류, 분산처리, 메타데이터, 데이터노드