일반적으로 사용자별 테이블별 권한 설정은 하지않음
역할 혹은 그룹 별로 스키마별 접근 권한을 주는 것이 일반적
rbac가 새로운 트렌드 : 그룹 보다 더 편리
여러 역할에 속한 사용자의 경우는 각 역할의 권한을 모두 갖게 됨
개인정보와 관련한 테이블들이라면 별도 스키마 설정
뒤의 예는 그룹에 적용했지만 그룹이란 키워드를 역할로 바꾸어도 동작
테이블 내의 특정 컬럼을 특정 사용자나 특정 그룹/역할에만 접근 가능하게 하는것
사실 이것은 좋은 방법은 아님/ 별도의 테이블로 구성하는 것
테이블 내의 특정 레코드에 대해 특정 사용자나 특정 그룹/역할에만 접근 가능하게 하는 것
특정 사용자/그룹의 특정 테이블 대상 select,update,delete 작업에 추가 조건을 다는 형태로 동작
create rls policy 를 사용하여 policy로 만들어서 attach rls policy 명령ㅇ르 사용해 특정 테이블에 추가
일반적으로 더 좋은 방법은 테이블을 따로 구성 혹은 데이터 시스템에 로드하지 않는 것
기본적으로 백업 방식은 마지막 백업으로부터 바뀐 것들만 저장하는 방식
이를 snapshot이라고 부름
백업을 통해 과거로 돌아가 . 그시점의 내용으로 특정 테이블을 복구하는 것이 가능
또한 과거 시점의 내용으로 redshift 클러스터를 새로 생성하는 것도 가능
기본은 하루이지만 최대 과거 35일 까지
백업은 같은 지역에 있는 s3
다른 지역에 있는 s3에 하려면 cross - regional snapshot copy를 설정. 보통 재난시 복구
매뉴얼 백업
백업 기간 늘리기
maintenane -> backup details -> edit
백업에서 테이블 복구
redshift에서 restore table
조금 더 제한적이고 복잡
자동백업으로는 24시간만 백업 가능 - 30분마다 백업
recovery points를 snapshot으로 바꾼 다음에 데이터복구나 새 클러스터 생성
매뉴얼 백업도 가능 - 기간을 늘릴 수 있음
redshift 스펙트럼
redshift의 확장 기능
s3에 있는 파일들을 마치 테이블처럼 sql로 처리 가능
s3 파일들을 외부 테이블들로 처리하면서 redshift 테이블과 조인 가능
s3 외부 테이블들은 보통 fact 테이블, redshift 테이블은 demension 테이블
1 테라바이트에 5달러
이를 사용하려면 redshift cluster가 필요
s3와 같은 리전에 있어야함
Athena 는 redshift spectrum과 비슷한 기능 제공
s3에 있는 데이터들을 기반으로 sql 쿼리 기능 제공
이 경우 s3를 데이터 레이크라 볼 수 있음
reshift ml은 sagemaker를 통해서 지원됨
auto pilot이라 하여 최적화된 모델을 자동 생성해주는 기능 제공
s3에 굉장히 큰 데이터가 있는데 이를 redshift로 로딩하기가 버겁다면 이를 외부 테이블로 설정해서 redshift에서 조작이 가능하다. 이에 대해 알아보자
fact 테이블 : 분석의 초점이 되는 양적 정보를 포함하는 중앙 테이블
dimension 테이블: fact 테이블에 대한 상세 정보를 제공하는 테이블
s3에 대용량 fact 테이블이 존재
redshift에는 소규모 dimension 테이블이 존재
fact 테이블을 redshift로 적재하지 않고 위의 두 테이블을 조인하고 싶다면
-> 이 때 사용하는 것이 redshift spectrum
데이터 베이스 엔진이 외부에 저장된 데이터를 마치 내부 테이블처럼 사용하는 방법
외부 테이블은 외부에 저장된 대량의 데이터를 데이터베이스 내부로 복사하고 쓰는 것이 아니라 임시 목적으로 사용하는 방식
sql 명령어로 데이터 베이스에 외부 테이블 생성 가능
이 경우 데이터를 새로 만드는 것이 아니라 참조만
외부 테이블은 다양한 형식을 지원하기에 원격 데이터베이스와 같은 다양한 데이터 소스에 대해 사용 가능
외부 테이블을 사용하여 데이터 처리후 결과를 데이터베이스에 적재하는데 사용가능
외부 테이블은 보안 및 성능 문제에 대해 신중한 고려가 필요
이는 hive등에서 처음 시작한 개념 이제는 대부분 빅데이터 시스템에서 사용됨
s3 내의 데이터가 외부 테이블이라 생각하면됨
스펙트럼을 사용하려면 awsflueconsolefullaccess 권한 지정이 필요
ETL 서비스로 아래와 같은 기능 제공
aws에 맞춰진 서비스이므로 외부에서는 사용하기 힘듬
데이터 카탈로그
ETL
간단한 드래그 앤 드롭 인터페이스를 통해 etl 작업 생성 가능
사용자는 데이터 소스 및 대상을 선택하고 데이터 변환 단계를 정의하는 스크립트 생성
작업 모니터링 로그
서버리스 실행
머신러닝 모델 개발을 처음부터 끝까지 해결해주는 aws tjqltm
mlops vmfpdla dnjr
크게 4가지 기능 제공
autoML 기능
모델 빌딩을 위한 훈련용 데이터 셋을 제공하면 자동으로 모델을 만들어주는 기능
훈련용 데이터 분석으로 파이썬 노트북을 만들어주고
다수의 머신러닝 알고리즘 하이퍼 파라미터의 조합에 대해 아래 작업을 수행
머신러닝 모델을 만들고 훈련하고 테스트하고 테스트 결과를 기록
전체적인 절차를 살펴보자.
1. 캐글 에서 데이터 다운
2. 데이터를 s3에 저장
3. 위의 데이터를 redshift에 copy
4. i am role을 통해서 생성 후 지정 -> sagemaker가 redshift에 접근
5. create model 명령 사용
테이블 데이터 정렬
디스크 공간 해제
삭제된 행에서 공간 회수
테이블 통계 업데이트
큰 테이블에 대한 vacuum 명령은 리소스를 많이 잡아 먹음