Objets de données Snowflake

Introduction à la modélisation des données dans Snowflake

Nuno Rocha

Director of Engineering

Entrepôt de données

Représentation d'un entrepôt de données

Introduction à la modélisation des données dans Snowflake

Entrepôt traditionnel vs virtuel

Entrepôt de données virtuel Snowflake

Introduction à la modélisation des données dans Snowflake

Traditionnel vs virtuel (1)

Entrepôt virtuel Snowflake vs entrepôt traditionnel

Introduction à la modélisation des données dans Snowflake

Traditionnel vs virtuel (2)

  • CREATE WAREHOUSE : clause Snowflake qui crée une ressource de calcul virtuelle pour traiter les données.
  • USE WAREHOUSE : clause Snowflake qui définit l'entrepôt actif pour la session en cours.

Entrepôt virtuel Snowflake vs entrepôt traditionnel

Introduction à la modélisation des données dans Snowflake

Schémas et tables

Bases de données, schémas, tables

Introduction à la modélisation des données dans Snowflake

Schémas et tables (1)

Interface Snowflake

Introduction à la modélisation des données dans Snowflake

Schémas et tables (2)

  • CREATE DATABASE : clause Snowflake pour créer une base destinée à organiser les objets de données.
  • CREATE SCHEMA : clause Snowflake pour définir un conteneur regroupant tables et vues.
  • CREATE TABLE : commande Snowflake pour créer une table et ses colonnes dans un schéma donné.

Interface Snowflake, création d'éléments

Introduction à la modélisation des données dans Snowflake

Vues

Visualisation d'une vue

  • VIEWS :
    • Fonctionnent comme une entité virtuelle.
    • Évitent les doublons.
    • Économisent le stockage et assurent la cohérence.
    • Présentent les données dynamiquement selon la logique de requête.
Introduction à la modélisation des données dans Snowflake

Vues (1)

  • Exemple de VIEW résumant les commandes urgentes des clients
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;
Introduction à la modélisation des données dans Snowflake

Vues matérialisées

Vue pré-calculée

  • MATERIALIZED VIEWS :
    • Stockent des résultats pré-calculés.
    • Améliorent les performances en conservant des opérations calculées.
    • Réduisent le temps de traitement des requêtes.
    • Maintiennent un instantané actualisé accessible à tout moment.
    • Encapsulent des opérations complexes pour un modèle de données simplifié.
Introduction à la modélisation des données dans Snowflake

Vues matérialisées (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;
Introduction à la modélisation des données dans Snowflake

Vue d'ensemble de la terminologie

  • Entrepôt de données (traditionnel) : système centralisé pour stocker et analyser de gros volumes sur un serveur unique.
  • Entrepôt de données virtuel (dans Snowflake) : ensemble flexible et évolutif de ressources cloud dédié au traitement et à l'analyse des données.
  • Base de données : dans Snowflake, conteneur principal des données, qui contient les schémas.
  • Schéma : ensemble de structures logiques contenant tables, vues, etc.
  • Table : représentation d'une entité ; structure de stockage fondamentale, en lignes et colonnes, dans des schémas.
  • Vue : requête enregistrée présentant les données comme entité virtuelle sans stockage séparé.
  • Vue matérialisée : version stockée d'une vue qui enregistre physiquement le résultat pour un accès plus rapide.
Introduction à la modélisation des données dans Snowflake

Vue d'ensemble des fonctions

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);
Introduction à la modélisation des données dans Snowflake

Modèle de vue (matérialisée) exemplaire

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;
Introduction à la modélisation des données dans Snowflake

Passons à la pratique !

Introduction à la modélisation des données dans Snowflake

Preparing Video For Download...