Data Vault

Introducción al modelado de datos en Snowflake

Nuno Rocha

Director of Engineering

Introducción al modelo Data Vault

  • Modelo Data Vault: Técnica de modelado centrada en el seguimiento histórico de los datos, caracterizada por usar hubs, links y satellites.

Modelo Data Vault

Introducción al modelado de datos en Snowflake

Componentes de Data Vault

  • Hubs: Representan conceptos de negocio únicos con una clave de negocio singular.

Modelo Data Vault: hubs

Introducción al modelado de datos en Snowflake

Componentes de Data Vault (1)

  • Links: Recogen las relaciones e interacciones entre hubs.

Modelo Data Vault: Links

Introducción al modelado de datos en Snowflake

Componentes de Data Vault (2)

  • Satellites: Almacenan detalles descriptivos e históricos relacionados con hubs y links.

Modelo Data Vault: Satellites

Introducción al modelado de datos en Snowflake

Creación de hubs

Hubs del Data Vault universitario

Introducción al modelado de datos en Snowflake

Creación de hubs (1)

  • AUTOINCREMENT: Propiedad que genera automáticamente valores numéricos únicos y secuenciales para cada nueva fila.
CREATE OR REPLACE TABLE hub_students (
    student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY
);
Introducción al modelado de datos en Snowflake

Creación de hubs (2)

  • Crea un nuevo hub con una clave numérica única generada automáticamente y el id del concepto del hub:
CREATE OR REPLACE TABLE hub_students (
    student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
    student_id NUMBER(10,0)
);
1 A continuación, listamos la clave de negocio que identifica cada concepto; student_id identificará a cada estudiante
Introducción al modelado de datos en Snowflake

Creación de hubs (3)

  • Añade atributos de seguimiento histórico:
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)
);
Introducción al modelado de datos en Snowflake

Creación de hubs (4)

  • Crea el nuevo hub de clases:
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)
);
  • Crea el nuevo hub de escuelas:
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)
);
Introducción al modelado de datos en Snowflake

Creación de links

Links del Data Vault universitario

Introducción al modelado de datos en Snowflake

Creación de links (1)

  • Crea una entidad link con una clave numérica única generada automáticamente:
CREATE OR REPLACE TABLE link_enrollments (
    link_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY
);
Introducción al modelado de datos en Snowflake

Creación de links (2)

  • Añade relaciones con otras entidades:
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)
);
Introducción al modelado de datos en Snowflake

Creación de links (3)

  • Añade atributos de seguimiento histórico:
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)
);
Introducción al modelado de datos en Snowflake

Creación de links (4)

  • Crea la nueva entidad link de ofertas:
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)
);
Introducción al modelado de datos en Snowflake

Creación de satellites

Satellites del Data Vault universitario

Introducción al modelado de datos en Snowflake

Creación de satellites (1)

  • Crea un nuevo satellite con todos los atributos del concepto:
CREATE OR REPLACE TABLE sat_student (
    name VARCHAR(255),
    email VARCHAR(255)
);
Introducción al modelado de datos en Snowflake

Creación de satellites (2)

  • Añade atributos de seguimiento histórico:
CREATE OR REPLACE TABLE sat_student (
    name VARCHAR(255),
    email VARCHAR(255),
    load_date TIMESTAMP,
    record_source VARCHAR(255)
);
Introducción al modelado de datos en Snowflake

Creación de satellites (3)

  • Añade un vínculo entre el satellite y su hub correspondiente:
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)
);
Introducción al modelado de datos en Snowflake

Creación de satellites (4)

  • Crea un nuevo satellite de clases:
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)
);
  • Crea un nuevo satellite de escuelas:
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)
);
Introducción al modelado de datos en Snowflake

Resumen de terminología y funciones

  • Modelo Data Vault: Técnica de modelado centrada en el seguimiento histórico, con hubs, links y satellites.
  • Hubs: Representan conceptos de negocio únicos con una clave de negocio.
  • Links: Recogen relaciones e interacciones entre hubs.
  • Satellites: Guardan detalles descriptivos e históricos ligados a hubs y links.
  • CREATE OR REPLACE TABLE: Comando SQL para crear o reemplazar la estructura de una tabla.
  • PRIMARY KEY: Cláusula SQL que define una columna como identificador único.
  • AUTOINCREMENT: Propiedad que genera automáticamente valores numéricos únicos y crecientes para cada fila nueva.
  • FOREIGN KEY (...) REFERENCES (...): Cláusula SQL para crear un vínculo entre dos tablas.
Introducción al modelado de datos en Snowflake

Resumen de funciones

CREATE OR REPLACE TABLE table_name (
      -- Crear un valor único autogenerado como clave primaria
      unique_key column_datatype AUTOINCREMENT PRIMARY KEY,
      other_business_key column_datatype,
      foreign_column column_datatype,
      other_foreign_column column_datatype,
      -- Añadir relación con otras entidades
      FOREIGN KEY(foreign_column) REFERENCES foreign_table(PK_from_foreign_table),
      FOREIGN KEY(other_foreign) REFERENCES foreign_table(PK_from_other_foreign)
);
Introducción al modelado de datos en Snowflake

¡Vamos a practicar!

Introducción al modelado de datos en Snowflake

Preparing Video For Download...