De juiste aanpak kiezen

Introductie tot datamodellering in Snowflake

Nuno Rocha

Director of Engineering

Use-cases per modelleertechniek

Use-cases voor Entity-Relationship (ER)-modellen

Introductie tot datamodellering in Snowflake

Use-cases per modelleertechniek (1)

Use-cases voor dimensionale modellen

Introductie tot datamodellering in Snowflake

Use-cases per modelleertechniek (2)

Use-cases voor Data Vault-modellering

Introductie tot datamodellering in Snowflake

Technische overwegingen

Plus- en minpunten van ER-model

Introductie tot datamodellering in Snowflake

Technische overwegingen (1)

Plus- en minpunten van dimensionaal model

Introductie tot datamodellering in Snowflake

Technische overwegingen (2)

Plus- en minpunten van Data Vault

Introductie tot datamodellering in Snowflake

Datamodellen in de praktijk

Modellen in Venn-diagram

Introductie tot datamodellering in Snowflake

Datamodellen in de praktijk (1)

Collegegegevens in modellen in Venn-diagram

Introductie tot datamodellering in Snowflake

Gegevens ophalen uit de modellen

  • Haal gedetailleerde studentgegevens op via de hub-entiteit en zijn satelliet:
SELECT
    hs.student_key,
    ss.student_name
FROM hub_students AS hs
    JOIN sat_student AS ss ON hs.student_key = ss.student_key;
Introductie tot datamodellering in Snowflake

Gegevens ophalen uit de modellen (1)

  • LEFT JOIN ON: SQL-clausule die alle rijen uit de linkerentiteit combineert met de overeenkomende rijen uit de rechtertabel, gebaseerd ON een sleutel
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
Introductie tot datamodellering in Snowflake

Gegevens ophalen uit de modellen (2)

  • COUNT: SQL-aggregatiefunctie die het aantal items in een groep teruggeeft.
  • GROUP BY: SQL-clausule om gegevens met dezelfde waarden te aggregeren.
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
Introductie tot datamodellering in Snowflake

Gegevens ophalen uit de modellen (3)

  • MAX: SQL-aggregatiefunctie die de hoogste waarde voor een attribuut in een reeks vindt.
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;
Introductie tot datamodellering in Snowflake

Overzicht functies

  • SELECT FROM: SQL-opdracht om kolommen uit een entiteit op te halen
  • JOIN ON: SQL-clausule die rijen uit entiteiten combineert op basis van een gerelateerd attribuut
  • LEFT JOIN ON: SQL-clausule die alle rijen uit de linkerentiteit combineert met de overeenkomende rijen uit de rechtertabel, gebaseerd ON een sleutel. Is er geen match, dan krijg je toch de rijen van links met lege waarden voor de rechterattributen
  • COUNT: SQL-aggregatiefunctie die het aantal items in een groep teruggeeft
  • MAX: SQL-aggregatiefunctie die de hoogste waarde voor een attribuut in een reeks vindt
  • GROUP BY: SQL-clausule om gegevens met dezelfde waarden te aggregeren
Introductie tot datamodellering in Snowflake

Overzicht functies

SELECT column_name, 
    COUNT(another_column) AS alias_name,
    MAX(other_column) AS alias_name
FROM table_name table_alias
    -- Entiteiten samenvoegen op basis van hun sleutels
    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
-- Gegevens aggregeren per specifieke kolommen
GROUP BY column_name;
Introductie tot datamodellering in Snowflake

Laten we oefenen!

Introductie tot datamodellering in Snowflake

Preparing Video For Download...