( 참고 : “당신이 지금 알아야 할 AWS” )
[ Data Engineering ]
6장. 빅데이터를 위한 데이터 베이스
Contents
- 데이터베이스의 발전
    
- 전통적 데이터베이스 : RDBMS
 - 비관계형 데이터베이스, NoSQL
 
 - DynamoDB
    
- DynamoDB 구성 요소
 
 
6.1. 데이터베이스의 발전
6.1.1. 전통적 데이터베이스 : RDBMS
Amazon RDS : 관계형 DB
- 소모적 관리작업 자동화
 - 비용면에서 효율적, 확장 가능한 관계형 DB 용량 제공
 
6.1.2. 비관계형 데이터베이스, NoSQL
- 비교
    
- 전통적 DB : “스케일 업”
 - NoSQL : 샤드 단위의 “스케일 아웃”
 
 - NoSQL : Not Only SQL
    
- 다양한 비정형 데이터 저장
 - key-value 형태로 저장
 
 - “샤드”라는 단위로 분산하여, 데이터의 키 값에 따라 다른 샤드가 처리할 수 있게 함
 - 스케일 아웃
 
6.2. Dynamo DB
- key-value 형태의 대표적인 NoSQL 데이터 베이스
 - 따로 Schema (X)
 - 하루 10조개 이상의 요청, (초당 2천만개 이상) OK
 - JSON 형태로 데이터를 저장
 
6.2.1. DynamoDB 구성 요소
(1) 테이블, 항목 및 속성
- 마찬가지로 데이터를 “테이블”에 저장함
    
- 각 테이블은 “항목”과 “속성”으로 구성
 
 
(2) 기본키
- 
    
스키마는 없지만, 각 데이터를 식별하기 위한 “기본키”는 필요함
 - 
    
방식 2가지
- 
        
1) Partition Key 방식 : 단일한 하나의 데이터로 사용
( 단순한 값을 가지는 기본키 방식 )
 - 
        
2) Partition 및 Sort Key 방식 : 2개의 데이터를 조합하여 사용
( 값의 대소를 비교하는 추가적인 값인 정렬키를 조합 )
 
 - 
        
 
(3) 글로벌 보조 인덱스 (Global Secondary Index)
- Global Secondary Index
    
- 테이블을 만든 후 추가 OK
 - 현재 테이블과 동기화되는 똑같은 테이블을 만들어 원하는 속성을 기본키로 설정할 수 있음. 인덱싱하기 때문에 개별적인 읽기& 쓰기 용량 필요
 
 - Local Secondary Index
    
- 오직 데이터를 생성하는 시점에서만 만들 수 있음
 - 별도의 읽기&쓰기 용량 필요 X
 
 
(4) 쿼리 & 스캔
- 쿼리
    
- “삽입된 기본키”를 기준으로 데이터를 찾음
 
 - 스캔
    
- “조건 값”과 맞는 데이터를 찾을 때 까지 모든 데이터를 검색
 - 더 많은 처리 용량이 필요하기 때문에 비용 발생