[디지털데일리 심재석기자] NoSQL은 클라우드 컴퓨팅의 급격한 부상과 함께 관심을 얻기 시작한 데이터관리 기술이다. 기존의 관계형 데이터베이스관리시스템(RDBMS)은 비용과 확장성 면에서 클라우드 컴퓨팅에 적용하기 어렵기 때문에 더 적은 비용으로 더 많은 데이터를 처리할 수 있도록 고안한 것이다.
물론 RDBMS는 20년 동안 발전해 오면서 데이터 무결성과 정합성을 제공하는 거의 완벽한 시스템으로 성장했다. 기업의 회계정보, 고객정보, 제품 정보 등 핵심(미션 크리티컬) 정보들은 당연히 RDBMS에 담겨야 한다.
그러나 NoSQL 지지자들은 “모든 정보를 다 RDBMS에 담을 필요는 없다”고 주장한다. 그들은 “한 두 건 사라져도 아무도 모를 데이터에 RDBMS를 적용하는 것은 과잉대응”이라고 생각한다.
특히 클라우드 컴퓨팅처럼 수천, 수만 대의 서버로 이뤄진 분산 환경에 RDBMS는 적합치 않다고 강조한다.
이들이 클라우드 컴퓨팅에 RDBMS가 적합치 않다고 보는 대표적 이유는 확장성의 한계다. 클라우드 컴퓨팅은 기본적으로 페타바이트 수준의 데이터 처리를 전제하고 있다. 이를 대용량 서버 몇 대에 나눠 두고 오라클 RAC로 분산처리 할 경우 어마어마한 비용이 든다. 또 오라클 RAC 등 전통적인 RDBMS는 노드(node)의 확장에 한계가 있다.
반면 NoSQL은 무한의 확장성을 제공한다. 이를 위해 NoSQL 데이터베이스는 단순한 키와 값의 쌍으로만 이루어져 있다. 인텍스와 데이터가 분리돼, 별도로 운영된다. 또 조인(join, 2개 이상의 테이블을 연결해 데이터를 검색하는 방법)도 없고, 고정된 스키마를 갖지 않는다.
그러나 NoSQL은 RDBMS처럼 데이터 무결성, 정합성을 보장해주지는 못한다. 어느 날 갑자기 데이터가 사라질 수도 있다는 것이다. 이 때문에 NoSQL을 기업의 핵심 업무에 이용하는 것은 불가능하다. 핵심 업무에는 RDBMS를 사용하되, 중요치 않으나 데이터 양이 많고 급격히 늘어나는 시스템에는 NoSQL을 사용할 수 있다.
NoSQL의 대표주자는 구글의 빅 테이블이다. 빅 테이블은 구글에서 개발한 분산 데이터 관리 시스템으로, 수백, 수천 대의 값싼 하드웨어 장비를 이용해 페타바이트 이상의 반구조화된(semi-constructed) 데이터를 처리할 수 있다. 빅 테이블은 구글 어쓰(Earth), 파이낸스, 애널리틱스, 개인화 검색 등에 적용돼 있다.
이 외에 HBase, 카산드라, 몽고DB 등이 오픈소스 프로젝트되는 NoSQL 솔루션이다. 국내에도 빅 테이블을 기반으로 구현된 클라우데이터(www.cloudata.org)라는 프로젝트가 있다.
클라우데이터 프로젝트를 이끌고 있는 그루터의 김형준 아키텍트는 “NoSQL은 아직 완벽한 기술이 아니기 때문에 기업이 모든 업무에 적용할 수는 없다”면서도 “백업 등의 보완장치를 마련한 후 비핵심 업무에 적용하면 클라우드 환경에서 비용절감, 확장성 확보라는 NoSQL의 이점을 활용할 수 있다”고 말했다.