Att välja rätt metod

Introduktion till datamodellering i Snowflake

Nuno Rocha

Director of Engineering

Användningsområden för varje modelleringsteknik

Användningsområden för Entity-Relationship-modeller (ER)

Introduktion till datamodellering i Snowflake

Användningsområden för varje modelleringsteknik (1)

Användningsområden för dimensionella modeller

Introduktion till datamodellering i Snowflake

Användningsområden för varje modelleringsteknik (2)

Användningsområden för Data Vault-modellering

Introduktion till datamodellering i Snowflake

Tekniska överväganden

För- och nackdelar med ER-modellen

Introduktion till datamodellering i Snowflake

Tekniska överväganden (1)

För- och nackdelar med den dimensionella modellen

Introduktion till datamodellering i Snowflake

Tekniska överväganden (2)

För- och nackdelar med Data Vault

Introduktion till datamodellering i Snowflake

Datamodeller i praktiken

Modeller i ett Venn-diagram

Introduktion till datamodellering i Snowflake

Datamodeller i praktiken (1)

Universitetsdata i modeller i ett Venn-diagram

Introduktion till datamodellering i Snowflake

Hämta data från modellerna

  • Hämta detaljerad data om studenter via hub-entiteten och dess satellit:
SELECT
    hs.student_key,
    ss.student_name
FROM hub_students AS hs
    JOIN sat_student AS ss ON hs.student_key = ss.student_key;
Introduktion till datamodellering i Snowflake

Hämta data från modellerna (1)

  • LEFT JOIN ON: SQL-sats som kombinerar alla rader från den vänstra entiteten med matchande rader från den högra tabellen, baserat ON en nyckel
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
Introduktion till datamodellering i Snowflake

Hämta data från modellerna (2)

  • COUNT: SQL-aggregatfunktion som returnerar antalet element i en grupp.
  • GROUP BY: SQL-sats för att aggregera data med samma värden.
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
Introduktion till datamodellering i Snowflake

Hämta data från modellerna (3)

  • MAX: SQL-aggregatfunktion som returnerar det högsta värdet i en uppsättning värden för ett attribut.
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;
Introduktion till datamodellering i Snowflake

Funktionsöversikt

  • SELECT FROM: SQL-kommando för att hämta kolumner från en entitet
  • JOIN ON: SQL-sats som kombinerar rader från entiteter baserat ON ett relaterat attribut
  • LEFT JOIN ON: SQL-sats som kombinerar alla rader från den vänstra entiteten med matchande rader från den högra tabellen, baserat ON en nyckel. Om ingen matchning finns visas ändå den vänstra entitetens rader, med tomma värden för den högra entitetens attribut
  • COUNT: SQL-aggregatfunktion som returnerar antalet element i en grupp
  • MAX: SQL-aggregatfunktion som returnerar det högsta värdet i en uppsättning värden för ett attribut
  • GROUP BY: SQL-sats för att aggregera data med samma värden
Introduktion till datamodellering i Snowflake

Funktionsöversikt

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;
Introduktion till datamodellering i Snowflake

Nu kör vi en övning!

Introduktion till datamodellering i Snowflake

Preparing Video For Download...