Chapter 5. 테이블 클론(Lab)

Snowflake SE·2024년 12월 27일
0

Zero to Snowflake

목록 보기
10/21

0. 실습 시나리오

개발자들이 개발 및 테스트에 필요한 테이블을 사용하고자 합니다. 하지만 실제 운영 중인 데이터는 안전상의 이유로 직접 접근할 수 없도록 정책을 세웠기 때문에 해당 테이블의 소유자는 데이터를 복사해서 전달해 주려고 합니다.
이와 같은 상황을 가정하고 CTAS 형태의 방식으로 개발자들을 위한 테이블을 만드는 방법과 클론을 이용해 테이블을 만드는 방법을 비교하여 실습해 봅니다.

시나리오


1. 워크시트 준비

  1. Projects > Worksheets 에서 +를 클릭하여 새 SQL Worksheet를 만듭니다
  2. 타임스탬프로 만들어진 worksheet 에서 ...을 클릭하여 RENAME합니다
    • 이름 변경 : Lab5. Clone
  3. Snowsight UI또는 다음과 같은 SQL로 worksheet 컨텍스트를 설정합니다
    // 컨텍스트 설정
    USE ROLE sysadmin ;
    USE WAREHOUSE tasty_de_wh ;
    USE DATABASE tasty_db ;
    USE SCHEMA raw_pos ;

2. 테이블 복제

  1. 다음과 같이 CTAS를 실행해 봅니다

    // CTAS 수행
    CREATE OR REPLACE TABLE order_detail_ctas AS
    SELECT * FROM order_detail ;
    • 비교를 위해 수행 시간을 기록합니다
  2. 이번에는 Clone을 이용해 테이블을 복제합니다

    // Clone 수행
    CREATE OR REPLACE TABLE order_detail_clone 
     CLONE order_detail ;
    • 이전의 결과와 비교하기 위해 수행 시간을 기록합니다

3. 테이블 복제 결과 확인

  1. SHOW 구문을 사용하여 두 복제 테이블을 확인합니다

    // 테이블 정보 확인
    SHOW TABLES LIKE 'order_detail%' ;
  2. 데이터베이스 탭에서 두 복제 테이블에 대한 정보를 비교해 봅니다

    • Databases탭
    • TASTY_DB > RAW_POS > Tables
    • ORDER_DETAIL_CTAS와 ORDER_DETAIL_CLONE 위로 마우스를 올리면 데이터 행과 사이즈가 표시됩니다

4. 클론 테이블 사용

클론된 테이블은 원본 테이블과 별도로 운영할 수 있습니다.

  1. 클론 테이블에 데이터를 더 추가해 봅니다

    // 클론 테이블에 데이터 추가
    INSERT INTO order_detail_clone
    SELECT * replace(1000000000 + order_detail_id as order_detail_id) 
      FROM order_detail
     WHERE unit_price > 20
    ;
  2. SHOW 구문을 사용하여 원본 테이블과 클론 테이블을 확인합니다

    // 테이블 정보 확인
    SHOW TABLES LIKE 'order_detail%' ;
    • 데이터 행과 사이즈가 증가된 것을 확인할 수 있습니다
profile
Snowflake Korea SE

0개의 댓글