DB 진흥원에 기고한 글과 플랫폼을 말하다에 기고한 글에 포함된 NoSQL의 종류와 특징들을 간단히 정리한 표입니다. 이미 많이들 알려져 있고 계속 업그레이드되고 있어 조금씩 차이가 나는 내용들이 있을지도 모르겠네요. 그래도 참고하실 분들이 계실지도 모른다는 생각에 정리해놓은 표만 따로 올려놓도록 하겠습니다.
최근 제 주위에 얘기하는 분위기로는 역시 접근이 좋은 MongoDB를 많이 선호하는 것 같습니다. 더불어 인메모리 키밸류로는 Redis 만한 것이 없다고들 하구요. 최근 네이버 재팬의 Line 의 아키텍쳐가 소개되면서 Redis에 대한 관심도 높아지는 것 같습니다.
초기에는 Cassandra에 대한 얘기들이 많이 있었던 것 같은데 글쎄요 요즘엔 그것도 좀 시들한 것 같습니다. 반면 HBase 는 Hadoop이 업그레이드되고 페이스북 엔지니어들의 노력때문일까요? 지속적으로 업그레이드되어 간다는 생각이 드네요
물론 다 제 주관적인 생각이니까 참고만 하시길 바랍니다. ^^
데이터 모델 |
데이터 스토어 |
구현 언어 |
설명 |
Column/Column |
HBase |
자바 |
하둡 기반에서 동작하고 다양한 하둡 의 도구들과 상호 운영성이 좋고, 수십 테러바이트가 넘는 빅데이터에 적합. 아파치 라이선스 |
Cassandra |
자바 |
구글 BigTable의 데이터 모델과 Dynamo의 분산 기술을 결합해서 구현. 빅데이터에 적합. 아파치 라이선스 |
|
Hypertable |
C++ |
HBase와 마찬가지로 구글의 Bigtable 아키텍처를 기반으로 구현. C++로 구현돼 성능이 매우 뛰어나고 HQL이라는 언어를 제공해 편의성을 높임. 기업을 위한 상용 기술지원 서비스 제공 |
|
SimpleDB |
Erlang |
아마존에서 제공하는 클라우드 기반의 상용 데이터 스토어 |
|
Document |
MongoDB |
C++ |
설치∙개발이 매우 쉽고 매우 빠른 성능을 제공. 많은 곳에서 적용. JSON과 같이 웹서비스 영역에서 많이 활용되는 데이터를 바로 저장∙접근할 |
Couchbase |
C/C++ Erlang |
2011년에 Document 기반의 CoouchDB와 메모리 캐싱 |
|
Key/Value |
Redis |
C |
대표적인 인메모리 기반의 Key/Value 스토어. Memcache 대비 value에 심플한 값뿐 아니라 문자열, 해시, 리스트, 세트 등보다 복잡한 형태의 데이터 정의와 처리가 가능. 단일 데이터형과 작은 사이즈의 경우에는 memcache가 성능이나 구현에 이점이 있으나, 처리할 데이터의 구조가 복잡해질 경우 Redis가 보다 유리하고 높은 성능을 보장 |
Riak |
Erlang, |
아마존의 Dynamo의 논문을 기반으로 구현된 K/V 스토어. Basho Tech에서 개발해 커뮤니티 버전과 기업형 버전을 함께 제공 |
|
Voldemort |
|
아마존의 Dynamo 논문을 기반으로 LinkedIn에서 개발하고 공개. 인메모리 캐싱을 스토리지 시스템과 결합해 |
|
DynamoDB |
Unknown |
최근 아마존이 클라우드 기반으로 DynamoDB를 베타 버전으로 공개. 아마존 클라우드를 사용하고 있는 |
|
Graph |
Neo4J |
C++, |
속성을 가진 노드와 관계 정보(즉, 그래프 또는 네트워크)를 저장∙처리하고 ACID 트랜잭션을 지원하는 데이터베이스. 그래프 데이터베이스는 시멘틱웹에서 곧잘 얘기하는 RDF 정보를 저장∙처리하는 데 최적이라 할 수 있음. 이를 위한 SparQL이라는 질의 도구를 제공. 커뮤니티 버전(GPL)과 기업형 버전(AGPL)이 있음. 한 |
AllegroGraph |
Lisp |
Allegro Common Lisp으로 유명한 Franz에서 개발한 그래프 데이터베이스. 좀 더 정확히 말하면 AllegroGraph RDFStore. Franz의 시멘틱 솔루션 중 |
핑백: NoSQL에 대한 잡다한 생각들.
couchbase 에서 커뮤니티 버전은 node 제한 없이 무료로 사용할 수 있습니다.