데이터 보호 및 공유

Snowflake 아키텍처

Emily Melhuish

Technical Curriculum Developer, Snowflake

문제가 발생했을 때

이전

  • subscription 테이블에 847개 행 존재
DELETE FROM subscriptions
WHERE status = 'inactive';

woopsie.png

이후

  • subscription 테이블에 0개 행 존재
  • Snowflake는 모든 변경 이전의 데이터 상태를 보존
  • 보존 기간 설정 가능

timetravel.png

Snowflake 아키텍처

타임 트래블

  • 보존 기간 내 임의 시점의 데이터 조회 가능
  • DATA_RETENTION_TIME_IN_DAYS계정, 데이터베이스, 스키마, 테이블 수준에서 설정 가능 (가장 낮은 수준 우선 적용)
  • Standard: 최대 보존 기간 1일
  • Enterprise: 최대 90일 (에디션 및 객체 규칙에 따름)
  • SELECT 쿼리에만 국한되지 않음

현재와 90일 전을 보여주는 타임라인

Snowflake 아키텍처

히스토리 탐색: 타임스탬프와 오프셋

  • AT BEFORE(STATEMENT) / BEFORE(STATEMENT)

    • 쿼리 ID를 사용하여 복구 연결
    • 해당 구문 실행 이전 상태로 데이터 복원
  • UNDROP

    • 예: UNDROP TABLE t
    • 복구 가능한 기간 내에서만 동작
Snowflake 아키텍처

히스토리 탐색: 구문과 Undrop

  • AT BEFORE(STATEMENT) / BEFORE(STATEMENT)

    • 쿼리 ID를 사용하여 복구 연결
    • 해당 구문 실행 이전 상태로 데이터 복원
  • UNDROP

    • 예: UNDROP TABLE t
    • 복구 가능한 기간 내에서만 동작
Snowflake 아키텍처

Fail-Safe

  • 타임 트래블 이후 데이터를 자동으로 7일 추가 보존 (Fail-safe)
  • 기본 설정으로, 별도 활성화 불필요
  • 복구 시 Snowflake 지원 필요
  • Fail-safe 데이터는 요금 청구 대상에 포함

옵션을 보여주는 타임라인

Snowflake 아키텍처

제로 카피 클로닝

SQL

CREATE TABLE SUBSCRIPTIONS_BACKUP 
  CLONE subscriptions;

출력

Table SUBSCRIPTIONS_BACKUP 
successfully created.
  • 클론은 기본 스토리지를 공유
  • 테이블이 분기될 때부터 스토리지 비용 발생

클론과 제로 공유 스토리지 표시

Snowflake 아키텍처

Snowflake 마켓플레이스

Snowflake 마켓플레이스 스크린샷

Snowflake 아키텍처

연습해 봅시다!

Snowflake 아키텍처

Preparing Video For Download...