Escolhendo a abordagem certa

Introdução à Modelagem de Dados no Snowflake

Nuno Rocha

Director of Engineering

Casos de uso de cada técnica de modelagem

Casos de uso para Modelos Entidade-Relacionamento (ER)

Introdução à Modelagem de Dados no Snowflake

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

Casos de uso para Modelos Dimensionais

Introdução à Modelagem de Dados no Snowflake

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

Casos de uso para Data Vault Modeling

Introdução à Modelagem de Dados no Snowflake

Considerações técnicas

Prós e contras do modelo ER

Introdução à Modelagem de Dados no Snowflake

Considerações técnicas (1)

Prós e contras do modelo dimensional

Introdução à Modelagem de Dados no Snowflake

Considerações técnicas (2)

Prós e contras do Data Vault

Introdução à Modelagem de Dados no Snowflake

Modelos de dados em ação

Modelos em diagrama de Venn

Introdução à Modelagem de Dados no Snowflake

Modelos de dados em ação (1)

Dados de faculdade em modelos no diagrama de Venn

Introdução à Modelagem de Dados no Snowflake

Recuperando dados dos modelos

  • Recupere dados detalhados de estudantes referenciando a entidade hub e seu 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;
Introdução à Modelagem de Dados no Snowflake

Recuperando dados dos modelos (1)

  • LEFT JOIN ON: cláusula SQL que combina todas as linhas da entidade à esquerda com as correspondentes da tabela à direita, com base ON uma chave
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
Introdução à Modelagem de Dados no Snowflake

Recuperando dados dos modelos (2)

  • COUNT: função de agregação SQL que retorna a quantidade de itens em um grupo.
  • GROUP BY: cláusula SQL para agregar dados com os mesmos 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
Introdução à Modelagem de Dados no Snowflake

Recuperando dados dos modelos (3)

  • MAX: função de agregação SQL que encontra o maior valor em um conjunto de valores para um 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;
Introdução à Modelagem de Dados no Snowflake

Visão geral das funções

  • SELECT FROM: comando SQL para buscar colunas de uma entidade
  • JOIN ON: cláusula SQL que combina linhas de entidades com base ON um atributo relacionado
  • LEFT JOIN ON: cláusula SQL que combina todas as linhas da entidade à esquerda com as correspondentes da tabela à direita, com base ON uma chave. Se não houver correspondência, o resultado ainda mostrará as linhas da esquerda com valores vazios para os atributos da direita
  • COUNT: função de agregação SQL que retorna a quantidade de itens em um grupo
  • MAX: função de agregação SQL que encontra o maior valor em um conjunto de valores para um atributo
  • GROUP BY: cláusula SQL para agregar dados com os mesmos valores
Introdução à Modelagem de Dados no Snowflake

Visão geral das funções

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;
Introdução à Modelagem de Dados no Snowflake

Vamos praticar!

Introdução à Modelagem de Dados no Snowflake

Preparing Video For Download...