-
AWS Redshift
- AWS가 서비스하는 클라우드 데이터 웨어하우스(DW) 서비스
- 손쉬운 생성 및 큰 규모로 확장 가능
- 사용한 만큼만 지불
- 낮은 가격에 매우 빠른 성능 제공
- 오픈으로 다양한 벤더의 BI툴과 연동
- 완전 관리형 DW서비스
Redshift 특징
- 다양한 포멧의 소스 데이터 지원
- 오픈 포멧 데이터 소스 지원
- 정형, 비정형 데이터 수집 및 활용 가능
- 탄력적인 클러스터 사이즈 확장 및 숙소
- 필요한 시점에 원하는 만큼, 빠르게 서버 사이즈 조정 가능
- 수 분 내에 완료되는 탄력적인 클러스터 크기 조정
- 일시정지 및 재시작 기능을 활용한 비용 최적화 운영
- S3 저장소 기반의 데이터 레이크
- 모든 데이터를 저장하고 필요한 시점에 사용
- 99.99%의 가용성과 내구성 보장
- 데이터 액세스 패턴에 따른 여러 계층의 저장소 제공
Redshift 아키텍처
- 노드 단위로 구성된다.
- 노드는 복수의 '슬라이스'로 구성된다.
- 각 슬라이스는 별도의 메모리, CPU 및 디스크 공간을 할당받는다.
- 각 슬라이스 별로 독립적인 워크로드를 병렬적으로 실행한다.
- 리더 노드
- SQL 연결 엔드포인트
- 메타 데이터 저장
- 클러스터의 모든 쿼리 수행을 관리한다.
- 컴퓨팅 노드
- 로컬, 컬럼방식 스토리지
- 병렬로 쿼리 수행
- S3 기반으로 로딩, 백업, 복구 수행
- DynamoDB, EC2 호스트로부터 병렬 로딩
데이터 분산 방식
- Redshift는 분산형 시스템이다.
- Redshift의 클러스터는 리더노드와 컴퓨팅 노드로 구성되고, 컴퓨팅 노드는 하나 이상의 슬라이스로 구성된다.
- 각 슬라이스는 데이터를 포함한다.
- 쿼리는 모든 슬라이스들에 걸쳐 병렬 수행된다.
- 슬라이스가 선택되는 방법
- Even Distribution (RR 알고리즘 활용)
- Distribution Key 기준 선택
- All Distribution
데이터 정렬 방식
- 슬라이스 내에서, 데이터는 Sort Key를 기반으로 정렬된다.
- 쿼리에서 가장빈번하게 사용되는 것을 Sort Key로 사용한다.
- Sort Key 적용 시, Redshift가 전체 블록을 스캔하는 것을 피할 수 있다.