Obiekty danych Snowflake

Wprowadzenie do modelowania danych w Snowflake

Nuno Rocha

Director of Engineering

Hurtownia danych

Reprezentacja hurtowni danych

Wprowadzenie do modelowania danych w Snowflake

Tradycyjna a wirtualna hurtownia

Wirtualna hurtownia danych Snowflake

Wprowadzenie do modelowania danych w Snowflake

Tradycyjna a wirtualna hurtownia (1)

Wirtualna hurtownia danych Snowflake a tradycyjna hurtownia danych

Wprowadzenie do modelowania danych w Snowflake

Tradycyjna a wirtualna hurtownia (2)

  • CREATE WAREHOUSE: Klauzula Snowflake tworząca wirtualny zasób obliczeniowy do przetwarzania danych.
  • USE WAREHOUSE: Klauzula Snowflake wskazująca aktywną hurtownię danych dla bieżącej sesji.

Wirtualna hurtownia danych Snowflake a tradycyjna hurtownia danych

Wprowadzenie do modelowania danych w Snowflake

Schematy i tabele

Baza danych, schematy, tabele

Wprowadzenie do modelowania danych w Snowflake

Schematy i tabele (1)

Interfejs użytkownika Snowflake

Wprowadzenie do modelowania danych w Snowflake

Schematy i tabele (2)

  • CREATE DATABASE: Klauzula Snowflake tworząca nową bazę danych do organizacji obiektów.
  • CREATE SCHEMA: Klauzula Snowflake definiująca kontener grupujący tabele i widoki.
  • CREATE TABLE: Polecenie Snowflake tworzące strukturę tabeli i kolumny w określonym schemacie.

Interfejs Snowflake – tworzenie elementów

Wprowadzenie do modelowania danych w Snowflake

Widoki

Wizualizacja widoku

  • WIDOKI:
    • Działają jak wirtualny obiekt.
    • Eliminują duplikaty danych.
    • Oszczędzają miejsce i zapewniają spójność danych.
    • Dynamicznie prezentują dane na podstawie logiki zapytania.
Wprowadzenie do modelowania danych w Snowflake

Widoki (1)

  • Przykładowy widok VIEW podsumowujący pilne zamówienia klientów
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;
Wprowadzenie do modelowania danych w Snowflake

Zmaterializowane widoki

Wstępnie obliczony widok

  • ZMATERIALIZOWANE WIDOKI:
    • Przechowują wstępnie obliczone wyniki.
    • Poprawiają wydajność zapytań dzięki zapisaniu wyników operacji.
    • Skracają czas przetwarzania zapytań.
    • Utrzymują odświeżoną migawkę danych dostępną w dowolnym momencie.
    • Upraszczają modelowanie danych przez enkapsulację złożonych operacji.
Wprowadzenie do modelowania danych w Snowflake

Zmaterializowane widoki (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;
Wprowadzenie do modelowania danych w Snowflake

Przegląd terminologii

  • Hurtownia danych (tradycyjna): Scentralizowany system przechowywania i analizy dużych wolumenów danych oparty na jednym serwerze.
  • Wirtualna hurtownia danych (Snowflake): Elastyczny, skalowalny zestaw zasobów obliczeniowych w chmurze przeznaczony do przetwarzania i analizy danych.
  • Baza danych: W Snowflake główny kontener danych przechowujący schematy.
  • Schemat: Zbiór struktur logicznych zawierających tabele, widoki itp.
  • Tabela: Reprezentacja encji w bazie danych; podstawowa struktura przechowywania danych zorganizowana w wiersze i kolumny w ramach schematów.
  • Widok: Zapisane zapytanie prezentujące dane jako wirtualny obiekt bez oddzielnego ich przechowywania.
  • Zmaterializowany widok: Zapisana wersja widoku, która fizycznie przechowuje wynik zapytania dla szybszego dostępu.
Wprowadzenie do modelowania danych w Snowflake

Przegląd funkcji

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);
Wprowadzenie do modelowania danych w Snowflake

Przykładowy szablon widoku (zmaterializowanego)

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;
Wprowadzenie do modelowania danych w Snowflake

Czas na ćwiczenia!

Wprowadzenie do modelowania danych w Snowflake

Preparing Video For Download...