Tan Kim

snowflake

Snowflake

클라우드 기반 데이터 웨어하우스(DW). 스토리지와 컴퓨팅을 분리한 아키텍처로, 대용량 분석 쿼리에 특화되어 있다.

핵심 개념

용어 설명
Virtual Warehouse 쿼리를 실행하는 컴퓨팅 클러스터 (독립적으로 스케일)
Database / Schema 논리적 데이터 구조 (RDBMS와 동일)
Stage 데이터 로딩/언로딩을 위한 임시 저장소 (S3 등 연결 가능)
Snowpipe 자동 연속 데이터 수집 파이프라인
Time Travel 과거 데이터 조회 및 복구 (최대 90일)
Zero-copy Clone 메타데이터만 복사해 즉시 테이블/DB 복제

아키텍처

Cloud Storage (S3/Azure Blob/GCS)
        ↕ (분리)
Virtual Warehouse (컴퓨팅)
        ↕
Cloud Services Layer (메타데이터, 쿼리 최적화, 인증)
  • 스토리지와 컴퓨팅이 완전히 분리 → 각각 독립적으로 스케일링

OLTP vs OLAP

OLTP (MySQL 등) OLAP (Snowflake)
목적 트랜잭션 처리 대용량 분석
쿼리 단건 읽기/쓰기 집계, 조인, 스캔
데이터 크기 GB 수준 TB ~ PB
최적화 행(Row) 기반 열(Column) 기반

주요 SQL

-- Virtual Warehouse 제어
USE WAREHOUSE my_wh;
ALTER WAREHOUSE my_wh SUSPEND;
ALTER WAREHOUSE my_wh RESUME;
 
-- Time Travel (3일 전 데이터 조회)
SELECT * FROM orders AT (OFFSET => -60*60*24*3);
 
-- Zero-copy Clone
CREATE TABLE orders_backup CLONE orders;
CREATE DATABASE dev CLONE production;
 
-- 외부 스테이지에서 데이터 로딩 (S3)
COPY INTO orders
FROM @my_s3_stage/orders/
FILE_FORMAT = (TYPE = 'CSV' FIELD_OPTIONALLY_ENCLOSED_BY = '"');
 
-- 스키마 자동 감지
CREATE TABLE logs
USING TEMPLATE (
  SELECT ARRAY_AGG(OBJECT_CONSTRUCT(*))
  FROM TABLE(INFER_SCHEMA(LOCATION => '@my_stage', FILE_FORMAT => 'my_format'))
);

Virtual Warehouse 크기

크기 크레딧/시간 용도
XS 1 소규모 쿼리
S 2 일반 분석
M 4 중간 규모
L 8 대용량 집계
XL+ 16+ 초대용량
  • 쿼리 없으면 자동 일시정지(Auto-suspend) 설정 권장 → 비용 절감

메모