Snowflake 데이터 객체

Snowflake로 시작하는 데이터 모델링

Nuno Rocha

Director of Engineering

데이터 웨어하우스

데이터 웨어하우스 표현

Snowflake로 시작하는 데이터 모델링

전통식 vs. 가상 웨어하우스

Snowflake 가상 데이터 웨어하우스

Snowflake로 시작하는 데이터 모델링

전통식 vs. 가상 웨어하우스 (1)

Snowflake 가상 데이터 웨어하우스 vs. 전통적 데이터 웨어하우스

Snowflake로 시작하는 데이터 모델링

전통식 vs. 가상 웨어하우스 (2)

  • CREATE WAREHOUSE: 데이터 처리를 위한 가상 컴퓨팅 리소스를 만듭니다.
  • USE WAREHOUSE: 현재 세션의 활성 웨어하우스를 지정합니다.

Snowflake 가상 데이터 웨어하우스 vs. 전통적 데이터 웨어하우스

Snowflake로 시작하는 데이터 모델링

스키마와 테이블

데이터베이스, 스키마, 테이블

Snowflake로 시작하는 데이터 모델링

스키마와 테이블 (1)

Snowflake UI

Snowflake로 시작하는 데이터 모델링

스키마와 테이블 (2)

  • CREATE DATABASE: 데이터 객체를 구성할 새 데이터베이스를 만듭니다.
  • CREATE SCHEMA: 테이블과 뷰를 묶는 컨테이너를 정의합니다.
  • CREATE TABLE: 지정한 스키마에 새 테이블 구조와 열을 생성합니다.

Snowflake UI, Creating elements

Snowflake로 시작하는 데이터 모델링

뷰 시각화

  • 뷰(VIEWS):
    • 가상 객체처럼 동작합니다.
    • 데이터 중복을 피합니다.
    • 저장공간을 절약하고 일관성을 보장합니다.
    • 쿼리 로직에 따라 동적으로 데이터를 표시합니다.
Snowflake로 시작하는 데이터 모델링

뷰 (1)

  • 긴급 주문을 요약하는 예시 VIEW
CREATE OR REPLACE VIEW customer_urgent_orders AS
SELECT c.c_name AS customer_name, 
    COUNT(DISTINCT o_orderkey) AS order_count,
    SUM(o_totalprice) AS total_price
FROM customer AS c
    JOIN orders AS o 
    ON c.c_custkey = o.o_custkey
WHERE o.o_orderpriority = '1-URGENT'
GROUP BY c.c_name;
ORDER BY total_price DESC;
Snowflake로 시작하는 데이터 모델링

머티리얼라이즈드 뷰

사전 계산된 뷰

  • 머티리얼라이즈드 뷰(MATERIALIZED VIEWS):
    • 사전 계산 결과를 저장합니다.
    • 연산 결과를 보관해 쿼리 성능을 향상합니다.
    • 처리 시간을 줄입니다.
    • 언제든 조회 가능한 최신 스냅샷을 유지합니다.
    • 복잡한 연산을 캡슐화해 모델링을 단순화합니다.
Snowflake로 시작하는 데이터 모델링

머티리얼라이즈드 뷰 (1)

CREATE OR REPLACE MATERIALIZED VIEW top_customers AS
SELECT o.o_custkey AS customer_id,
    c.c_name AS customer_name,
    CASE 
        WHEN SUM(o.o_totalprice) > 5000000 THEN 'Over Price'
        WHEN SUM(o.o_totalprice) > 3000000 THEN 'Top Price'
        WHEN SUM(o.o_totalprice) > 2000000 THEN 'Average Price'
        ELSE 'Review Price'
    END AS total_price
FROM customer AS c
    JOIN orders AS o ON c.c_custkey = o.o_custkey
GROUP BY o.o_custkey, c.c_name
HAVING total_price > 2000000;
Snowflake로 시작하는 데이터 모델링

용어 요약

  • 데이터 웨어하우스(전통적): 단일 서버로 대용량 데이터를 저장·분석하는 중앙화 시스템.
  • 가상 데이터 웨어하우스(Snowflake): 데이터 처리·분석을 위한 유연하고 확장 가능한 클라우드 컴퓨팅 리소스 집합.
  • 데이터베이스: 스키마를 담는 기본 컨테이너.
  • 스키마: 테이블, 뷰 등을 포함하는 논리적 구조 모음.
  • 테이블: 엔터티를 표현하는 기본 저장 구조로, 스키마 내 행·열로 구성됩니다.
  • : 데이터를 별도 저장하지 않는 저장된 쿼리(가상 객체).
  • 머티리얼라이즈드 뷰: 쿼리 결과를 물리적으로 저장해 더 빠르게 액세스합니다.
Snowflake로 시작하는 데이터 모델링

기능 요약

CREATE OR REPLACE WAREHOUSE data_warehouse_name;
USE WAREHOUSE data_warehouse_name;
CREATE OR REPLACE DATABASE database_name;
CREATE OR REPLACE SCHEMA schema_name;
CREATE OR REPLACE TABLE table_name(
    column_name datatype,
    other_columns datatype);
Snowflake로 시작하는 데이터 모델링

예시 (머티리얼라이즈드) 뷰 템플릿

CREATE OR REPLACE VIEW view_name AS
SELECT column_name, 
    SUM(column_name2) AS sum_alias,
    CASE WHEN column_name5   condition   value THEN assigned_value
        ELSE another_assigned_value
    END AS case_alias
FROM table_name AS table_alias
    JOIN other_table AS other_alias ON table_alias.FK = other_alias.PK
    LEFT JOIN another_table AS another_alias ON table_alias.FK = other_alias.PK
GROUP BY column_name;
Snowflake로 시작하는 데이터 모델링

연습해 봅시다!

Snowflake로 시작하는 데이터 모델링

Preparing Video For Download...