분산 데이터 저장 기술 - NoSQL

duri·2024년 2월 11일
0

ADP

목록 보기
10/18

분산 데이터 저장 기술은 1. 분산파일시스템, 2. 클러스터, 3. 데이터베이스, 4. NoSQL로 구분된다. 각각의 기술 모두 알아야 할 게 많은 덩어리다.

어떤 기술이던간에 분산된 데이터를 저장하는 기술은 대용량의 저장공간, 빠른 처리성능, 확장성, 신뢰성, 가용성을 보장해야 한다.

NoSQL

개념 및 특징

  • 빅데이터의 등장과 함께 개발
  • 비관계형 DBMS, 스키마 없이 동작
  • 구조에 대한 정의 변경 없이 레코드에 필드를 추가할 수 있음
  • sql 계열 쿼리 언어를 사용할 수 있음
  • 전통적인 DBMS와 달리 join연산을 사용할 수 없음.
  • 데이터의 구조에 따라
    • key-value 모델
    • document 모델 (json또는 xml 데이터 구조 채택)
    • graph 모델
    • column 모델

1. 구글 빅테이블

개념 및 특징

  • 구글이 개발
  • 공유 디스크 방식 : 모든 노드가 모든 데이터를 공유함

장애처리

  • 특정 노드에 장애가 발생할 경우 빅테이블의 마스터는 장애가 발생한 노드가 담당하던 태블릿을 다른 노드에게 할당함
  • 마스터에 장애가 생길 경우를 대비하여 chubby 가 마스터를 계속 모니터링함
  • 마스터에 장애가 생기면 다른 노드가 마스터 역할을 수행하도록 함
  • 빅테이블의 SPOF는 마스터

** chubby는 fault-tolerance 지원구조이므로 장애가 발생하지 않는다

app engine

  • 구글 클라우드 플랫폼의 일부로 빅테이블을 사용함
  • 사용자에게 직접 api를 공개하지 않고 추상계층을 둠
  • 데이터 모델도 추상화되어있음
  • 사용자 테이블 생성 시 빅테이블의 특정 테이블에 대한 한 영역을 차지하게 됨( 빅테이블의 테이블로 생성되는 것 아님)
  • 별도의 사용자 정의 인덱스를 제공하지 않음

2. HBase

  • HDFS를 기반으로 구현된 칼럼 기반의 분산 데이터베이스
  • 관계형 구조가 아님
  • SQL을 지원하지 않음
  • 비구조화된 데이터에 더 적합하며 대규모 데이터에서 실시간 rw작업에 사용
  • 노드를 추가하면 선형으로 확장 가능
  • 클러스터를 통한 데이터의 복제 기능 제공
  • 수평적으로 확장성 있어 큰 테이블에 적합
  • 로우키에 대한 인덱싱만 제공, zookeeper를 통한 고가용성 보장

3. Amazon SimpleDB

  • 아마존의 데이터 서비스 플랫폼.
  • 웹 애플리케이션에서 사용하는 데이터의 실시간 처리를 지원함
  • EC2, S3(아마존 내부 서비스간 네트워크 트래픽)은 무료
  • 외부와의 인아웃 트래픽은 유료
  • 사용자는 EC2에서 수행되는 웹 서버로 접근, 웹서버에서 데이터베이스의 자료를 조회해 가공 후 사용자에게 제공
  • 하나의 데이터에 여러개의 복제본을 유지
  • 트랜잭션 종료 후 데이터가 초 단위로 지연동기화되는 eventual consistency 정책을 취함
  • RDB, SQL지원하지 않음
  • SOAP, REST프로토콜을 이용해 데이터 베이스 이용 가능
  • 데이터 모델
    • 도메인 : RDB의 테이블.
    • 아이템 : RDB의 레코드
    • attribute : RDB의 컬럼. 아이템의 특정 속성에는 여러 값을 저장할 수 있음

마이크로소프트 SSDS

  • 데이터 모델
    • 컨테이너 : 테이블과 유사하지만 여러 종류의 엔티티 저장 가능
    • 엔티티 : 레코드와 유사. 여러 개의 속성을 가질 수 있음
  • RDB처럼 엔티티를 구분하고 속성을 따로 저장하지 않고 관련 정보를 하나의 컨테이너에 저장함
  • 컨테이너는 여러 노드에 분산 관리됨
  • 쿼리는 하나의 컨테이너만을 대상으로 함
profile
배우는중인 두리

0개의 댓글