반응형
반응형

'구글 스패너'···막 오르는 SQL 데이터베이스 새 시대 


 원문보기: http://www.ciokorea.com/news/34274


전통적인 데이터베이스를 확장할 때에는 일반적으로 샤딩(sharding)이라는 프로세스가 사용된다. 데이터를 여러 개의 소규모 데이터베이스로 쪼갬으로써 부하를 분산하는 방식이다. 2005년 당시에 애드워즈를 구동하는 데이터베이스는 샤딩을 한 번 다시 하려면 몇 년이 걸릴 정도로 방대해지고 있었다. 새로운 데이터베이스가 필요했고 구글은 직접 구축에 나섰다.


이처럼 구글이 애드워즈 처리를 위해 구축했던 데이터베이스가 스패너(Spanner)라는 제품으로 최근 일반에 공개됐다. 최근 새로운 데이터베이스들이 잇달아 출시되고 있는 가운데 스패너도 합류한 것이다. 최신의 데이터베이스들은 전통적인 관계형 SQL데이터베이스와 비슷하지만 방대한 규모로의 확장성은 훨씬 뛰어나다. 기존의 SQL에 새롭다는 의미의 형용사(New)를 결합해 NewSQL이라고 불리곤 한다.


데이터베이스 시장의 움직임을 주시하는 전문가들은 NewSQL 데이터베이스가 언젠가는 오라클, IBM, 마이크로소프트 등의 거물급 데이터베이스 제품들과 치열한 경쟁을 벌이게 될 것이라고 보고 있다.


스패너란 어떤 제품? 

구글의 스패너는 여러 요건을 충족시키기 위해 등장했다. 한편으로는 방대한 규모로 확장성이 필요했고 다른 한편으로는 전 세계 데이터센터로의 분산도 필요했다. 아울러, 구글은 데이터베이스 프로그래밍 언어의 대표격인 SQL을 사용하는 관계형 데이터베이스를 원했고 여기에 낮은 지연시간과 매우 높은 신뢰성이라는 조건도 추가했다. 구글은 10년 가까운 개발 노력 끝에 2012년 스패너와 이를 구글 내에서 이용한 사례를 소개한 연구 논문을 발표했다.


그 후 몇 년에 걸쳐 구글은 스패너를 자사 클라우드 플랫폼에서 제공되는 데이터베이스로 개발하는 작업을 진행했다. 마침내 올해 초 스패너의 초기 베타 버전이 등장했다.

스패너는 구글의 클라우드에 호스팅되는 분산형 데이터베이스로서 전 세계적인 일관성과 확장성이 특징이다. 이는 데이터 접근이 필요한 최종 사용자와 가깝게 데이터가 존재할 수 있도록 스패너의 인스턴스(instance)가 전 세계 곳곳에 위치할 수 있는 동시에 데이터베이스의 각 복사본은 동일하다는 것을 의미한다. 말은 쉽지만 결코 쉽지 않은 특징이다.


구글 클라우드 내에는 스패너 운용에 필수적인 두 가지 독특한 기능이 있다. 하나는 전 세계 데이터를 동기화 하기 위해 가장 정확한 시간 측정 방식인 원자 시계를 사용하는 트루타임(TrueTime)이라는 타임 스탬프(time-stamp) 기능이다.


다른 하나는 전 세계 구글 데이터센터를 연결하는 구글 내부 광섬유망이다. 스패너의 내부 데이터베이스 트래픽은 일반 인터넷 대신 구글에서 직접 구축하고 통제하는 구글 트래픽 전용 파이프를 통해 전송된다. 전 세계 어느 곳이든 연결되는 스패너 내부 트래픽 전용 고속도로가 있는 셈이다.


NewSQL 시장 

스패너는 클라우드에 호스팅되는 NewSQL 데이터베이스 중 최초로 광범위하게 사용될 것으로 여겨지는 제품 가운데 하나다. 카네기 멜론 대학교(Carnegie Mellon University) 앤드류 파블로 교수는 공동 논문에서 NewSQL에 대해 “지속적으로 발전되는 데이터베이스 기술의 다음 단계”라고 평가했다.


NewSQL 데이터베이스의 개별적인 특징은 새로울 것이 없지만 그 동안 이를 모두 아우르는 데이터베이스는 없었다. 예컨대, 전통적인 관계형 데이터베이스는 SQL를 지원하고 일관성이 강한 반면 확장성이 부족하고 NoSQL 데이터베이스는 확장이 쉬운 반면 SQL 지원이 부족한 단점이 있다.


위 논문에서는 NewSQL 데이터베이스에 대해 “분산된 컴퓨팅 리소스가 풍부하고 저렴한 동시에 응용프로그램의 요구사항은 훨씬 더 커진 새로운 시대가 낳은 산물”이라고 표현했다.


이렇게 새로운 세대의 데이터베이스의 시장은 아직 시작 단계다. NewSQL 데이터베이스 중 가장 주목할 만한 예로는 인메모리(in-memory) 관계형 데이터베이스인 SAP 하나(HANA)를 들 수 있다. 이 밖에도 몇몇 신규업체에서 NuoDB, H-Store, Clusterix, VoltDB, MemSQL 등의 NewSQL을 선보이고 있다.


이 밖에 아마존 웹 서비스의 아마존 오로라(Amazon Aurora)가 MySQL 및 PostreSOL이 지원함에 따라 NewSQL의 일종으로 간주되기도 한다.


