Memilih Pendekatan yang Tepat

Pengantar Pemodelan Data di Snowflake

Nuno Rocha

Director of Engineering

Use case tiap teknik pemodelan

Use case untuk Model Entitas-Relasi (ER)

Pengantar Pemodelan Data di Snowflake

Use case tiap teknik pemodelan (1)

Use case untuk Model Dimensional

Pengantar Pemodelan Data di Snowflake

Use case tiap teknik pemodelan (2)

Use case untuk Pemodelan Data Vault

Pengantar Pemodelan Data di Snowflake

Pertimbangan teknis

Kelebihan dan kekurangan model ER

Pengantar Pemodelan Data di Snowflake

Pertimbangan teknis (1)

Kelebihan dan kekurangan model dimensional

Pengantar Pemodelan Data di Snowflake

Pertimbangan teknis (2)

Kelebihan dan kekurangan data vault

Pengantar Pemodelan Data di Snowflake

Model data dalam praktik

Model dalam diagram Venn

Pengantar Pemodelan Data di Snowflake

Model data dalam praktik (1)

Data kampus ke dalam model pada diagram Venn

Pengantar Pemodelan Data di Snowflake

Mengambil data dari model

  • Ambil data rinci mahasiswa dengan mereferensikan entitas hub dan satelitnya:
SELECT
    hs.student_key,
    ss.student_name
FROM hub_students AS hs
    JOIN sat_student AS ss ON hs.student_key = ss.student_key;
Pengantar Pemodelan Data di Snowflake

Mengambil data dari model (1)

  • LEFT JOIN ON: Klausa SQL yang menggabungkan semua baris dari entitas kiri dengan baris yang cocok dari tabel kanan, berdasarkan kunci di ON
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
Pengantar Pemodelan Data di Snowflake

Mengambil data dari model (2)

  • COUNT: Fungsi agregat SQL yang mengembalikan jumlah item dalam suatu grup.
  • GROUP BY: Klausa SQL untuk mengagregasi data dengan nilai yang sama.
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
Pengantar Pemodelan Data di Snowflake

Mengambil data dari model (3)

  • MAX: Fungsi agregat SQL yang mencari nilai tertinggi dalam sekumpulan nilai untuk suatu atribut.
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;
Pengantar Pemodelan Data di Snowflake

Ringkasan fungsi

  • SELECT FROM: Perintah SQL untuk mengambil kolom dari suatu entitas
  • JOIN ON: Klausa SQL yang menggabungkan baris dari entitas berdasarkan atribut terkait
  • LEFT JOIN ON: Klausa SQL yang menggabungkan semua baris dari entitas kiri dengan baris yang cocok dari tabel kanan, berdasarkan kunci di ON. Jika tidak ada kecocokan, hasil tetap menampilkan baris entitas kiri dengan nilai kosong untuk atribut kanan
  • COUNT: Fungsi agregat SQL yang mengembalikan jumlah item dalam grup
  • MAX: Fungsi agregat SQL yang mencari nilai tertinggi dalam sekumpulan nilai untuk suatu atribut
  • GROUP BY: Klausa SQL untuk mengagregasi data dengan nilai yang sama
Pengantar Pemodelan Data di Snowflake

Ringkasan fungsi

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;
Pengantar Pemodelan Data di Snowflake

Ayo berlatih!

Pengantar Pemodelan Data di Snowflake

Preparing Video For Download...