Chapter 4. 파티션 푸르닝(Lab)

Snowflake SE·2024년 12월 26일
0

Zero to Snowflake

목록 보기
8/21

0. 실습 시나리오

실행한 쿼리가 전체 데이터 중 얼마나 데이터를 스캔했는지 확인해 봅니다.
데이터 저장된 파티션 중 데이터를 조회할 필요가 없는 부분을 스킵하는 과정을 파티션 푸르닝이라고 부릅니다.

1. 데이터 준비

데이터 적재 실습에서 사용한 order_header 테이블을 이용해서 새 테이블을 만듭니다. order_ts 컬럼을 기준으로 데이터를 정렬하여 데이터를 넣습니다

  1. Projects > Worksheets 에서 +를 클릭하여 새 SQL Worksheet를 만듭니다
  2. 타임스탬프로 만들어진 worksheet 에서 ...을 클릭하여 RENAME합니다
    • 이름 변경 : Lab4. Partition Pruning
  3. Snowsight UI또는 다음과 같은 SQL로 worksheet 컨텍스트를 설정합니다
    // 컨텍스트 설정
    USE ROLE sysadmin ;
    USE WAREHOUSE demo_build_wh ;
    USE DATABASE tasty_db ;
    USE SCHEMA raw_pos ;
  4. order_header 테이블을 order_ts 컬럼을 기준으로 정렬하여 신규 테이블을 생성합니다
    // 테이블 생성
    CREATE OR REPLACE TABLE order_header_by_order_ts AS
    SELECT * 
      FROM order_header 
     ORDER BY order_ts 
    ;

2. 가상웨어하우스 생성

  1. 새 웨어하우스를 생성합니다

    // 웨어하우스 생성
    CREATE OR REPLACE WAREHOUSE tasty_de_wh
           WAREHOUSE_SIZE = 'xsmall'
           WAREHOUSE_TYPE = 'standard'
           AUTO_SUSPEND = 60
           AUTO_RESUME = TRUE
           INITIALLY_SUSPENDED = TRUE
    ;
  2. 웨어하우스 확인

    // 웨어하우스 확인
    SHOW WAREHOUSES ;

3. 데이터 조회

  1. 새로 생성한 웨어하우스를 지정하지 않았다면 컨텍스트 설정부터 합니다

    // 웨어하우스 지정
    USE WAREHOUSE tasty_de_wh ;
  2. 다음과 같이 데이터를 조회합니다

    // Partition Pruning
    SELECT * FROM order_header_by_order_ts 
     WHERE order_ts between '2021-01-01 00:00:00' 
                        and '2022-01-01 00:00:00' 
    ;
  3. 쿼리 결과의 오른쪽 Query Details에서 ...을 클릭해 View Query Profile을 선택합니다
    오른쪽의 쿼리 프로파일의 통계를 보면 WHERE절의 필터 조건에 의해 193개의 마이크로파티션 중에 65개만 스캔한 결과를 알 수 있습니다
    파티션푸르닝

  4. 프로파일 결과는 닫고 다시 worksheet로 돌아가서 필터 조건을 더 줄여서 조회해 보겠습니다

    // Partition Pruning
    SELECT * FROM order_header_by_order_ts 
     WHERE order_ts between '2021-03-01 00:00:00' 
                        and '2021-03-02 00:00:00' 
    ;
  5. 이 전에 확인했던 방법과 마찬가지로 Query Profile에서 스캔한 파티션이 몇 개인지 확인해 봅니다
    파티션푸르닝

profile
Snowflake Korea SE

0개의 댓글