Elegir el enfoque adecuado

Introducción al modelado de datos en Snowflake

Nuno Rocha

Director of Engineering

Casos de uso de cada técnica de modelado

Casos de uso de los modelos Entidad-Relación (ER)

Introducción al modelado de datos en Snowflake

Casos de uso de cada técnica de modelado (1)

Casos de uso de los modelos dimensionales

Introducción al modelado de datos en Snowflake

Casos de uso de cada técnica de modelado (2)

Casos de uso del modelado Data Vault

Introducción al modelado de datos en Snowflake

Aspectos técnicos a considerar

Pros y contras del modelo ER

Introducción al modelado de datos en Snowflake

Aspectos técnicos a considerar (1)

Pros y contras del modelo dimensional

Introducción al modelado de datos en Snowflake

Aspectos técnicos a considerar (2)

Pros y contras de Data Vault

Introducción al modelado de datos en Snowflake

Modelos de datos en acción

Modelos en un diagrama de Venn

Introducción al modelado de datos en Snowflake

Modelos de datos en acción (1)

Datos universitarios en modelos en diagrama de Venn

Introducción al modelado de datos en Snowflake

Recuperar datos de los modelos

  • Recupera datos detallados de estudiantes haciendo referencia a la entidad hub y su satélite:
SELECT
    hs.student_key,
    ss.student_name
FROM hub_students AS hs
    JOIN sat_student AS ss ON hs.student_key = ss.student_key;
Introducción al modelado de datos en Snowflake

Recuperar datos de los modelos (1)

  • LEFT JOIN ON: cláusula SQL que combina todas las filas de la entidad izquierda con las coincidentes de la tabla derecha, basadas ON una clave
SELECT
    hs.student_key,
    ss.student_name
FROM hub_students AS hs
    JOIN sat_student AS ss ON hs.student_key = ss.student_key
    LEFT JOIN link_enrollment AS le ON hs.student_key = le.student_key
Introducción al modelado de datos en Snowflake

Recuperar datos de los modelos (2)

  • COUNT: función agregada de SQL que devuelve el número de elementos de un grupo.
  • GROUP BY: cláusula SQL para agrupar datos con los mismos valores.
SELECT
    hs.student_key,
    ss.student_name,
    COUNT(le.class_key) AS NumberOfEnrollments
FROM hub_students AS hs
    JOIN sat_student AS ss ON hs.student_key = ss.student_key
    LEFT JOIN link_enrollment AS le ON hs.student_key = le.student_key
GROUP BY hs.student_key, 
    ss.student_name
Introducción al modelado de datos en Snowflake

Recuperar datos de los modelos (3)

  • MAX: función agregada de SQL que encuentra el valor más alto en un conjunto de valores de un atributo.
SELECT
    hs.student_key,
    ss.student_name,
    COUNT(le.class_key) AS NumberOfEnrollments
    MAX(sc.load_date) AS MostRecentEnrollmentDate
FROM hub_students hs
    JOIN sat_student ss ON hs.student_key = ss.student_key
    LEFT JOIN link_enrollment le ON hs.student_key = le.student_key
    LEFT JOIN sat_class sc ON le.class_key = sc.class_key
GROUP BY hs.student_key, 
    ss.student_name;
Introducción al modelado de datos en Snowflake

Resumen de funciones

  • SELECT FROM: comando SQL para obtener columnas de una entidad
  • JOIN ON: cláusula SQL que combina filas de entidades basadas ON un atributo relacionado
  • LEFT JOIN ON: cláusula SQL que combina todas las filas de la entidad izquierda con las coincidentes de la tabla derecha, basadas ON una clave. Si no hay coincidencia, el resultado mostrará igualmente las filas de la izquierda con valores vacíos en los atributos de la derecha
  • COUNT: función agregada de SQL que devuelve el número de elementos de un grupo
  • MAX: función agregada de SQL que encuentra el valor más alto en un conjunto de valores de un atributo
  • GROUP BY: cláusula SQL para agrupar datos con los mismos valores
Introducción al modelado de datos en Snowflake

Resumen de funciones

SELECT column_name, 
    COUNT(another_column) AS alias_name,
    MAX(other_column) AS alias_name
FROM table_name table_alias
    -- Merge entities based on their keys
    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
-- Aggregate data by specific columns
GROUP BY column_name;
Introducción al modelado de datos en Snowflake

¡Vamos a practicar!

Introducción al modelado de datos en Snowflake

Preparing Video For Download...