본문 바로가기

데브코스/TIL

[TIL] 8주차_Day34: 데이터 웨어하우스 관리, 고급 SQL, BI 대시보드 (4)

💡Today I Learned

  • 데이터 웨어하우스, SQL, BI 대시보드에 대한 네 번째 수업을 진행했습니다.
  • Snowflake 실습

1. Snowflake

- Snowflake 특징

: 가변비용 모델임 → 컴퓨팅 인프라 & 스토리지가 별도로 설정

: 노드 수를 조정할 필요 x (Scale out), distkey 등의 최적화 필요 x

: 데이터 클라우드 이기도 o

: 자체 스토리지 이외에도 클라우드 스토리지를 외부 테이블로 사용 가능

: 멀티 클라우드 지원

: 다른 지역의 Snowflake DB 간의 데이터 공유 (cross-region)

: Semi-structured data (JSON 네이티브하게 지원 o) ... → Redshift보다 강력함

 

: 한 organization(조직) > 안에 여러 개의 계정 > 안에 여러 개의 DB > 안에 여러 개의 스키마 > 안에 여러 개의 테이블

1) Organization: 한 고객이 사용하는 모든 Snowflake 자원들을 통합하는 최상위 레벨 컨테이너

2) Accounts: 하나 이상의 DB로 구성 (자체 사용자/데이터/접근 권한 독립적으로 가짐)

3) Databases: 한 Account에 속한 데이터를 다루는 논리적인 컨테이너

 

- Data Marketplace

: 데이터 공유를 바탕으로 마켓플레이스가 만들어짐

: 무료/유료로 다른 사람들과 데이터를 공유

 

- Data Sharing

: 사내 혹은 파트너에게 스토리지 레벨에서 공유하는 방식

: 다른 사람의 데이터를 copy하는 게 아닌, access 권한을 얻어 접근

 

 

2. Snowflake 실습

- Warehouse

: Snowflake 스토리지(DB)에 있는 데이터들을 프로세싱 해주는 컴퓨팅 리소스

: admin > warehouses

 

- 테이블 생성 명령

CREATE OR REPLACE TABLE

: 이미 있으면 지우고 새로 만들기

: Redshift에서는 DROP TABLE 후 CREATE TABLE 했던 것과 동일

 

 

- 벌크 업데이트

COPY INTO ~ FROM ~ credentials=(S3 링크의 파일 엑세스 권한) ~ FILE_FORMAT

 

- 사용자 생성

: S3ReadOnly 권한만 > 보안 자격 증명 > 액세스 키 만들기 > AWS 외부에서 실행되는 애플리케이션 키 생성

: 1) 액세스 키 ID  2) 비밀 키 사용할 것임

 

- Snowflake 웹 UI

: 특정 SQL 문만 선택해서 부분 실행 가능

: 'dev' DB 아래에 3개의 스키마 > raw_data 아래에 3개의 테이블 > AWS S3 연결 (IAM Role 액세스 키 이용) > 각 테이블에 S3의 파일을 COPY INTO로 벌크 업데이트 > CTAS로 analytics 스키마 아래에 새로운 테이블 생성 (ELT) > 테이블 내용 확인

 

 

3. Snowflake 사용자 권한 설정

- Role과 User

*) Snowflake는 사용자 Group을 지원하지 않음 (Group=계승구조 지원 x, 불필요한 반복)

 

- Data Governance

: 필요한 데이터가 적재적소에 올바르게 사용됨을 보장하기 위한 데이터 관리 프로세스

 

1) Object Tagging

: object = organization, account, database, schema, table, view, column..

: obj에 태그를 검 (시스템 태그, user-defined 태그)  메타데이터

: 개인정보냐 아니냐, 민감정보냐 아니냐

: CREATE TAG 명령어로 생성

: tag는 (포함)구조를 따라 계승됨

 

2) Data Classification

: Snowflake가 자체적으로 특정 테이블의 컬럼을 살펴보고 개인정보/민감정보 자체 분류

: 자동 태깅 (매뉴얼하게 하기 힘드니)

: Analyze(시스템이 분류) - Review(사람이 리뷰) - Apply(사람이 적용)

 

3) Tag based Masking Policies

: 태그 정보에 따라 디테일하게 access 권한을 다르게 줄 수 있음

 

4) Access History

: 사용자 별로 Access 행동을 기록 (column 별로)

: 추후 보안/감사 추적 목적용

*) 다른 모든 클라우드 데이터 웨어하우스에도 제공됨

 

5) Object Dependencies

: 데이터 거버넌스와 시스템 무결성 유지를 목적

: (특히 ELT시) 보안이 걸린 table, column → 새로운 테이블 생성에 사용 시 원본 테이블의 속성이 그대로 따라가야

: 계승 관계를 따라 의존성 전파 (ex: column을 바꾸거나 drop 시 경보)

: 더 세밀한 보안, 액세스 제어

 

 

4. Snowflake 중단하기

- Marketplace

: 외부 데이터 소스 연동할 수 있는 plugin도 있음 (SaaS application)

 

- Data Sharing

: Data > Private Sharing 내가 share한 / 내가 share받은 데이터 확인 가능

 

- 중단

: 무료 기간 종료 후 결제 정보 입력해야지 계속 사용 가능

: 그 전에 중단할 경우 support 이메일 문의..

 


 

💡Furthermore

  • ODBC/JDBC
반응형