상단

NoSQL(Not-only SQL)을 정리 합니다.

 

RDBMS vs NoSQL


RDBMS 속성

{|cellspacing="0" cellpadding="2" border="1" width="100%" bgcolor="#FFFFFF" align="center" 
|- |width="30%" align="center" valign="middle" style="background-color:#eee;"|Atomicity (원자성) |width="70%" align="left" valign="middle"|

  • 트랜잭션 실행의 단일 상태(성공/실패)를 보장

  • 하나의 트랜잭션은 성공 또는 실패의 단일한 상태만 갖습니다. 즉 일부 실패, 일부 성공의 상태를 갖을 수 없습니다.
    align="center" valign="middle" style="background-color:#eee;"
    align="left" valign="middle"
  • 성공적으로 완료된 트랜잭션의 데이터가 저장
    align="center" valign="middle" style="background-color:#eee;"
    align="left" valign="middle"
  • 트랜잭션의 단독 실행을 보장 (트랜잭션간 간섭 방지)
    align="center" valign="middle" style="background-color:#eee;"
    align="left" valign="middle"
  • 성공적으로 실행된 트랜잭션의 데이터는 영원히 반영
    |}

  • RDBMS의 한계

    • 확장성의 한계

    • 고정된 스키마

    • 비용의 한계성

 
 

NoSQL 속성

  • 약 150종의 NoSQL 솔루션이 존재함

    • 장점 : 수평 확장성 (Scale-out), 유연한 Schema, 고성능, 저비용

    • 단점 : 높은 수준의 데이터 정합성을 지원하는 업무에 적합하지 않음

     
  • CAP 이론 : 2002년 버클리대학의 Eric Brewer 교수에 의해 발표된 분산 컴퓨팅 이론
    {|cellspacing="0" cellpadding="2" border="1" width="100%" bgcolor="#FFFFFF" align="center" 
    |- 
    |width="30%" align="center" valign="middle" style="background-color:#eee;"|Consistency (일관성) 
    |width="70%" align="left" valign="middle"|

  • 동시에 같은 데이터를 조회
    align="center" valign="middle" style="background-color:#eee;"
    align="left" valign="middle"
  • 항상 Read와 Write 가능 (단일 노드 관점)
    align="center" valign="middle" style="background-color:#eee;"
    align="left" valign="middle"
  • 물리적 네트워크를 넘어서 동작 (노드간의 관계 관점)
    |}

  • CAP는 2가지만 만족할 수 있다.

    • CA 중심 : RDBMS

    • AP 중심 : NoSQL (Consistency 포기)

    • CP 중심 : NoSQL (Availability 포기)

 
 

NoSQL 분류 및 종류


NoSQL 분류

{|cellspacing="0" cellpadding="2" border="1" width="100%" bgcolor="#FFFFFF" align="center" 
|- |width="20%" align="center" valign="middle" style="background-color:#eee;"|Key-value |width="40%" align="left" valign="middle"| |width="40%" align="left" valign="middle"|

 

  • Voldemort

  • MemcacheDB

  • Membase

  • Azure Table Storage

  • Chordless

  • HamsterDB

  • Scalien

  • Dynamo

  • Berkeley DB (Ordered Key-value)

  • Oracle NoSQL Database 11g R2
    align="center" valign="middle" style="background-color:#eee;"
    align="left" valign="middle"
    align="left" valign="middle"
  • [[HBase]], [[Cassandra]], [[HyperTable]], Accumulo

 

  • Google BigTable

  • Amazon SimpleDB

  • Cloudata

  • Cloudera

  • HPCC

  • Stratosphere

  • Amazon Web Services

  • DataStax
    align="center" valign="middle" style="background-color:#eee;"
    align="left" valign="middle"
    align="left" valign="middle"
  • [[MongoDB]], [[CouchDB]], Riak

  • Couchbase, Scalaris (Memory), ElasticSearch

 

  • RethinkDB

  • RavenDB

  • MarkLogic Server

  • Clusterpoint Server

  • ThruDB

  • Terrastore

  • JasDB

  • 10gen

  • Cloudant

  • Couchbase

  • MarkLogic
    align="center" valign="middle" style="background-color:#eee;"
    align="left" valign="middle"
    align="left" valign="middle"
  • Neo4J

 

  • Infinite Graph

  • Allegro Graph

  • OpenLink

  • HyperGraphDB

  • FlockDB

  • Trinity

  • InfoGrid

  • Sones

  • Bigdata

  • DEX

  • Virtusos

  • GraphBase

  • BrightstarDB

  • Meronymy
    |}

  • NewSQL : VoltDB, Clustrix, Google Spanner (분산 관계형 DBMS on BigTable)

 
 

NoSQL 종류

 

게임사의 환경


 
 
 

{| border="1" cellspacing="0" cellpadding="2" style="width: 100%;" 
|- | style="text-align: center; background-color: rgb(241, 241, 241);" | 용도

| style="text-align: center; background-color: rgb(241, 241, 241);" | 상세 
|- | style="text-align: center;" | 서비스용 |

  • CouchBase : ElasticSearch 연동 모듈이 있음

 
 

|- 
| style="text-align: center;" | 분석용 |

 
 

|}

 

참고 문헌


 
 

[[Category:BigData|Category: BigData]]
분류: NoSQL

최종 수정일: 2024-09-30 12:26:18

이전글 :
다음글 :