NewSQL 데이터베이스의 장점 중 하나는 전통적인 SQL데이터베이스에서 실행되는 응용프로그램이 지원된다는 점이다. 그러나 위 논문 저자들은 그러한 전통적인 데이터베이스에서 실행되는 작업은 보통 핵심 응용프로그램이므로 기업들은 강력한 요인이 없는 한 이를 새로운 데이터베이스로 이동하기를 꺼릴 것이라고 지적했다.


NoSQL 데이터베이스는 확장성이 뛰어나며 소셜, 모바일, 사물 인터넷 응용프로그램을 중심으로 하는 새로운 응용프로그램에 주로 사용될 전망이다. 


NewSQL 시장의 움직임을 주시하는 애널리스트들은 향후 몇 년간 무난한 성장할 것으로 낙관하고 있다. 마켓 어낼리시스(Market Analysis)에서는 NewSQL 데이터베이스 시장이 복합 성장률 26%을 기록하여 2020년까지 10억 달러 규모에 이를 것으로 예측하고 있다.


이는 IDC에서 연간 300억 달러 이상으로 보고 있는 전통적인 관계형 데이터 관리 시장 규모에 비하면 미미한 수준이다. 그러나 전통적인 데이터베이스에 고충을 겪고 있는 고객들이라면 새로운 작업을 위해 기꺼이 NewSQL에 투자할 것이라는 의미이기도 하다.




.


반응형
반응형

* 빅데이터 3대 활용 요소

자원

 활용할 수 있는 빅데이터 발견 

기술

 빅데이터 플랫폼의 데이터 저장/관리 기술(NoSQL, ETL) 및 처리 기술(Hadoop)

인력

 Data Scientist 역량 향상

 

NoSQL(Not only Sql)은 지금까지 사용되왔던 관계형 데이터베이스 모델에 얽매이지 않고 비테이블 기반이다.

NoSQL은 추가/추출 Operation과 레코드 저장 기능에 대해서 최적화가 적용되어 대용량 데이터 처리에 대해서

기존 관계형 데이터베이스가 가지고 있던 단점을 보완할 수 있다.

 

* 클라우드 서비스에 적용되는 데이터베이스 솔루션

 

 가상 머신 기반으로 적용

데이터베이스 서비스 

 SQL

데이터 모델

 - Oracle DB

 - IBM DB2

 - Ingres

 - PostgreSQL

 - MySQL

 - NuoDB

 - GaianDB

 - MySQL

 - MS-SQL

 - Heroku PostgreSQL

 - Clustrix DB

 - Xeround cloud DB

 - EnterpriseDB Postgres + Cloud DB

 NoSQL

데이터 모델

 - CouchDB(아마존)

 - Hadoop(아마존)

 - Apache cassandra(아마존)

 - Neo4J(아마존)

 - MongoDB(아마존)

 - Amazon DynamoDB

 - Amazon SimpleDB

 - Cloudant Data Layer

   (CouchDB)

 - Google AppEngine DataStore

 - MongoDB

 

HBase는 구글 빅테이블의 클론 솔루션이며 무한한 데이터 수용 확장성을 지원한다.

HBase는 HDFS(Hadoop Distributed File System)에 구현한 분산 칼럼 기반 데이터베이스이며,

 대규모 데이터셋에 실시간으로 랜덤 엑세스가 필요할 때 사용할 수 있는 Hadoop 응용프로그램이다.

 

* Oracle NoSQL Database 특징

  • 단순한 데이터 모델 지원(Major/Sub key를 사용한 key/value 쌍 지원)
  • 단순한 프로그래밍 모델 지원(ACID transaction과 JSON 지원)
  • Oracle DB & Hadoop 연동
  • 확장가능한 throughput 제공
  • 동적인 용량 추가 동작 지원
  • 설정 가능한 다중 복제를 이용한 높은 가용성 제공

* MongoDB 특징

  • 실행용 공식 Binary 파일은 Windows,Mac, Linux, Solaris에서 사용가능
  • 공식 드라이버는 C,C#,C++, Haskell, JAVA, javascript, Perl, PHP, Python, Ruby, Scala에서 사용가능
  • 임시(Ad-hoc) Javascript Query 지원(모든 문서 속성에서 기준을 사용해 데이터 검색)
  • Query에서 정규 표현식 지원
  • MongoDB의 Query 결과는 limit(),skip(),sort(),count(),distinct(),group()을 포함해 필터링과 수집 및 정렬에 필요한 다양한 함수를 제공하는 커서에 저장
  • 고급 수집용 map/reduce 구현
  • GridFS를 사용하는 대용량 파일 스토리지
  • RDBMS 형태의 속성 인덱싱 지원
  • Query 최적화 기능 지원
  • MySQL 과 비슷한 Master/Slave 복제
  • 참조쿼리를 허용하는 콜렉션 기반 오브젝트 스토리지
  • Auto-sharding 을 이용한 수평적 확장
  • 고성능의 동시성을 구현 가능 : 제자리 쓰기(In-place update)

 

반응형

'프로그래밍 > DataBase' 카테고리의 다른 글

[NoSQL] Riak - Full Text Search  (0) 2013.03.18
[NoSQL] Visual Guide to NoSQL Systems  (0) 2013.03.18
카산드라 - Apache Cassandra  (0) 2013.01.29
[Mobile] SQLite - 모바일기기  (0) 2012.11.07
[Oracle] 오라클 HINT  (0) 2012.09.26

+ Recent posts