이 글은 NewSQL이라는 용어에 대해 정리한 것이다.
1. NewSQL 개요
최근 인터넷과 스마트폰의 폭발적인 성장으로 인해 용량이 크고 다양한 속성의 데이터가 늘어나면서 기존의 RDBMS와 NoSQL로 처리하는 데에는 한계가 나타나게 되었다. 그래서 대용량 데이터 처리와 높은 수준의 데이터 정합성이 필요로 하는 분야에서는 NewSQL이 부상하고 있다.
기존 RDBMS와 NoSQL의 한계는 이러한 것들이 있다. RDBMS의 경우에는 대용량 데이터로 인한 데이터 워크로드가 발생하여 성능을 초과할 수 있으며, 데이터웨어하우스에서도 처리 시간이 일반적으로 수십 분이라서 실시간 분석에 적합하지 않는다는 문제가 있다. NoSQL의 경우에는 트랜잭션 기능을 지원하지 않아 높은 수준의 데이터 정합성이 필요한 분야에서는 사용할 수 없으며, SQL과 같은 표준 언어가 없다는 문제가 있다.
다시 말해서, 대규모 트랜잭션을 감당할 수 있는 분산 처리 기술과 분산 아키텍처의 확장성을 갖춘 새로운 분산 데이터베이스 시스템이 필요로 하게 되었다. 이러한 필요성 때문에 RDBMS의 트랜잭션 기능을 포용하고, NoSQL의 확장성과 가용성을 갖춘 NewSQL이 등장하게 되었다.
2. NewSQL 정의
NewSQL이라는 용어의 정의는 451 그룹과 스톤브레이커 교수가 언급한 내용이 많이 사용된다.
451 그룹의 정의
RDBMS 과점에서 SQL 지원, ACID 준수, 성능 개선을 가지고 NoSQL의 특징인 확장성과 가용성을 갖춘 DBMS |
스톤브레이커 교수의 정의
SQL 기반 상호 작용, 트랜잭션에 대한 ACID 지원, 비공유 구조, 비잠금 동시성 제어, Node 단위의 고성능을 갖춘 DBMS |
*용어 정리
-SQL 기반 상호 작용 : 서버와 응용프로그램은 SQL 언어로 상호 작용한다는 의미 -비공유 구조 : CPU, RAM, DISK 같은 하드웨어 자원을 서로 공유하지 않고 개별적으로 사용한다는 의미 -비잠금 동시성 제어 : 락을 걸지 않고 단일 스케줄을 통해 동시성 제어를 한다는 의미 -Node 단위의 고성능 : 네트워크를 통한 처리가 없다는 의미하고 Node 단위로 확장하여 성능을 높일 수 있어서 성능이 좋아짐 |
3. RDBMS, NoSQL, NewSQL 비교
구분 | RDBMS | NoSQL | NewSQL |
Scale-out | X | O | O |
HA | X | O | O |
Replication | X | O | O |
Performance | X | O | O |
SQL 지원 | O | X | O |
Relational | O | X | O |
Join | O | X | O |
ACID | O | X | O |
4. NewSQL 솔루션
DB명 | Spanner | VoltDB | MySQL Cluster | ScaleDB | Drizzle | ClustrixDB | MemSQL | NuoDB |
회사명 | | VoltDB | Oracle | ScaleDB | Drizzle | Clustrix | MemSQL | NuoDB |
라이선스 | 독점 | 오픈소스 | 오픈소스 | 오픈소스 | 오픈소스 | 독점 | 독점 | 독점 |
최초버전 | 2012.9 | 2010.5 | 2005.6 | 2009.5 | 2008 | 2010 | 2012.6 | 2012.11 |
최종버전 | ? | 5.1(2015.3) | 7.4.8(2015.10) | 15.10(2015.10) | 7.2.4(2012.9) | 7.0(2015.8) | 4.1(2015.9) | 2.3.3(2015.10) |
스토리지 | FILE | RAM | HYBRID | FILE | FILE | SSD | RAM | FILE |
파생 DB | 자체개발 | H-Store | MySQL 5.0 | MySQL 6.0 | MySQL 6.0 | 자체개발 | 자체개발 | 자체개발 |
맵리듀스 | YES | YES | NO | ? | YES | NO | NO | ? |
공간연산 | ? | NO | YES | ? | NO | NO | ? | NO |
5. 구글의 NewSQL 그리고 오픈소스 진형
빅데이터 기술들은 구글의 논문으로부터 시작되었다. 구글은 빅데이터 환경에서 트랜잭션을 처리하기 위해 2012년에 새로운 분산 데이터베이스인 Spanner를 공개하였다. Spanner는 빅데이터 환경에서 NoSQL을 사용할 수 없는, 이를테면 트랜잭션 처리가 필요한 통신, 인터넷서비스, 유비쿼터스, 금융, 실시간 처리 등의 분야에서 사용되고 있거나 적용될 예정이다.
구글의 NewSQL 공개로 인해 오픈소스 진형에서도 변화가 생길 것으로 예상이 된다. 먼저 기존의 변화에 대해 정리한 자료는 다음과 같다.
구분 | | Apache | 설명 | ||
파일 시스템 | 2003년 | GFS | 2006년 | HDFS | 분산 파일 시스템 |
2010년 | Colossus | ? | ? | GFS 단점 보완 | |
데이터 처리 | 2004년 | MapReduce | 2006년 | MapReduce | 분산병렬처리 |
2005년 | Sawzall | 2008년 | Pig, Hive | 빅데이터 쿼리(일괄처리) | |
2009년 | Pregel | 2012년 | Giraph | 대규모 그래프 데이터 처리 | |
2010년 | Dremel | 2012 | Impala | 실시간 빅데이터 쿼리 | |
2014 | Drill | ||||
데이터베이스 | 2006년 | BigTable | 2008년 | Hbase | Schemaless NoSQL DB |
2012년 | Spanner | ? | ? | 빅데이터 트랜잭션 처리 | |
서버 관리 | 2006년 | Chubby | 2008년 | Zookeeper | 서버 락(Lock) 서비스 |
구글의 Spanner 공개로 오픈소스 진형에서도 곧 Spanner를 모방한 오픈소스 프로젝트가 진행될 것으로 예상이 된다. 이렇게 추측하는 이유는 위의 표에서 보는 바와 같이 구글이 빅데이터 처리를 위한 기술을 발표할 때마다 곧이어 오픈소스 프로젝트가 진행되었기 때문이다.
6. 마무리
NewSQL에 대한 대략적인 특징을 살펴보았고, 이러한 특징으로 인해 NewSQL이 RDBMS와 NoSQL 보다 뛰어난 점이 있다는 것을 알아보았다. 하지만 모든 면에서 뛰어난 것은 아니며 단점도 존재할 것이다. 예를 들어 NewSQL의 SQL은 다른 RDBMS와 NoSQL에 비해 복잡하다.
다양한 장점을 갖춘 NewSQL이 나왔다고 해서 RDBMS나 NoSQL이 없어지는 일은 없을 것으로 생각이 되며, 각자가 필요한 분야에서 발전할 것이다.
Posted by Bitnine(비트나인)
'ARCHIVES' 카테고리의 다른 글
빅데이터와 잘 맞는 RDBMS '스플라이스 머신'... 이유는? (0) | 2015.12.10 |
---|---|
PgConf.China 2015 (0) | 2015.11.25 |
Ajax 뒤로가기 문제해결 방안 (0) | 2015.11.13 |
PostgreSQL 9.4 공식 가이드 Vol.1 서버 관리 (0) | 2015.11.03 |
JavaScript 문장 끝의 ;에 대해 (0) | 2015.10.16 |