Immersion In Data

Snowflake 20

[Snowflake] Types of tables

1. Different table types Permanent : 영구테이블, default 값, 가장 일반적인 유형, time travel 보존기간 포함(0 - 90일), Fail Safe 포함 Transient : 일시테이블, time travel 보존기간 포함(0 - 1일), Fail Safe 미포함 Temporary : 임시테이블, time travel 보존기간 포함(0 - 1일), Fail Safe 미포함, 세션에만 존재(세션이 종료되면 테이블도 없어짐) 2. Permanent tables & databases 데이터 베이스 전환 USE OUR_FIRST_DB; 테이블 생성 CREATE OR REPLACE TABLE customers ( id int, first_name string, last_..

[Snowflake] Fail Safe

1. Understanding Fail Safe Faile Safe 재해 발생 시, 기록 데이터를 보호하는 역할 수행 영구 테이블의 경우 구성할 수 없는 7일의 시간 부여(time travel 기간이 끝난 후 즉시 시작됨) 사용자 상호작용이 없으며, Snowflake 측에서만 복구 가능(이 데이터를 직접 쿼리할 수 없음) 2. Fail Safe storage 스토리지 사용량 확인 SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.STORAGE_USAGE ORDER BY USAGE_DATE DESC; 스토리지 사용량 기가바이트로 변환 SELECT USAGE_DATE, STORAGE_BYTES / (1024*1024*1024) AS STORAGE_GB, STAGE_BYTES / (1024*..

[Snowflake] Time Travel

1. Using time travel 테이블 생성 CREATE OR REPLACE TABLE OUR_FIRST_DB.public.test ( id int, first_name string, last_name string, email string, gender string, Job string, Phone string); file format 생성 CREATE OR REPLACE FILE FORMAT MANAGE_DB.file_formats.csv_file type = csv field_delimiter = ',' skip_header = 1; 스테이지 생성 CREATE OR REPLACE STAGE MANAGE_DB.external_stages.time_travel_stage URL = 's3://dat..

[Snowflake] Snowpipe

1. What is Snowpipe 버킷에 파일이 나타나면 자동으로 데이터 로드를 활성화 분석에 데이터를 즉시 사용하는 경우 적용 웨어하우스 대신 서버리스를 사용 2. High-level steps 스테이지 생성 - COPY COMMAND 테스트 - 파이프 생성 - S3 알림 3. Creating stage 테이블 생성 CREATE OR REPLACE TABLE OUR_FIRST_DB.PUBLIC.employees ( id INT, first_name STRING, last_name STRING, email STRING, location STRING, department STRING ); file format 생성(null값 처리) CREATE OR REPLACE file format MANAGE_DB...

[Snowflake] Loading from AWS

1. Creating S3 bucket 버킷 이름 설정 : 버킷 이름은 전역에서 고유해야 함 AWS 리전 : Snowflake에서 선택한 동일한 리전을 선택함(동일한 리전끼리는 데이터 전송 비용이 무료임) 버킷 생성 확인 버킷안에 폴더 생성 2. Upload files in S3 csv 폴더 클릭 업로드 버튼 클릭 파일 추가 버튼 클릭 csv 파일 업로드 csv파일을 업로드 한 절차와 동일하게 json파일을 json 폴더에 업로드 3. Creating policy IAM 서비스 접속 새로운 역할(role) 생성 신뢰할 수 있는 엔터티 선택 AWS 계정 옵션에 외부 ID 필요 선택(더미로 '00000' 적용) 권한 추가(S3 Full Access) 버킷 생성 확인 ExternalID 수정 4. Creati..

[Snowflake] Performance optimization

1. Performance in Snowflake 목적 : 쿼리 성능 최적화, 비용 절감 Snowflake에서 성능을 최적화하는 방법 : 마이크로 파티션을 자동적으로 관리 특정 사용자 그룹을 위한 전용 웨어하우스 생성 : 서로 다른 워크로드에 따라 분리 Scaling Up : 이미 알고있는 패턴의 많은 워크로드를 위한 작업 Scaling Out : 워크로드의 패턴을 알 수 없는 상태인 동적 작업 최대 캐시 사용 : 자동 캐싱 최대화 클러스터 키 : 사이즈가 큰 테이블을 위한 작업 cf) 전통적인 성능 최적화 방법 인덱스, PK 추가 테이블 파티션 생성 쿼리 실행 테이블 계획 분석 불필요한 전체 테이블 스캔 제거 2. Create dedicated virtual warehouse 사용자 그룹 또는 워크로드..

[Snowflake] Loading unstructured data

1. Loading unstrunctured data 스테이지 생성 raw data 로드 분석 & 파싱 평면화 & 로드 2. Creating stage & raw file 스테이지 생성 CREATE OR REPLACE stage MANAGE_DB.EXTERNAL_STAGES.JSONSTAGE url='s3://bucketsnowflake-jsondemo'; 스테이지 확인 LIST @MANAGE_DB.EXTERNAL_STAGES.JSONSTAGE; file format 생성 CREATE OR REPLACE file format MANAGE_DB.FILE_FORMATS.JSONFORMAT TYPE = JSON; variant 옵션을 사용하여 테이블 생성 CREATE OR REPLACE table OUR_FI..

[Snowflake] Copy options

1. VALIDATION_MODE RETURN_n_ROWS : 지정된 행 수를 확인하고 반환한다. 처음 발생한 오류에서 실패한다. RETURN_ERRORS : Copy Command의 모든 오류를 반환한다. 새로운 database 생성 CREATE OR REPLACE DATABASE COPY_DB; 테이블 생성 CREATE OR REPLACE TABLE COPY_DB.PUBLIC.ORDERS ( ORDER_ID VARCHAR(30), AMOUNT VARCHAR(30), PROFIT INT, QUANTITY INT, CATEGORY VARCHAR(30), SUBCATEGORY VARCHAR(30)); example 1 : 에러가 없는 경우 스테이지 생성 CREATE OR REPLACE STAGE COPY_..

[Snowflake] Loading data

1. Bulk loading 가장 빈번한 방법 웨어하우스를 사용 스테이지에서 로드 명령을 복사(Copy Command) 변환 가능 2. Continuous loading 소량의 데이터를 로드하도록 설계됨 스테이지에서 추가되면 자동으로 실행 분석을 위해 결과를 늦춤 Snowpipe 이용(서버리스 기능) 3. 스테이지 데이터를 로드할 수 있는 위치를 포함하는 데이터베이스 개체 4. 외부 스테이지(External Stage) S3 Google Cloud Platform Microsoft Azure 스키마에서 데이터베이스가 생성됨 CREATE STAGE 명령을 사용하여 스테이지를 생성함 5. 내부 스테이지(Internal Stage) 로컬 스토리지는 Snowflake에 의해 유지됨 6. 데이터 로드 순서(Bul..

[Snowflake] Snowflake Architecture

1. Data warehouse 서로 다른 형식의 데이터들(database, csv, parquet..)을 ETL(Extract, Transform, Load) 과정을 통해 생성하는 하나의 공간 목적 : 서로 다른 데이터 소스를 보고와 분석을 위해 통합하여 사용하기 위해 Raw data(Staging area) → Data integration(Data Transformation) → Access layer 2. Cloud Computing Cloud 공급자인 AWS, Azure, GCP가 제공하는 물리적 서버들과 가상 머신, 물리적 스토리지를 이용하고, 데이터 스토리와 가상 웨어하우스, 메타데이터 관리를 SaaS(Software-as-a-Service)형태로 제공한다. 따라서 SaaS형태로 제공하는 기..