NoSQL 개요 2012. 4. 23. 콘텐츠서비스연구팀 최완
발표순서 I. NoSQL 개요 II. NoSQL 출현 배경 III. NoSQL 구조적 특징 IV. NoSQL 주요 솔루션 VI. NoSQL 활용 시 주의사항
1. NoSQL 개요 정의 특징 Not Only SQL(No SQL) 비 구조적인 데이터를 저장하기 위한 분산 저장 시스템 분산 환경 지원 Call Level Interface 지원(DBMS에 접근하는 표준) 막대한 양의 데이터를 처리할 수 있는 대용량 데이터의 빠른 인덱싱 수평적 확장(Horizontal Scaling) 또는 Scale-out 형태로 Scalability를 만족 데이터의 Schema와 속성들을 동적으로 정의 Join 미지원으로 인한 데이터 조합 미지원
2. NoSQL 출현 배경 데이터 쓰나미 데이터 저장소의 확장성에 대한 요구 증가 대용량 데이터 처리에 불필요한 기능 40 billions Web page, 55 trillions Web link 데이터의 엄청난 증가로 RDBMS의 수용 능력을 벗어남 데이터 저장소의 확장성에 대한 요구 증가 Scale up 방식이 아닌 Scale out 방식 요구 대용량 데이터 처리에 불필요한 기능 UPDATEs and DELETEs and JOIN ACID Transactions Fixed Schema ACID vs. BASE Atomic, Consistency, Isolation, Durability Basically Available, Soft-state, Eventually consistent
3. NoSQL 구조적 특징 단순한 데이터 모델 Schema Free 대용량 데이터 지원 Key/value, Document 기반, Simple Column 모델 Schema Free 대용량 데이터 지원 다수의 저가 x86 서버로 구성 데이터 파티션 및 복제 Eventually consistent / BASE (not ACID) Simple API 범용적인 용도가 아닌 제한된 용도
4. NoSQL 주요 솔루션(1/2) 종류도 다양하며 솔루션도 많은 수가 있음 http://nosql-database.org/ Wide Column Store / Column Families Hbase, Cassandra, Hypertable, Cloudata, Amazon SimpleDB, SciDB, Stratosphere Key Value / Tuple Store MEMBASE, Riak, Redis, Chordless, GenieDB, Scalaris, Tokyo Cabinet / Tyrant Scalien, Berkeley DB, MemcacheDB, Hibari, HamsterDB, Pincaster, RaptorDB Object Databases Db4o, Versant, Objectivity, Starcounter, Perst, ZODB NEO, PicoLisp, Sterling, Morantex 종류도 다양하며 솔루션도 많은 수가 있음
4. NoSQL 주요 솔루션(2/2) 많은 업체에서 사용중인 일반화된 기술이며 한가지 이상을 사용 트위터 페이스북 야후 Hbase, Cassandra, Hadoop, Scribe, FlockDB, Redis 페이스북 Hbase, Cassandra, Hadoop, Scribe, Hive 야후 Hadoop, OpenTSDB Netflix Amazon Simple DB, Cassandra 많은 업체에서 사용중인 일반화된 기술이며 한가지 이상을 사용
5. NoSQL 주요 솔루션 벤치마크 가장 대표적인 4개 솔루션의 벤치마크 결과
6. NoSQL 활용 시 주의사항 데이터 저장을 위한 많은 솔루션이 존재 적절한 솔루션 선택 시스템의 데이터 속성과 요구사항을 파악(CAP, ACID/BASE) 적절한 솔루션 선택 반드시 운영 중 발생할 수 있는 이슈에 대해 검증 후 도입 필요 대부분의 NoSQL 솔루션은 베타 상태(섣부른 선택은 독) NoSQL 솔루션에 대한 안정성 확보 솔루션의 안정성은 검증이 필요하며 현재의 DBMS 수준의 안정성은 지원하지 않음 반드시 안정적인 데이터 저장 방안 확보 후 적용 필요 처음부터 중요 시스템에 적용하기보다는 시범적용 필요 선정된 솔루션 검증, 기술력 내재화 저장소의 경우 직접 개발 할 필요도 있음 많은 인터넷 업체에서 개발/사용하고 있는 저장소를 공개 NoSQL의 경우 다양한 오픈소스가 발표되는 원인이기도 함
Q & A