RBAC(Role Based Access Control)이 새로운 트렌드이다.역할(role)에 접근 권한을 준다.
raw_data, analytics, adhoc, pii가 스키마이고, analytics_author, analytics_users, pii_users, admin이 역할(role)이 된다.GRANT를 통해 줄 수 있다.1) analytics_author에 권한 부여
GRANT ALL ON SCHEMA를 통해 스키마의 권한을 먼저 부여해 주어야 한다.GRANT USAGE ON SCHEMA를 해 주어야 한다.-- analytics 스키마의 모든 권한을 준다.
GRANT ALL ON SCHEMA analytics TO GROUP analytics_authors;
-- 스키마 자체의 권한이 먼저 지정이 되어야 테이블에 대한 모든 권한을 줄 수 있다.
GRANT ALL ON ALL TABLES IN SCHEMA analytics TO GROUP analytics_authors;
GRANT ALL ON SCHEMA adhoc to GROUP analytics_authors;
GRANT ALL ON ALL TABLES IN SCHEMA adhoc TO GROUP analytics_authors;
-- GRANT USAGE 명령이 실행되어야 테이블 조회 권한을 줄 수 있다.
GRANT USAGE ON SCHEMA raw_data TO GROUP analytics_authors;
-- raw_data 스키마에는 모든 테이블에 대해 SELECT 권한을 준다.
GRANT SELECT ON ALL TABLES IN SCHEMA raw_data TO GROUP analytics_authors;
2) analytics_users
GRANT USAGE ON SCHEMA analytics TO GROUP analytics_users;
GRANT SELECT ON ALL TABLES IN SCHEMA analytics TO GROUP analytics_users;
GRANT ALL ON ALL TABLES IN SCHEMA adhoc TO GROUP analytics_users;
GRANT ALL ON SCHEMA adhoc to GROUP analytics_users;
GRANT USAGE ON SCHEMA raw_data TO GROUP analytics_users;
GRANT SELECT ON ALL TABLES IN SCHEMA raw_data TO GROUP analytics_users;
3) pii_users
PII 접근 권한만 허용해 주고, 다른 스키마에 접근해야 하는 경우 목적에 맞게 사용자에게 추가적으로 다른 역할을 부여해 줄 수도 있고, PII_USERS라는 역할 안에 이 모든 권한을 부여해 줄 수도 있다.GRANT USAGE ON SCHEMA pii TO GROUP pii_users;
GRANT SELECT ON ALL TABLES IN SCHEMA pii TO GROUP pii_users;
💻 [AWS RedShift] 7. 그룹(GROUP) 권한 부여 - 실습 포스팅
CREATE RLS POLICY 명령어를 통해 생성하고 이를 ATTACH RLS POLICY라는 명령을 사용해 특정 테이블에 추가한다.Snapshot을 지원한다. Snapshot은 백업 방식은 마지막 백업으로부터 바뀐 것들만 저장하는 방식Snapshot 시점 내용으로 새로운 클러스터를 생성하는 것도 가능Maintenance -> Backup details -> EditS3에도 백업을 할 수 있게 Cross-Regional Snapshot Copy를 지원하며 재난 복구에 유용함Action(작업) -> Restore Table 메뉴를 선택.Snapshot이 바로 존재하는 게 아니고 Recovery Points로부터 Snapshot을 만든 다음에 백업이 가능하다. Snapshot을 잡을 수 있지만 가변 비용은 기본적으로 컴퓨팅 자원과 스토리지 자원이 따로 존재한다. 고객이 사용한 만큼 청구되기 때문에 고객에게 고정된 자원이 존재하지 않는다.Recovery Points라고 부른다.데이터 백업 -> 스냅샷 -> 스냅샷 생성
Redshift의 확장 기능S3에 있는 파일들이 Redshift의 확장 테이블처럼 SQL로 사용 가능 S3의 파일을 외부 테이블을 처리하면서 Redshift 테이블과 조인 가능S3 외부 테이블을 Fact 테이블이라고 부르고 Redshift 테이블을 Dimension 테이블Redshift 클러스터가 있어야 하고 S3와 클러스터의 지역(Region)이 동일해야 함
AWS의 Presto 서비스로 사실상 Redshift Spectrum과 흡사한 부분이 많다.Athena가 퍼포먼스적으로는 더 좋다.Redshift를 사용한다면 Redshift Spectrum을, 만약 Redshift를 사용하지 않는데 S3에 있는 데이터를 기반으로 사용하고 싶다면 Athena를 사용해 주면 된다.SQL만 사용해서 머신 러닝 모델을 훈련하고 사용할 수 있게 해 주는 서비스이다.AWS에 있는 SageMaker에 의해 지원된다. SageMaker은 머신 러닝 데이터를 훈련하면 Auto Pilot을 통해 최적화된 모델을 결정해 주거나 생성해 주는 기능을 제공한다. Redshift 안에 마치 SQL의 함수처럼 임베딩을 해서 어떤 테이블에 있는 레코드, 컬럼을 ML 모델에 input으로 주면 ML 결과가 output으로 나오게 된다.Fact 테이블
Dimension 테이블
primary key가 Fact 테이블의 foreign key에서 참조-> Fact 테이블과 Dimension 테이블은 결국 둘을 JOIN 해 주었을 때 더 통찰력 있는 데이터 분석을 하게 해 주는 경우가 많다.
❓ 이게 왜 Redshift Spectrum과 관련이 있는가
Fact 테이블이 굉장히 클 수 있기 때문에 이 데이터를 모두 데이터 웨어하우스에 저장하는 게 비용적, 시간적으로 의미가 없을 수 있기 때문에 비용이 저렴한
S3에 저장해서Redshift에 로드하는 방식이 선호된다.
SQL 명령어로 데이터베이스에 외부 테이블 생성 가능하다 Hive에서 처음 시작한 개념으로 대부분의 빅데이터 시스템에서 사용됨.S3에 있는 파일들을 마치 테이블처럼 SQL로 처리가 가능S3 Fact 데이터를 외부 테이블로 정의💻 [AWS RedShift] 8. Redshift Spectrum으로 S3 외부 테이블 조작 - 실습 포스팅

