Redshift가 지원하는 데이터 백업
- 기본적으로 백업 방식은 마지막 백업으로부터 바뀐 것들만 저장하는 방식
- 이를 Snapshot이라고 부름
- 백업을 통해 과거로 돌아가 그 시점의 내용으로 특정 테이블을 복구하는 것이 가능(Table Restore)
- 또한 과거 시점의 내용으로 Redshift클러스터를 새로 생성하는 것도 가능
- 자동 백업
- 기본은 하루이지만 최대 과거 35일까지의 변경을 백업하게할 수 있음
- 이 경우 백업은 같은 지역에 있는 S3에 이뤄짐
- 다른 지역에 있는 S3에 하려면 Cross-regional snapshot copy를 설정해야함. 이는 보통 재난시 데이터 복구에 유용함
- 백업 기한 설정 : Redshift클러스터의 Maintenance 탭 -> Backup details -> Edit
- 매뉴얼 백업
- 언제든 원할 때 만드는 백업으로 명시적으로 삭제할 때까지 유지됨 (혹은 생성 시 보존 기한 설정)
- Create snapshot으로 백업 진행
- 백업에서 테이블 복구 방법
- 해당 Redshift 클러스터에서 "Restore table" 메뉴 선택
- 복구 대상이 있는 백업(Snapshot) 선택
- 원본 테이블 (Source table) 선택
- 어디로 복구될지 타겟 테이블 선택
Redshift Serverless가 지원하는 데이터 백업 방식
- 고정비용 Redshift에 비하면 제한적이고 조금 더 복잡함 (정해진 스토리지나 컴퓨팅 리소스 등이 변경될 수 있기 때문)
- 일단 Snapshot이전에 Recovery Points라는 것이 존재
- Recovery Point를 Snapshot으로 바꾼 다음에 여기서 테이블 복구를 하거나 이것으로 새로운 Redshift클러스터 등을 생성하는 것이 가능
- Recovery Points는 과거 24시간에 대해서만 유지됨
- 네임스페이스 -> 데이터 백업에서 할 수 있음
Redshift Spectrum
- Redshift의 확장 기능
- S3에 있는 파일들을 마치 테이블처럼 SQL로 처리 가능
- S3파일들을 외부 테이블들(external table)로 처리하면서 Redshift테이블과 조인 가능
- 마치 Redshift 내부에 있는 table처럼 자유롭게 사용할 수 있게 해줌
- S3 외부 테이블들은 보통 Fact 테이블들이 되고 Redshift테이블들은 Dimension 테이블이라고 부름
- 1ㅅTB를 스캔할 때마다 $5 비용이 생김
- 사용하려면 Redshift 클러스터가 필요
- S3와 Redshift 클러스터는 같은 region에 있어야함
Athena
- AWS의 Presto 서비스로 사실상 Redshift Spectrum과 비슷한 기능을 제공
- S3에 있는 데이터들을 기반으로 SQL 쿼리 기능 제공
- 이 경우 S3를 데이터 레이크라 볼 수 있음
Redshift ML
- SQL만 사용하여 머신러닝 모델을 훈련하고 사용할 수 있게 해주는 Redshift기능
- 이 기능은 사실 AWS SageMaker에 의해 지원됨
- SageMaker는 Auto Pilot이라 하여 최적화된 모델을 자동 생성해주는 기능 제공
- 이미 모델이 만들어져 있다면 이를 사용하는 것도 가능 (BYOM: Bring Your Own Model)
Fact테이블과 Dimnesion테이블 이란
- Fact 테이블: 분석의 초점이 되는 양적 정보를 포함하는 중앙 테이블
- 일반적으로 매출 수익, 판매량 또는 이익과 같은 사실 또는 측정 항목을 포함하여 비즈니스 결정에 사용
- Fact테이블은 일번적으로 외래 키를 통해 여러 Dimension테이블과 연결됨
- 보통 Fact 테이블의 크기가 훨씬 큼
- Dimension 테이블: Fact 테이블에 대한 상세 정보를 제공하는 테이블
- 고객, 제품과 같은 테이블로 Fact테이블에 대한 상세 정보 제공
- Fact테이블의 데이터에 맥락을 제공하여 사용자가 다양한 방식으로 데이터를 조각내고 분석 가능하게 해줌
- Dimension 테이블은 일반적으로 promary key를 가지며, fact테이블의 foreign key에서 참조
- 보통 Dimension테이블의 크기는 훨씬 더 작음
- Fact테이블과 Dimension테이블의 예
- 예시 1
- Fact 테이블 : user session channel (유저가 유입된 채널 ex. Naver, Chrome, Kakao ...)
- Dimension 테이블 : 앞서 존재하지 않았지만 user session channel테이블에 사용된 사용자나 채널에 대한 정보 (사용자나 채널에 대한 정보로 상대적으로 크기가 작음)
- user
- channel
- 예시 2
- Fact 테이블 : order 테이블 - 사용자들의 상품 주문에 대한 정보가 들어간 테이블)
- Dimension 테이블
- Product 테이블 - Order테이블에 사용된 상품에 대한 정보
- User 테이블 - Order 테이블에서 상품 주문을 한 사용자에 대한 정보
- 예시 1
'Programmers TIL' 카테고리의 다른 글
[Docker] Docker와 K8s_TIL (1) | 2023.06.12 |
---|---|
[DataWearhouse] Snowflake_TIL (4) | 2023.05.25 |
[Web] Django(Serializer)_TIL Day13 (2) | 2023.04.26 |
[Web] Django_TIL Day11-1 (1) | 2023.04.24 |
[Web] 웹 데이터 크롤하고 분석하기(Selenium)_TIL Day9-1 (0) | 2023.04.20 |