본문 바로가기
정보관리기술사

(IT 이슈) NoSQL 최신 데이터베이스 동향

by 정보봇따리 2020. 11. 25.
728x90
반응형
SMALL

Ⅰ. NoSQL 데이터베이스의 특성
가.NoSQL(Not Only SQL) 특징
1. 관계형 모델을 사용하지 않음 (Not Using the relational model)
2. 클러스터에서 잘 동작함 (Running well on clusters)
3. 대부분 오픈 소스임 (Mostly open-source)
4. 21세기 웹 환경을 위해 구축됨 (Built for the 21st century web estates)
5. 스키마가 없음 (Schema-less)
나.NOSQL 이론
1. NoSQL은 분산 처리 구조를 가지며 CAP 이론이 적용 됨
-일관성(consistency):
-가용성(availability):
-분할 용인(partition tolerance):
2. NoSQL 시스템은 ACID 속성 대신에 BASE 속성을 따른다.
-기본적으로 확장적 (Basically Available)
-소프트 상태(Soft state)
-결국 일관적(Eventually consistent)

Ⅱ. NoSQL 데이터베이스 시스템
가. 키-값 저장소
- 키/값(Key/Value) 쌍을 지원
- Memchahed, Redis, 아마존의 Dynamo, 볼드모트(Voldemort), 오라클의 버클리 DB
나. 넓은 컬럼 저장소(또는 컬럼 패밀리)
- 키/밸류 저장소의 확장 개념으로, 밸류에 컬럼 패밀리 형태(열의 확장 개념)를 사용
- Cassandra, Hbase, Hypertable, Accumulo
다. 문서 저장소
- 하나의 키에 하나의 값(문서), xml, JSON
- MongoDB, CouchDB, Couchbase, Amazon, DyanmoDB, OrientDB
라.그래프 데이터베이스
- 그래프 형태의 데이터를 저장
- Neo4j, InfiniteGraph, Titan, ArangoDB, Trinity

Ⅲ. NoSQL 데이터베이스 성능 비교 동향
- 다양한 종류의 NoSQL 데이터베이스 시스템들로 어떤 NoSQL 시스템이 더 적합한지 결정하는 것을 어려움. 벤치마크 및 가이드라인 존재
- 개발자의 익숙함과 수행해야 할 작업의 유형에 따라 NoSQL 데이터베이스를 결정할 것을 권함

가. 야후 클라우드 서빙 벤치마크 (YCSB, Yahoo! Cloud Serving Benchmark)
- 읽기-집중 워크로드, 쓰기-집중 워크로드, 스캔 워크로드 등의 패키지를 제공하며, “50/50 읽기/업데이트”와 “95/5 읽기/업데이트” 가 많이 사용
1. 50/50 읽기/업데이트
- 업데이트 중심의 테스트 케이스
2. 95/5 읽기/업데이트
- 읽기 중심의 테스트 케이스
나. NoSQL 데이터베이스 성능 비교
- 업데이트 중심시, 카산드라(Cassandra)는 쓰기에 최적화, Sherpa와 MySQL은 비슷, HBase 는 쓰기 시에는 가장 낮은 지연율
- 읽기 중심시, HBase 일관적, MySQL 가장 좋은 성능, 카산드라는 읽기에서 높은 효율, Sherpa도 낮은 읽기 지연율
- 수행 유형, 인메모리인 경우 등 상황에 따라 성능이 다르게 평가됨
다. 그래프 데이터베이스 성능 비교
- 그래프 데이터베이스는 연결된 데이터라는 저장 특성 때문에 다른 분류의 NoSQL 데이터베이스와의 직접적인 비교가 어려움
- 구조에서 깊이가 4이상의 되는 탐색을 포함하는 질의의 경우 그래프 데이터베이스인 Neo4j가 좋은 성능
- 다만, 실제 그래프 데이터를 이용한 PageRank의 경우 RDBMS인 MySQL의 성능이 월등히 좋음

라. NoSQL 데이터베이스 선택을 위한 가이드라인
1. 키-값 저장소
- 세션 정보, 사용자 프로파일, 선호도, 쇼핑 카트 데이터
- 데이터의 질의가 필요하거나, 저장되는 데이터들이 관계를 가지고 있거나, 동시에 여러 키들을 다루어야 하는 경우 비추천
2. 문서 저장소
- 내용 관리 시스템, 블로깅 플랫폼, 웬 분석, 실시간 분석, e커머스
- 복잡한 트랜잭션이나 다양한 집계 구조에 반하는 질의를 필요로 하는 시스템의 경우 비추천
3. 컬럼 패밀리 데이터베이스
- 내용 관리 시스템, 블로깅 플랫폼, 카운터의 유지, 사용의 만료, 로그 집계 같은 과도한 쓰기 볼륨에 유용
- 초기 개발 단계이거나 질의 패턴이 변화는 시스템에서는 비추천
4. 그래프 데이터베이스
- 소셜 네트워크, 공간 데이터, 물건이나 돈을 위한 라우팅 정보, 추천 엔진
- 연결된 데이터가 필요한 문제들에 매우 적합

728x90
반응형
LIST