트레이닝셋(Training Set)이라고 부름.딥러닝은 머신 러닝의 일부로 비전, 자연 언어 처리 등의 분야에서 적용되고 있다.머신러닝 학습 알고리즘에 따라 내부가 달라진다.트레이닝셋 품질이 머신 러닝 모델의 품질을 결정한다.📌 예시: 타이타닉 호 승객 생존 여부 예측

트레이닝셋이라고 한다.Supervised Machine Learning이라고 한다.SageMaker Studio라는 웹 기반 환경 제공Python Notebook을 통해 모델 훈련 스칼라/자바 SDK도 제공Auto Pilot을 통해 최적화된 모델을 결정해 주거나 생성 (이를 사용하면 코드도 구현해 줌)📌 AutoPilot이란?
- SageMaker에서 제공하는 AutoML
- 훈련용 데이터 셋을 입력하면
- 데이터 분석을 수행하고 이를 파이썬 노트북으로 만들어 줌
- 다수의 머신 러닝 알고리즘과 하이퍼 파라미터 조합에 대해 작업을 수행
- 이 과정에서 머신 러닝 모델을 만들어 훈련하고 테스트 후 결과를 기록
- 선택 옵션에 따라 모델 테스트까지 다 수행하기도 하지만 코드를 만드는 단계에서 마무리하는 것도 가능
- 이 모든 단계를 거쳐 사용자는 모델을 선택 후 API로 만들 수도 있고, 로그를 설정할 수 있다.
✔ 중지는 고정 비용 옵션에만 존재하며 가변 비용 옵션은 중지가 없음
Maintenance window라고 부른다.Serverless라는 가변 비용 옵션 환경에서는 존재하지 않는다. 왜냐하면 가변 비용 옵션에서는 소유한 리소스가 없기 때문에.파라미터에 따라 다양한 업무를 수행할 수 있다.
다만 큰 테이블에 대한 VACUUM 명령은 리소스를 많이 잡아먹는다.
작업 -> 중지에서 중지 상태로 만들어 줄 수 있다. 다만 중지 상태가 되면 스토리지에 대한 비용은 부담해야 한다. 재실행을 하고 싶은 경우 작업->재시작(reboot)를 해 주어야 한다.삭제를 원할 시 작업 -> 삭제를 선택해 주어야 하는데 이때 스냅샷(Snapshot)을 통해 저장해 둘 수 있고 이를 통해 삭제되기 직전 시점으로 새로운 클러스터를 생성할 수도 있다.작업 그룹을 삭제해 주어야 한다.네임 스페이스를 삭제한다.1. Hold-out(홀드 아웃) 테스트
- 다음과 같이 전체의
데이터 셋을학습 데이터 셋과평가 데이터 셋으로 나누었을 때학습 데이터 셋을 통해머신 러닝 모델을 만들게 된다.- 이때
평가 데이터 셋을 통해머신 러닝 모델을 테스트하여학습 데이터 셋에서의 성능을 비교해 성능 평가를 하는 것을 말한다.- 그러나
학습 데이터 셋과평가 데이터 셋으로만 나눠서 모델의 성능을 평가하다보면,평가 데이터 셋이 모델의 파라미터 설정에 큰 영향을 미치게 되어오버 피팅(overfitting)이 될 수 있다.- 이를 해결해 주기 위해 모델의 최적 파라미터들을 찾아 주는
검증 셋을 추가해학습 데이터 셋,검증 셋,평가 데이터 셋으로 나누기도 한다.