Oggetti dati in Snowflake

Introduzione al Data Modeling in Snowflake

Nuno Rocha

Director of Engineering

Data warehouse

Rappresentazione di data warehouse

Introduzione al Data Modeling in Snowflake

Warehouse tradizionale vs virtuale

Data warehouse virtuale Snowflake

Introduzione al Data Modeling in Snowflake

Tradizionale vs virtuale (1)

Data warehouse virtuale Snowflake vs data warehouse tradizionale

Introduzione al Data Modeling in Snowflake

Tradizionale vs virtuale (2)

  • CREATE WAREHOUSE: clausola Snowflake che crea una risorsa di calcolo virtuale per l'elaborazione dati.
  • USE WAREHOUSE: clausola che imposta il data warehouse attivo per la sessione corrente.

Data warehouse virtuale Snowflake vs data warehouse tradizionale

Introduzione al Data Modeling in Snowflake

Schemi e tabelle

Database, schemi, tabelle

Introduzione al Data Modeling in Snowflake

Schemi e tabelle (1)

Interfaccia Snowflake

Introduzione al Data Modeling in Snowflake

Schemi e tabelle (2)

  • CREATE DATABASE: clausola Snowflake per creare un nuovo database e organizzare gli oggetti dati.
  • CREATE SCHEMA: clausola per definire un contenitore che raggruppa tabelle e viste.
  • CREATE TABLE: comando per creare una nuova tabella e le sue colonne in uno schema specifico.

UI Snowflake, creazione elementi

Introduzione al Data Modeling in Snowflake

Viste

Visualizzazione di una vista

  • VISTE:
    • Agiscono come entità virtuali.
    • Evitano duplicati.
    • Risparmiano spazio e garantiscono coerenza.
    • Mostrano i dati in modo dinamico secondo la query.
Introduzione al Data Modeling in Snowflake

Viste (1)

  • Esempio di VISTA che riassume gli ordini urgenti dei clienti
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;
Introduzione al Data Modeling in Snowflake

Viste materializzate

Vista pre-calcolata

  • VISTE MATERIALIZZATE:
    • Memorizzano risultati pre-calcolati.
    • Migliorano le prestazioni memorizzando i calcoli.
    • Riduc-ono i tempi di elaborazione delle query.
    • Mantengono uno snapshot aggiornato sempre recuperabile.
    • Racchiudono logiche complesse per modellazione semplificata.
Introduzione al Data Modeling in Snowflake

Viste materializzate (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;
Introduzione al Data Modeling in Snowflake

Panoramica della terminologia

  • Data warehouse (tradizionale): sistema centralizzato per archiviare e analizzare grandi volumi di dati su un singolo server.
  • Virtual data warehouse (in Snowflake): risorse di calcolo cloud flessibili e scalabili per processare e analizzare dati.
  • Database: in Snowflake, contenitore primario che include schemi.
  • Schema: insieme di strutture logiche che contengono tabelle, viste, ecc.
  • Tabella: rappresentazione di un'entità; struttura base organizzata in righe e colonne dentro gli schemi.
  • Vista: query salvata che presenta i dati come entità virtuale senza archiviarli separatamente.
  • Vista materializzata: versione di una vista che salva fisicamente il risultato per accesso più rapido.
Introduzione al Data Modeling in Snowflake

Panoramica funzioni

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);
Introduzione al Data Modeling in Snowflake

Modello di vista (materializzata) d'esempio

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;
Introduzione al Data Modeling in Snowflake

Esercitiamoci!

Introduzione al Data Modeling in Snowflake

Preparing Video For Download...