DB 유형 - NoSQL

04.Database 2023. 9. 14. 14:44
728x90
반응형
[개념]  관계형 데이터 모델을 사용하지 않는 모든 Database 또는 Data Store
[제공] 전통적인 관계형 데이터베이스 보다 덜 제한적인 일관성 모델을 이용하는 데이터의 저장 및 검색을 위한 매커니즘을 제공
[목적] 단순 검색 및 추가 작업을 위한 매우 최적화된 키 값 저장 공간으로, 레이턴시와 스루풋과 관련하여 상당한 성능 이익을 내는 것이 목적
비정형 데이터 처리 효율 극대
검색보다는 저장에 중점을 두어 속도 향상 DBMS
구성도) openAPI , RESTful 서비스 활용 쿼리 수행
유형) 문서 기반, key value 기반, 그래프 기반
cap theorem 기반
 
1. 비정형 데이터 처리 효율 극대 , No Sql의 개요
가. no sql 의 정의    
  비정형 데이터 처리를 위해 데이터의 검색보다는 저장에
  중점을 두어 처리 속도 향상시키는 dbms
나. no sql 의 특징

 

대용량데이터처리
저렴한 클러스터 구성
병목현상 제거
 
2. nosql 의 구성도 및 구성요소
가. no sql의 구성도
   
나. nosql의 데이터 모델별 분류
  column family data store (HBASE)
  document store  (MongoDB)
  key / value store (MEMCACHED)
3. nosql 이론 배경 이론
cap theorem - 분산 데이터베이스는 
                     일관성(Consistency), 
                     가용성(Availablility), 
                     단절내성(partition tolerance) : 일부 메세지를 손실하더여도 시스템은 정상 동작해야함.
모두 만족 시키는 것이 불가능 하므로 두가지만 이용
 
* NoSQL의 특징 (BASE, Basically Available, Soft state, Eventually Consistency)

[특징] BASE, CAP 이론
 
Basically Available : 기본적으로 Available하고
Soft-state : 사용자가 관리(refresh, modify)하지 않으면 Data가 expire 될 수도 있으며
Eventually consistency : 지금 당장은 아니지만 언젠가는 Data가 일관성을 가진다
 
Acid와 Base의 비교 #1

 

 
[구성]
컬럼: H베이스, 아큐물로
도큐먼트: 몽고DB, 카우치베이스
키 값: 다이나모, 리악, 레디스, 캐시, 프로젝트 볼드모트
그래프: Neo4J, AgensGraph, 알레그로그래프, 버투오소

[유형]
 
Document Store

Document-oriented database라고 불리가도 하며 테이블 스키마가 정적이지 않고 유동적입니다. 이것은 즉 레코드 마다 다른 스키마를 가질 수 있다는 뜻입니다. 일반적으로 JSON같은 document를 이용해 record를 저장합니다. 그렇기 때문에 RDB랑 달리 트리형 구조를 저장하거나 찾는데 용이합니다.
 
대표DB : MongoDB, Amazone DynamoDB, CouchBase
Wide Column Store
Wide Column Store는 많은 수의 동적 열을 보유할 수 있습니다. record row마다 Key-Value를 가지고 있어 record마다 다른 스키마를 가질 수 있습니다. 스키마가 프리하다는것은 Document Store랑 비슷하나 기본적인 구현은 많이 다릅니다. record면에서는 RDB와 많은점에서 유사하며 더욱 대량 분산처리에 용이합니다. 많은 컬럼과 많은 데이터를 저장해야할때 유용하며 scan에는 (상대적으로) 그다지 좋지 않습니다.
 
대표DB : CassandraHBase, Google BigTable
Key-Value Store
 
  • Ordered Key/Value Store
Key/Value Store의 확장된 형태로 Key/Value Store와 데이터 저장 방식은 동일하나, 데이터가 내부적으로 Key 순서로 Sorting되어 저장된다.
NoSQL은 RDBMS의 Order By와 같은 기능을 제공하지 않기 때문에 결과값을 업데이트 날짜 등으로 Sorting해서 보여주는 것은 이 Ordered Key/Value Store가 절대적으로 유리하다. 대표적인 제품으로는 아파치(Apache)의 HBase, Cassandra 등이 있다.
 
 
  • Document Key/Value Store
Document 타입은 XML, JSON, YAML과 같이 구조화된 데이터 타입으로, 복잡한 계층 구조를 표현할 수 있다. Document Store 기반의 NoSQL은 제품에 따라 다르기는 하지만 대부분 추가적인 기능(Sorting, Join, Grouping 등)을 제공한다. 대표적인 제품으로는 MongoDB, CouchDB등이 있다.
 

Key와 Value로 이루어진 심플한 구조의 저장 스토어입니다. 이런 심플한 구조를 사용하는 이유는 속도가 빠르며 분산 저장환경에 용이하기 때문입니다. 주로 빠른 억세스를 위해 메모리를 베이스로 사용합니다. 그렇기 때문에 많은 throughput이 필요하며 모델이 단순한 카운터, server config, session clustering등에 사용됩니다. wide column과 마찬가지로 억세스 속도는 매우 빠르나 scan에는 취약한 모습을 보여줍니다.
 
대표DB : RedisMemcachedEhCacheHazelcast

 

SearchEngine
대량의 데이터와 텍스트 컨텐츠를 빠르게 검색하기 위한 저장 스토어입니다. 텍스트를 토크나이징 하여 색인을 하며 일반적으로 텍스트 검색 뿐만아니라 Ranking, Grouping, Aggregation, Geolocation 거리 계산등의 기능들도 같이 제공되고 있습니다.
 
Graph DBMS

그래프 DBMS는 데이터를 노드로 표현하며 노드 사이의 관계를 edge로 표현합니다. 데이터와 데이터간의 관계를 표기할 수 있다고 보는편이 편할것 같습니다. 이런 구조는 마치 페이스북의 친구찾기나 연관 데이터 추천등의 연결된 데이터를 저장하는데 용이합니다. (이런 저장소가 추천을 알아서 해주는 것은 아닙니다)
 
대표DB : Neo4JOrientDB
 
Time Series DBMS
시계열(Time Series)를 처리하기 위해 최적화된 데이터 베이스입니다. 주식거래 같은 시간 단위의 데이터를 처리하고 그래프를 그리는데 매우 용이합니다. 주로 대량의 시계열 데이터를 수집하거나 쿼리할 수 있게 설계 되었습니다
대표DB : InfluxDBRRDtoolGraphite
 

728x90
Posted by Mr. Slumber
,