Obiecte de date Snowflake

Introducere în modelarea datelor în Snowflake

Nuno Rocha

Director of Engineering

Depozit de date

Reprezentare depozit de date

Introducere în modelarea datelor în Snowflake

Depozit tradițional vs. virtual

Depozit de date virtual Snowflake

Introducere în modelarea datelor în Snowflake

Depozit tradițional vs. virtual (1)

Depozit de date virtual Snowflake vs. tradițional

Introducere în modelarea datelor în Snowflake

Depozit tradițional vs. virtual (2)

  • CREATE WAREHOUSE: Comandă Snowflake care creează o resursă de calcul virtuală pentru procesarea datelor.
  • USE WAREHOUSE: Comandă Snowflake care desemnează depozitul de date activ pentru sesiunea curentă.

Depozit de date virtual Snowflake vs. tradițional

Introducere în modelarea datelor în Snowflake

Scheme și tabele

Bază de date, Scheme, Tabele

Introducere în modelarea datelor în Snowflake

Scheme și tabele (1)

Interfața Snowflake

Introducere în modelarea datelor în Snowflake

Scheme și tabele (2)

  • CREATE DATABASE: Comandă Snowflake pentru crearea unei baze de date noi.
  • CREATE SCHEMA: Comandă Snowflake pentru definirea unui container ce grupează tabele și vizualizări.
  • CREATE TABLE: Comandă Snowflake pentru crearea unui tabel cu coloane într-o schemă specificată.

Interfața Snowflake, creare elemente

Introducere în modelarea datelor în Snowflake

Vizualizări

Vizualizare ilustrată

  • VIEWS:
    • Acționează ca o entitate virtuală.
    • Evită duplicarea datelor.
    • Economisește spațiu de stocare și asigură consistența datelor.
    • Prezintă dinamic datele pe baza logicii de interogare.
Introducere în modelarea datelor în Snowflake

Vizualizări (1)

  • Exemplu VIEW pentru rezumarea comenzilor urgente ale clienților
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;
Introducere în modelarea datelor în Snowflake

Vizualizări materializate

Vizualizare precalculată

  • MATERIALIZED VIEWS:
    • Stochează rezultate precalculate.
    • Îmbunătățesc performanța interogărilor prin stocarea operațiilor calculate.
    • Reduc timpul de procesare a interogărilor.
    • Mențin un instantaneu actualizat al datelor, disponibil oricând.
    • Încapsulează operații complexe pentru o modelare simplificată a datelor.
Introducere în modelarea datelor în Snowflake

Vizualizări materializate (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;
Introducere în modelarea datelor în Snowflake

Prezentare generală a terminologiei

  • Depozit de date (tradițional): Sistem centralizat pentru stocarea și analiza volumelor mari de date, pe un singur server.
  • Depozit de date virtual (în Snowflake): Set flexibil și scalabil de resurse de calcul în cloud, dedicat procesării și analizei datelor.
  • Bază de date: În Snowflake, containerul principal pentru date, care conține scheme.
  • Schemă: Colecție de structuri logice ce conțin tabele, vizualizări etc.
  • Tabel: Reprezentarea unei entități în baza de date; structură fundamentală de stocare, organizată în rânduri și coloane în cadrul schemelor.
  • Vizualizare: Interogare salvată care prezintă datele ca entitate virtuală, fără a le stoca separat.
  • Vizualizare materializată: Versiune stocată a unei vizualizări care salvează fizic rezultatul interogării pentru acces mai rapid.
Introducere în modelarea datelor în Snowflake

Prezentare generală a funcțiilor

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);
Introducere în modelarea datelor în Snowflake

Șablon de vizualizare (materializată) exemplară

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;
Introducere în modelarea datelor în Snowflake

Să exersăm!

Introducere în modelarea datelor în Snowflake

Preparing Video For Download...