Snowflake 데이터 파이프라인 자동화
Emily Melhuish
Technical Curriculum Developer, Snowflake



Harbr 소개

스테이지 = 임시 저장 위치

내부 스테이지
외부 스테이지
디렉터리 테이블
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' ])
...
반정형 형식: JSON, Parquet, Avro, ORC, XML
VARIANT 열에 직접 로드형식 객체를 한 번만 업데이트
SQL
CREATE FILE FORMAT harbr_csv_format
TYPE = 'CSV'
FIELD_DELIMITER = ','
SKIP_HEADER = 1;
명명된 스테이지와 파일 형식을 사용한 로드
COPY INTO logistics.shipments
FROM @harbr_internal_stage/shipments/
FILE_FORMAT = (FORMAT_NAME = 'harbr_csv_format')
| ON_ERROR 옵션 | 동작 |
|---|---|
ABORT_STATEMENT |
첫 번째 오류 발생 시 전체 로드 중단 (기본값) |
CONTINUE |
오류 행을 건너뛰고 나머지 로드 |
SKIP_FILE |
오류가 있는 파일 전체를 건너뜀 |
SKIP_FILE_<num> |
오류 수가 지정된 횟수를 초과할 때만 파일 건너뜀 |
SKIP_FILE_<num>% |
오류 비율이 지정된 임계값을 초과할 때만 파일 건너뜀 |
로드 없이 검증 = 드라이 런
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 데이터 파이프라인 자동화