NoSQL 데이터베이스 분류와 제품들 – SQL 없는 데이터베이스
NoSQL은 SQL이 필요없는 데이터베이스로 여러 가지 분류와 제품을 살펴보세요.
NoSQL 분류와 제품
Horseless Carriage = NoSQL DB
이제 데이터베이스 분야는 RDBMS에만 머물지 않고 NoSQL 분야까지 범위가 확장되고 있습니다.
최근 몇 년 사이에 NoSQL 덕분에 새로운 데이터베이스가 50개 에서 150개 까지 늘어났습니다.
nosql-database.org 사이트에서는 이러한 새로운 데이터베이스들을 다양하게 소개하고 있으니 자세한 내용이 궁금하신 분들은 방문해 보세요.
오래 전 자료 이긴 하지만 Steven Yen 이 발표한 “NoSQL is a Horseless Carriage ( NoSQL 은 말이 없는 마차다)”라는 자료에서 언급한 NoSQL 분류 기준 따라 제품들을 정리하였습니다.
“Horseless Carriage”는 “말이 없는 마차” 라는 의미입니다. 지금은 Car (자동차) 라는 단어로 쓰이고 있습니다.
NoSQL이 SQL이 없는 데이터베이스를 의미하는 것처럼 NoSQL를 잘 전달하기 위한 좋은 아이디어라고 생각됩니다.
기존의 RDBMS 는 데이터베이스 + SQL(인터페이스) 로 생각해보면 NoSQL (Not Only SQL) 은 SQL 인터페이스가 아닌 데이터베이스라고 할 수 있을 것입니다.
RDBMS의 확장은 아직도 미지수?
가상화 환경에서 웹서버와 WAS 의 Scale Out 은 더욱 효율적으로 운영될 수 있게 되었지만 기존의 데이터베이스 성능의 병목은 해결하기 어려운 문제로 남아 있습니다.
NoSQL 제품들은 데이터베이스 성능을 보완할 수 있는 새로운 계층을 제공하여 고가의 데이터 인프라에 투자하지 않고도 효율적으로 해결할 수 있는 방안을 제공합니다.
Steve Yen 이 분류한 NoSQL 의 종류
Steve Yen 이 분류한 NoSQL 의 종류들은 다음과 같습니다.
- key‐value‐cache
- key‐value‐store
- consistent key‐value‐store
- ordered‐key‐value‐store
- data‐structures server
- tuple‐store
- object database
- document store
- wide columnar store
위의 분류에 따라 간단하게 제품들을 정리합니다.
분류 | 제품 | 설명 |
Key-value-cache | Memchaced | Memcached is an in-memory key-value store for small chunks of arbitrary data |
Repcached | repcached는 memcached에 데이터 복제 기능을 추가 구현 | |
Coherence | Oracle의 Data Grid 제품 | |
Infinispan | 오픈소스 Data Grid 제품으로 RedHat의 JBoss Data Grid 로도 유상 서비스로 구매 가능 | |
WebSphere eXtreme Scale | IBM의 Data Grid 제품 | |
JBoss Cache | Infinispan의 이전 제품명 | |
Velocity | Microsoft 의 캐시 제품 | |
Teracotta | Terracotta는 각 캐시 노드들의 Hub 역할을 하는 분산 캐시 서버 | |
key-value-store | Keyspace | Keyspace is a consistently replicated, fault-tolerant key-value store |
FLARE | Flare는 memcached 호환 분산 key-value 스토리지 서버 | |
RAMCloud | Designed primarily for usage within a datacenter | |
Roma | Ruby 에서 분산 Key-Value Store | |
eventually‐consistent | dynamo | 아마존 웹서비스(AWS)에 NoSQL 데이터베이스(DB) |
Project Voldemort | 분산 Key-Value 저장 시스템 | |
dynomite | Erlang 으로 작성된 Dynamo를 복제한 오픈소스 | |
SubRecord | SubRecord is a Distributed, scalable, non-relational, attribute-oriented storage supposed to be used in the cloud | |
DovetailDB | DovetailDB is a schemaless, JSON-based database. It is similar in spirit to Amazon ‘s SimpleDB | |
MemcacheDB | MemcacheDB is a Distributed Key-value storage system designed for persistent | |
Orderd-key-value-store | tokyo Tyrant | Tokyo Tyrant is a package of network interface to the DBM called Tokyo Cabinet |
LightCloud | LightCloud는 Tokyo Cabinet / Tokyo Tyrant를 백엔드에 사용하는 분산 key-value 데이터베이스 | |
nmdb | nmdb is a network Database (dbm-style) for controlled networks | |
Lux IO | Lux IO is a yet Another fast Database Manager | |
actord | ||
Data-structures server | redis | Redis is an Advanced Key-value store. It is similar to memcached but the dataset is not volatile |
Tuple-store | GigaSpaces eXtreme Application Platform | The Scalable, High Performance Application Server for High-End Distributed Applications |
coord | coord is an Open Source Implementation of a SBA (Space-based Architecture) built on DHT (Distributed Hash Table) | |
Apache River | A Project furthering the Development and advancement of Jini Technology | |
Object database | Zope Object Database | The ZODB is a persistence System for python Objects |
db4objects | Java/.NET에 네이티브 db4o를 통합하면 손쉽게 저장 | |
Project Shoal | Shoal is a Java based scalable dynamic clustering Framework that Provides Infrastructure to build fault tolerance, reliability and availability. | |
Document store | CouchDB | Apache CouchDB is a document-oriented database that can be queried and indexed in a MapReduce fashion using JavaScript |
mongo | The Best Features of document databases, key / values stores, and RDBMSes in one | |
Jackrabbit | Apache Jackrabbit is a Fully conforming Implementation of the Content Repository for Java Technology API | |
ThruDB | Thrudb is a SET of simple Services Built on top of the 아파치 Thrift Framework that Provides indexing and document Storage Services for Building and scaling WebSites | |
CloudKit | CloudKit Provides schema-free auto-versioned, RESTful JSON storage with optional OpenID and OAuth support, including OAuth Discovery | |
Persevere | Persevere helps you rapidly Develop data-driven JavaScript-based rich internet applications | |
Riak Basho | Riak combines a decentralized Key-value store, a flexible map / reduce engine, and a friendly HTTP / JSON query interface to provide a database ideally suited for Web applications | |
Scalaris | Scalaris is a scalable, transactional, distributed key-value store. It can be used for building scalable Web 2.0 services | |
Wide columnar store | bigtable | Bigtable is a Distributed Storage System for Managing Structured data that is Designed to scale to a very Large Size |
HBase | HBase is the Hadoop Database. Use it when you need random, realtime read / write access to your Big Data | |
cassandra Project | Cassandra is a highly scalable, eventually consistent, distributed, structured key-value store | |
Hypertable | In a web-driven world, datasets are larger than ever before – with “web scale” becoming the term of choice to describe the ultimate size of problems | |
kai | Kai is a Distributed Key-value datastore, which is mainly inspired by Amazon ‘s Dynamo | |
OpenNeptune | Neptune is Another Open Source Project Implementing Google’s Bigtable |
References & Related Links
- nosql-database.org – http://nosql-database.org/
- A Yes For A NoSQL Taxonomy – http://highscalability.com/blog/2009/11/5/a-yes-for-a-nosql-taxonomy.html
- NoSQL is a Horseless Carriage – http://dl.dropboxusercontent.com/u/2075876/nosql-steve-yen.pdf
JBoss Data Grid 데모 – 빠른 시작 가이드
/in JBoss, Tech Talk/by 오픈마루 마케팅3NoSQL 데이터베이스 분류와 제품들 – SQL 없는 데이터베이스
/in JBoss, Tech Talk/by 오픈마루 마케팅3JBoss Data Grid PostgreSQL Cache Store 사용하기
/in JBoss/by 오픈마루 마케팅3