one of a kind scene

4-2 데이터 처리 기술_분산 데이터 저장 기술 part3_NoSQL 데이터베이스 본문

ADP/이론

4-2 데이터 처리 기술_분산 데이터 저장 기술 part3_NoSQL 데이터베이스

specialscene 2019. 11. 22. 01:52

분산 데이터 저장 기술 part3_NoSQL 데이터베이스

NoSQL 데이터베이스 = 비관계형(비정형) 데이터베이스 관리 시스템

= 비정형 데이터베이스

= 즉, 데이터베이스

 

종류 : 구글 빅테이블, HBase, 아마존 SimpleDB

 

1. 개념 및 특징

     • NoSQL은 빅데이터 분산처리 및 저장기술과 함께 발달된 분산 데이터베이스 기술 확장성/가용성/높은 성능 제공

     • SQL 계열 쿼리 언어를 사용할 수 있어서 Not Only SQL로 불리기도함

     • NoSQL은 key와 value의 형태로 자료를 저장, 빠르게 조회할 수 있는 자료 구조 제공

     • 스키마 없이 동작, 구조에 대한 정의 변경 없이 자유롭게 데이터베이스의 레코드에 필드 추가 가능

     • 전통적인 RDBMS의 장점인 JOIN 연산 기능은 미지원

     • 대용량 처리와 대규모의 수평적 확장성 제공

     • 종류 : 구글 빅테이블, 아파치 HBase, 아마존 SimpleDB, 마이크로소프트 SSDS 등이 존재

 

2. 구글 빅테이블

    ① 개념 및 특징

         • 데이터베이스 클러스터 분류로 나누자면 공유 디스크(Shared Disk)방식이어서, 모든 노드가 데이터, 인덱스 파일을 공유

         • 실시간 서비스, 주기적인 배치 작업, 대용량 데이터의 분석 처리에 적합

         • 유사 솔루션은 아파치 HBase, NHN의 Neptune

  

    ② 데이터 모델

         • 테이블 내의 모든 데이터는 row-key의 사전적인 순서로 정렬.저장

         • 테이블의 파티션은 row-key를 이용하여 이루어지고, Tablet이라고 불리는 분리된 파티션은 분산된 노드에서 서비스됨. 한 Tablet의 크기는 보통 100~200MB

         • 빅테이블에 저장되는 하나의 데이터(map)의 키 값 또는 정렬 기준은 'rowkey + column-key + timestamp'(로우 식별자 + 칼럼 이름 + 타임스탬프)

 

 

    ③ 페일 오버

         • 특정 노드에 장애가 발생할 경우, 마스터(Master)는 장애가 발생한 노드에서 서비스되던 Tablet을 다른 노드로 재할당

         • 빅테이블의 SPOF(Single Point Of Failure, 시스템의 구성 요소 중 동작하지 않으면 전체 시스템이 중단되는 요소)는 마스터

         • 분산 락(lock) 서비스를 제공하는 Chubby를 이용해 Master를 계속 모니터링하다가 마스터에 장애가 발생하면 가용한 노드가 마스터 역할을 수행하도록 함

         • Chubby는 폴트톨러런스 지원구조이기 때문에 절대로 장애가 발생하지 않는다

         • 빅테이블은 데이터 저장소를 위해 별도의 클러스터를 구성하기보다는 파일시스템, Map & Reduce 컴퓨팅 클러스터와 동일한 클러스터 위에 구성됨

 

3. HBase

    ① 하둡 분산 파일 시스템(HDFS)를 기반으로 구현된 칼럼 기반의 분산 데이터베이스(파워셋 회사에서 구글 빅테이블을 모델로 개발)

    ② HBase는 관계형 구조가 아니며, SQL을 지원하지 않음

    ③ 비구조화된 데이터에 더 적합, 대규모의 데이터에서 실시간 읽기/쓰기 작업이 필요할 때 사용

    ④ RDBMS와 달리 수평적으로 확장성이 있어 큰 테이블에 적합

    ⑤ Zookeeper를 이용한 고가용성 보장

 

4. 아마존 SimpleDB

    ① 개념 및 특징

         • SimpleDB는 아마존의 데이터 서비스 플랫폼으로, 웹애플리케이션에서 사용하는 데이터의 실시간 처리 지원

         • EC2, S3등과 같은 아마존의 다른 플랫폼 서비스와 같이 사용. 아마존 플랫폼 내 트래픽은 무료 외부 트래픽은 유료인 가격정책을 펼치고 있음

         • 따라서, EC2에 접속한 후 SimpleDB의 데이터를 조회해 적절히 가공 후 사용자에게 제공하는 형태가 많음

         • 트랜잭션 종료 후 데이터가 모든 노드에 즉시 반영되지 않고 초 단위로 지연 동기화되는 'Eventual Consistency' 정책을 취함

         • 관계형 데이터 모델과 표준 SQL을 지원하지 않음

         • 한 번에 하나의 도메인에 대해서만 쿼리를 수행해야함 따라서, 두 개의 도메인으로부터 데이터를 조회할 경우 쿼리가 여러 번 수행돼야 하는 단점이 존재

 

    ② SimpleDB의 데이터 모델 구성

         • Domain, Item, Attribut, Value로 구성, NoSQL이기 때문에 스키마가 없음

         • Domain : RDBMS(관계형 데이터베이스)의 테이블과 동일한 개념, 최대 10GB, 최대 100개의 도메인 가질 수 있음 즉, 1000GB 데이터 SimpleDB에 저장 가능

         • Item : RDBMS의 레코드와 동일한 개념, 1개 ~ 256개의 Attribute 가짐

         • Attribute : RDMBS의 Column(칼럼)과 동일한 개념, 사용 전 미리 정의할 필요 없음, Name Value 쌍으로 데이터 저장, Name은 Attribute 이름 해당, 특정 Attribute(Cell)에는 여러 개의 값 저장 가능

 

 

5. 마이크로소프트 SSDS

    ① 개념 및 특징

         • SSDS(SQL Server Data Service)는 마이크로소프트에서 제공하는 데이터 서비스로 고가용성 보장

         • 쿼리는 하나의 컨테이너만을 대상으로 한다

 

    ② SSDS의 데이터 모델 구성

         • 컨테이너, 엔티티로 구성

         • 컨테이너 : 테이블과 유사한 개념이지만, 컨테이너에 여러종류의 엔티티 저장 가능

         • 엔티티 : 레코드와 유사한 개념, 하나의 엔티티는 여러 개의(property) 가질 수 있으며, property는 name-value 쌍으로 저장