Friday, April 25, 2014

NoSql + RDBMS = NewSQL

source: http://www.bloter.net/archives/134607

빅데이터 시대, ‘NewSQL’에 주목하라

 | 2012.11.20

올 한해 진행된 빅데이터 관련 개발자 행사에서 H베이스, 카산드라, 몽고DB, 레디스 등 NoSQL을 다룬 곳이 유독 많았다. 빅데이터가 등장 후 대용량 데이터 처리 방식을 놓고 지금까지 관계형 데이터베이스(RDB) 처리 도구로 잘 써왔던 MySQL로 데이터 처리를 계속할지, 아니면 관계형 데이터 모델과 SQL을 사용하지 않고 데이터를 분산 처리하는 NoSQL을 택할지 국내 데이터베이스 관리자(DBA)나 웹서비스 개발자들이 고민에 빠졌기 때문이리라. 두 기술 모두 대용량 데이터 분산 처리에서 저마다 장단점을 가지고 있어 우열을 가리기가 쉽지 않다.
“지난 9월 구글은 ‘스패너’라는 대용량 데이터 분산 처리 데이터베이스 시스템을 발표했습니다. SQL 안정성과 NoSQL의 유연성을 살린 NewSQL DB 시스템이었지요. SQL과 NoSQL은 이제 함께 발전하고 있습니다.”
고민에 빠진 DBA와 개발자들에게 콜린 찰스 스카이SQL 기술전도사 겸 MySQL 개발자가 제시한 해답은 간단했다. “둘 다 선택할 것.” 그는 어느 한 쪽 기술에만 집중해 서비스를 운영하기보다는 두 기술을 적절히 융합해 활용하는 게 가장 좋다고 답했다.
NewSQL은 NoSQL처럼 높은 확장성과 성능을 갖춘 RDB를 일컫는다. SQL을 지원하고, SQL이 트랜잭션 데이터를 처리하기 위해 기업이 갖추고 있어야 할 4가지 속성인 ACID(Atomicity, consistency, isolation, durability) 등록정보를 준수한다. 여기에 NoSQL의 특징인 확장성과 유연성을 데이터베이스 관리 시스템(DBMS) 더했다. SQL과 NoSQL에서 장점만 뽑아 결합한 셈이다.
겉보기엔 초등학생도 내놓을 수 있을 것 같은 쉬운 해답으로 비칠 수 있다. 그러나 SQL과 NoSQL이 걸어온 길을 조금이라도 이해한다면 이 두 기술을 융합해 활용한다는 게 결코 쉬운 일이 아니란 걸 안다. 전세계에서 가장 많은 데이터를 다루는 기업 중 한 곳인 구글이 왜 올해가 돼서야 SQL과 NoSQL을 융합한 기술을 발표했겠는가. SQL은 1970년대 등장한 오래된 기술이고, NoSQL은 2004년 구글이 발표한 맵리듀스 관련 논문에서 나온 개념인데 말이다.
콜린 기술전도사 설명에 따르면, NoSQL이 등장하기 전만 해도 기업은 SQL이 데이터를 저장하는 데 최적인 기술로 믿었다고 한다. SQL이 ACID 등록정보를 시스템 내에 갖추고 있는 것도 한몫했다. 그러나 사진, 동영상, 검색 로그 같은 비정형 데이터가 등장하면서 상황이 바뀌었다.
“처음엔 SQL의 편의성 때문에 기업들이 다른 DB 시스템에는 눈길도 주지 않았습니다. 그러나 시간이 흐르고 사회관계망 서비스(SNS) 데이터 등 SQL로 처리하기 어려운 비정형 데이터가 등장하면서 DB 시스템에 변화가 생겼지요.”
개발자들은 자연스레 비정형 데이터를 더욱 쉽게 처리하고 저장하는 구조를 가진 NoSQL DB로 눈을 돌렸다. NoSQL은 ‘Not Only SQL(SQL뿐만 아니라)’에서 따온 말답게 기존 정해진 틀이 잡혀 있는 SQL에서 벗어나 분산 아키텍처의 확장성, 유연성 등을 장점으로 내세우며 데이터 분산 처리 시 필요한 기술로 자리잡기 시작했다. NoSQL이 대부분 오픈소스 프로젝트로 저렴한 비용으로 데이터를 처리할 수 있다는 점도 인기를 끌었다.
“게다가 구글, 페이스북, 트위터 같은 회사들이 NoSQL을 강조하자, 마치 IT 유행처럼 NoSQL 열풍이 불었습니다. 너도나도 NoSQL DB를 발표했지요. NoSQL은 SQL과 다른 노선으로 발전하기 시작했습니다.”
콜린 지식전도사 설명에 따르면 서로 다른 기술로 발전해 영원히 만나지 않을 것 같은 두 기술은 NoSQL이 한계를 드러내면서 새로운 국면을 맞이했다.
“NoSQL은 뛰어난 확장성을 갖고 있지만, 스키마 변경이 불가능해 막상 데이터에 문제가 생겼을 때 이를 감지하는 게 어렵습니다. 여기에 SQL과 같이 정해진 언어가 없는데다가 도큐먼트 스토리지 기반으로 돼 있어 레코드를 개발해 본인들이 직접 넣어야 하는 식이다 보니 개발자들로부터 ‘다루기 어렵다’라는 말이 나오기 시작했지요.”
기존 SQL 기반의 RDB 장점을 포용하고, 확장성과 유연성 등 NoSQL의 장점을 가미한 NewSQL이 등장한 배경이다. NewSQL DB는 대규모 트랜잭션을 감당할 수 있는 분산처리기술과 분산 아키텍처의 확장성을 두루 갖출 수 있게끔 설계됐다. 구글 스패너를 비롯해 마리아DB, 저스트원DB, 드리즐, 지니DB가 NewSQL DB로 자리 잡았다.
“물론 NewSQL 등장으로 SQL과 NoSQL이 사라질 거라고는 생각하지 않습니다. NewSQL 역시 DB 처리 방식 기술 중 하나가 되겠지요. 다만 대용량 데이터를 다루는 사람이라면 각 기술의 장점이 고루 융합된 NewSQL을 눈여겨볼 필요가 있다고 생각합니다.”

No comments:

Post a Comment