Data Vault

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

Nuno Rocha

Director of Engineering

Introduction au modèle Data Vault

  • Modèle Data Vault : technique de modélisation axée sur l'historisation des données, fondée sur des hubs, des liens et des satellites.

Modèle Data Vault

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

Composants du Data Vault

  • Hubs : représentent des concepts métiers uniques via une clé métier unique.

Modèle Data Vault : hubs

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

Composants du Data Vault (1)

  • Liens : capturent les relations et interactions entre hubs.

Modèle Data Vault : liens

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

Composants du Data Vault (2)

  • Satellites : stockent les détails descriptifs et historiques liés aux hubs et aux liens.

Modèle Data Vault : satellites

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

Créer des hubs

Hubs du Data Vault pour l'université

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

Créer des hubs (1)

  • AUTOINCREMENT : propriété d'attribut générant automatiquement, pour chaque nouvelle ligne, une valeur numérique unique croissante.
CREATE OR REPLACE TABLE hub_students (
    student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY
);
Introduction à la modélisation des données dans Snowflake

Créer des hubs (2)

  • Créer un nouveau hub avec une clé numérique unique générée automatiquement et l'identifiant du concept :
CREATE OR REPLACE TABLE hub_students (
    student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
    student_id NUMBER(10,0)
);
1 Ensuite, nous listons la clé métier qui identifie chaque concept ; student_id identifie chaque étudiant
Introduction à la modélisation des données dans Snowflake

Créer des hubs (3)

  • Ajouter des attributs de traçabilité historique :
CREATE OR REPLACE TABLE hub_students (
    student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
    student_id NUMBER(10,0),
    load_date TIMESTAMP,
    record_source VARCHAR(255)
);
Introduction à la modélisation des données dans Snowflake

Créer des hubs (4)

  • Créer le hub des cours :
CREATE OR REPLACE TABLE hub_classes (
    class_key NUMBER(10,0)
          AUTOINCREMENT 
          PRIMARY KEY,
    class_id NUMBER(10,0),
    load_date TIMESTAMP,
    record_source VARCHAR(255)
);
  • Créer le hub des écoles :
CREATE OR REPLACE TABLE hub_schools (
    school_key NUMBER(10,0) 
          AUTOINCREMENT 
          PRIMARY KEY,
    school_id NUMBER(10,0),
    load_date TIMESTAMP,
    record_source VARCHAR(255)
);
Introduction à la modélisation des données dans Snowflake

Créer des liens

Liens du Data Vault pour l'université

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

Créer des liens (1)

  • Créer une entité lien avec une clé numérique unique générée automatiquement :
CREATE OR REPLACE TABLE link_enrollments (
    link_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY
);
Introduction à la modélisation des données dans Snowflake

Créer des liens (2)

  • Ajouter des relations avec d'autres entités :
CREATE OR REPLACE TABLE link_enrollments (
    link_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
    student_key NUMBER(10,0),
    class_key NUMBER(10,0),
    FOREIGN KEY (student_key) REFERENCES hub_students(student_key),
    FOREIGN KEY (class_key) REFERENCES hub_classes(class_key)
);
Introduction à la modélisation des données dans Snowflake

Créer des liens (3)

  • Ajouter des attributs de traçabilité historique :
CREATE OR REPLACE TABLE link_enrollments (
    link_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
    student_key NUMBER(10,0),
    class_key NUMBER(10,0),
    load_date TIMESTAMP,
    record_source VARCHAR(255),
    FOREIGN KEY (student_key) REFERENCES hub_students(student_key),
    FOREIGN KEY (class_key) REFERENCES hub_classes(class_key)
);
Introduction à la modélisation des données dans Snowflake

Créer des liens (4)

  • Créer l'entité lien des offres :
CREATE OR REPLACE TABLE link_offerings (
    link_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
    class_key NUMBER(10,0),
    school_key NUMBER(10,0),
    load_date TIMESTAMP,
    record_source VARCHAR(255),
    FOREIGN KEY (class_key) REFERENCES hub_classes(class_key),
    FOREIGN KEY (school_key) REFERENCES hub_schools(school_key)
);
Introduction à la modélisation des données dans Snowflake

Créer des satellites

Satellites du Data Vault pour l'université

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

Créer des satellites (1)

  • Créer un nouveau satellite listant tous les attributs du concept :
CREATE OR REPLACE TABLE sat_student (
    name VARCHAR(255),
    email VARCHAR(255)
);
Introduction à la modélisation des données dans Snowflake

Créer des satellites (2)

  • Ajouter des attributs de traçabilité historique :
CREATE OR REPLACE TABLE sat_student (
    name VARCHAR(255),
    email VARCHAR(255),
    load_date TIMESTAMP,
    record_source VARCHAR(255)
);
Introduction à la modélisation des données dans Snowflake

Créer des satellites (3)

  • Relier le satellite à son hub :
CREATE OR REPLACE TABLE sat_student (
    student_key NUMBER(10,0),
    name VARCHAR(255),
    email VARCHAR(255),
    load_date TIMESTAMP,
    record_source VARCHAR(255),
    FOREIGN KEY (student_key) REFERENCES hub_students(student_key)
);
Introduction à la modélisation des données dans Snowflake

Créer des satellites (4)

  • Créer un nouveau satellite pour les cours :
CREATE OR REPLACE TABLE sat_class (
    class_key NUMBER(10,0),
    class_name VARCHAR(255),
    load_date TIMESTAMP,
    record_source VARCHAR(255),
    FOREIGN KEY (class_key) 
    REFERENCES hub_classes(class_key)
);
  • Créer un nouveau satellite pour les écoles :
CREATE OR REPLACE TABLE sat_school (
    school_key NUMBER(10,0),
    school_name VARCHAR(255),
    load_date TIMESTAMP,
    record_source VARCHAR(255),
    FOREIGN KEY (school_key) 
    REFERENCES hub_schools(school_key)
);
Introduction à la modélisation des données dans Snowflake

Terminologie et fonctions : aperçu

  • Modèle Data Vault : technique de modélisation axée sur l'historisation, utilisant des hubs, des liens et des satellites.
  • Hubs : représentent des concepts métiers uniques via une clé métier.
  • Liens : capturent les relations et interactions entre hubs.
  • Satellites : stockent des détails descriptifs et historiques liés aux hubs et liens.
  • CREATE OR REPLACE TABLE : commande SQL pour créer ou remplacer une table.
  • PRIMARY KEY : clause SQL définissant l'identifiant unique d'une table.
  • AUTOINCREMENT : propriété générant automatiquement une valeur numérique unique croissante par ligne.
  • FOREIGN KEY (...) REFERENCES (...) : clause SQL créant un lien entre deux tables.
Introduction à la modélisation des données dans Snowflake

Aperçu des fonctions

CREATE OR REPLACE TABLE table_name (
      -- Créer une valeur unique auto-générée comme clé primaire
      unique_key column_datatype AUTOINCREMENT PRIMARY KEY,
      other_business_key column_datatype,
      foreign_column column_datatype,
      other_foreign_column column_datatype,
      -- Ajouter des relations avec d'autres entités
      FOREIGN KEY(foreign_column) REFERENCES foreign_table(PK_from_foreign_table),
      FOREIGN KEY(other_foreign) REFERENCES foreign_table(PK_from_other_foreign)
);
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...