스테이지, 파일 형식, COPY INTO

Snowflake 데이터 파이프라인 자동화

Emily Melhuish

Technical Curriculum Developer, Snowflake

Snowflake가 지원하는 다양한 워크로드

Screenshot 2026-05-11 at 11.52.34 am.png

1 * Snowflake Learning Material
Snowflake 데이터 파이프라인 자동화

파이프라인 예시

 

 

Screenshot 2026-05-11 at 10.48.51 am.png

1 * Snowflake Learning Material
Snowflake 데이터 파이프라인 자동화

Harbr 소개

Harbr 가상 로고

Harbr 소개

  • 글로벌 물류 및 공급망 플랫폼
  • Snowflake를 활용해 배송, 창고 재고, 배달 성과를 추적
  • 여러 지역의 공급업체 시스템에서 데이터를 수집
Snowflake 데이터 파이프라인 자동화

데이터 로딩 문제

데이터 로딩 다이어그램

스테이지 = 임시 저장 위치

Snowflake 데이터 파이프라인 자동화

스테이지 유형

두 가지 스테이지 유형

내부 스테이지

  • 사용자
    • 단일 사용자 전용 스테이징 영역
  • 테이블
    • 특정 테이블에 연결됨
  • 명명됨
    • 스키마에 생성되는 데이터베이스 객체

외부 스테이지

  • 명명됨
    • 클라우드 공급자를 가리킴
Snowflake 데이터 파이프라인 자동화

스테이지 매개변수

디렉터리 테이블

CREATE STAGE harbr_stage
  DIRECTORY = (ENABLE = TRUE)

내부 스테이지 암호화

ENCRYPTION = (TYPE = SNOWFLAKE_FULL)
ENCRYPTION = (TYPE = SNOWFLAKE_SSE)

외부 스테이지 암호화

ENCRYPTION = 
([ TYPE = 'AWS_CSE' ] MASTER_KEY = '') 

ENCRYPTION = 
([ TYPE = 'AWS_SSE_S3' ]) 

...
Snowflake 데이터 파이프라인 자동화

파일 형식

  • 정형 형식: 구분자, 헤더 행, 인용 규칙이 있는 CSV
  • 반정형 형식: JSON, Parquet, Avro, ORC, XML

    • VARIANT 열에 직접 로드
    • 파싱 규칙을 한 번 정의하여 모든 로드 작업에 재사용
  • 형식 객체를 한 번만 업데이트

SQL

CREATE FILE FORMAT harbr_csv_format
  TYPE = 'CSV'
  FIELD_DELIMITER = ','
  SKIP_HEADER = 1;
Snowflake 데이터 파이프라인 자동화

COPY INTO

명명된 스테이지와 파일 형식을 사용한 로드

COPY INTO logistics.shipments
FROM @harbr_internal_stage/shipments/
FILE_FORMAT = (FORMAT_NAME = 'harbr_csv_format')
Snowflake 데이터 파이프라인 자동화

오류 처리

ON_ERROR 옵션 동작
ABORT_STATEMENT 첫 번째 오류 발생 시 전체 로드 중단 (기본값)
CONTINUE 오류 행을 건너뛰고 나머지 로드
SKIP_FILE 오류가 있는 파일 전체를 건너뜀
SKIP_FILE_<num> 오류 수가 지정된 횟수를 초과할 때만 파일 건너뜀
SKIP_FILE_<num>% 오류 비율이 지정된 임계값을 초과할 때만 파일 건너뜀
Snowflake 데이터 파이프라인 자동화

검증 모드와 COPY_HISTORY

로드 없이 검증 = 드라이 런

COPY INTO logistics.shipments
FROM @harbr_internal_stage/shipments/
FILE_FORMAT = (FORMAT_NAME = 'harbr_csv_format')
VALIDATION_MODE = RETURN_ERRORS;

로드 이력 확인

SELECT * FROM TABLE(INFORMATION_SCHEMA.COPY_HISTORY(
  TABLE_NAME => 'shipments',
  START_TIME => DATEADD('hour', -24,
    CURRENT_TIMESTAMP())));
Snowflake 데이터 파이프라인 자동화

연습해 봅시다!

Snowflake 데이터 파이프라인 자동화

Preparing Video For Download...