2011년 10월 12일 수요일

여러 가지 NoSQL DB 비교 자료 및 의견

요즘 한창 인기가 있다 보니 너무도 다양한 방식의 NoSQL DB들이 나옵니다. 대표적인 RDBMS 업체인 Oracle에서도 NoSQL을 한다니 말 다했죠. 그만큼 현재 기술 흐름에서 NoSQL이 꼭 필요한 기술임에는 틀림 없습니다… 다만… 처음 접하시는 분들은 “아니 그게 뭔데?” 부터 시작하겠죠?

그런 분들은 우선 대표적인 MongoDB 나 Membase 를 사용해보시던가, 자료를 읽어보시기 바랍니다. 기존 RDBMS 와의 차이를 보실 수 있습니다.

여기서는 다들 NoSQL 이라고 하는데 (Wikipedia 참고하시면 더 많습니다만…), 너무 많아 특징을 분석하기가 힘듭니다. 그리고, 자신이 필요로 하는 기능을 가진 제품이 자신이 적용하고자 하는 환경을 지원하는지도 다 파악하려면, 지레 겁 먹을 수 있겠죠?

여러 NoSQL DB 비교 (http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis) 사이트를 참고하시면, 어렴풋이나마, 난 어떤 것을 사용해 보면 좋을 것 같다고 느끼실 수 있습니다. (물론 NoSQL DB의 필요성에 공감을 해야지요)

대략 보시면 CouchDB 는 MDM 에 알맞고, Redis 는 Log, Cache, ETL 등에 알맞고, MongoDB 는 팔방미인이고, Membase는 메모리 기반이므로, 속도는 빠르고, 용량이 작은 분야에 적용하고… 뭐 그런 내용들입니다…

제가 실전에 쓴 것은 현재까지 Membase와 MongoDB 두 가지 입니다만, 앞으로 Redis 를 실전에 적용하기 위해, 테스트 중입니다.

Membase 는 소규모 웹 사이트의 ViewState, OutputCache, Session 정보 및 Data Cache 용으로 주로 사용하였고,
MongoDB는 위의 Data Cache 뿐 아니라, 대용량 파일 저장소로도 사용하였고, ETL 변환 작업에서도 사용하였습니다. (내부에서는 javascript 로)
Redis 는 실시간 Data 전송이 아주 많은 곳에 사용하려고 합니다. 실시간 Data 수집 및 분석 시에는 Redis 처럼 메모리에서 처리하고, 용량이 큰 파일 같은 것은 따로 처리 할 수 있으면 좋겠지요…

좀 다른 얘기지만, 2011년 8월 기준으로 NoSQL Job Trends (http://css.dzone.com/news/nosql-job-trends) 라고, 어떤 NoSQL을 다룰 줄 아는 사람에 대한 일자리 비율입니다. 3군데 자료가 좀 다르지만, 대부분 MongoDB 가 압도적이고, Canssandra와 Redis 가 뒤를 쫒고 잇는 형국입니다.

물론 제가 아예 관심을 두지 않는 HBase, Hadoop 관련은 논외로 했습니다. 이쪽 분야에는 제가 문외한이라서요^^

댓글 없음: