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
-> Edit
S3
에도 백업을 할 수 있게 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)
이 될 수 있다.- 이를 해결해 주기 위해 모델의 최적 파라미터들을 찾아 주는
검증 셋
을 추가해학습 데이터 셋
,검증 셋
,평가 데이터 셋
으로 나누기도 한다.