CIO / 빅데이터 | 애널리틱스 / 애플리케이션 / 오픈소스 / 클라우드
반 라이스윅은 현대의 클라우드 작업 부하가 데이터 모델 지원 요건에서 서로 다른 수많은 요건을 포함한다고 설명했다.
그는 RDBMS(relational DBMS) 생태계가 수많은 점에서 유리하다고 덧붙였다. RDBMS 생태계는 DBMS의 논리적 개발자와 물리적 사용자(DBA)를 잘 구분해 정리한 SQL 형태에서 개발자가 특정 업체에 종속되지 않는 언어를 사용하게 하고, 어떤 애플리케이션이 데이터베이스와 상호작용할 수 있느냐에 따라 움직이기 때문이다.
반면 RDBMS는 클라우드 애플리케이션과는 잘 맞지 않는 것으로 알려졌다. 그 이유는 다음과 같은 어려운 점들 때문이다.
• 업타임과 복원성에 대해 요구하는 마스터-슬레이브 아키텍처
• 클라우드 애플리케이션 작업 부하를 위한 라이트-앤-디스트리뷰트-애니웨어(write-and-distribute-anywhere) 제약과 규모
• 애플리케이션 민첩성보다 스토리지 효율성에 더 가치를 두는 논리적 데이터 레이어에 대한 엄격한 고수
• 준-비정형 데이터의 활용을 엄두도 못 낼 정도로 가격을 올리는 융통성 없는 데이터 모델
• 운영 비용을 기하급수적으로 높이는 샤딩 아키텍처의 ‘임시방편 처방’
NoSQL 기술은 이런 문제점들을 해결하지만, 기업 고객들에게 매우 파편화된 솔루션을 제공한다는 2가지 문제점을 안겨 준다.
• 다중 언어 고집은 고객이 데이터 모델(키 값, 태뷸러, 제이슨, 그래프)의 제한된 세트 중 하나를 활용하거나 데이터 스토어에 걸쳐 ETL(extract-transform-load) 운영해야 함을 의미한다. MDM(master data management)과 고객-360도-시야 권한 ETL을 포함한 수많은 사용 사례는 총소유비용(TCO)의 상승으로 이어질 수 있다.
• 데이터스토어와 소통하기 위한 NoSQL 업체의 메커니즘 각각은 방언과 논리적/물리적 분할이 어디에 있는지에 따라 달라진다. 이는 애플리케이션 개발자가 자신의 애플리케이션에 단일 모델 이상을 필요로 할 때 추상화 계층을 작성할 수밖에 없게 만들고, 추상화 계층은 논리적/물리적 스펙트럼의 각기 다른 레벨에 걸쳐 작동해야 애플리케이션 개발이 부합하게 된다.