Data Vault

Pengantar Pemodelan Data di Snowflake

Nuno Rocha

Director of Engineering

Pengantar model data vault

  • Model data vault: Teknik pemodelan yang menekankan pelacakan data historis, dengan komponen hub, link, dan satellite.

Model data vault

Pengantar Pemodelan Data di Snowflake

Komponen data vault

  • Hub: Mewakili konsep bisnis unik menggunakan satu business key.

Model data vault: hub

Pengantar Pemodelan Data di Snowflake

Komponen data vault (1)

  • Link: Menangkap relasi dan interaksi antar hub.

Model data vault: Link

Pengantar Pemodelan Data di Snowflake

Komponen data vault (2)

  • Satellite: Menyimpan detail deskriptif dan historis terkait hub dan link.

Model data vault: Satellite

Pengantar Pemodelan Data di Snowflake

Membangun hub

Hub data vault perguruan tinggi

Pengantar Pemodelan Data di Snowflake

Membangun hub (1)

  • AUTOINCREMENT: Properti atribut untuk otomatis membuat nilai numerik unik yang bertambah berurutan untuk tiap baris baru.
CREATE OR REPLACE TABLE hub_students (
    student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY
);
Pengantar Pemodelan Data di Snowflake

Membangun hub (2)

  • Buat hub baru dengan key numerik unik yang dihasilkan otomatis dan id konsep hub:
CREATE OR REPLACE TABLE hub_students (
    student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
    student_id NUMBER(10,0)
);
1 Berikutnya, cantumkan business key yang mengidentifikasi setiap konsep; student_id mengidentifikasi tiap siswa
Pengantar Pemodelan Data di Snowflake

Membangun hub (3)

  • Tambahkan atribut pelacakan historis:
CREATE OR REPLACE TABLE hub_students (
    student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
    student_id NUMBER(10,0),
    load_date TIMESTAMP,
    record_source VARCHAR(255)
);
Pengantar Pemodelan Data di Snowflake

Membangun hub (4)

  • Buat hub classes baru:
CREATE OR REPLACE TABLE hub_classes (
    class_key NUMBER(10,0)
          AUTOINCREMENT 
          PRIMARY KEY,
    class_id NUMBER(10,0),
    load_date TIMESTAMP,
    record_source VARCHAR(255)
);
  • Buat hub schools baru:
CREATE OR REPLACE TABLE hub_schools (
    school_key NUMBER(10,0) 
          AUTOINCREMENT 
          PRIMARY KEY,
    school_id NUMBER(10,0),
    load_date TIMESTAMP,
    record_source VARCHAR(255)
);
Pengantar Pemodelan Data di Snowflake

Membangun link

Link data vault perguruan tinggi

Pengantar Pemodelan Data di Snowflake

Membangun link (1)

  • Buat entitas link dengan key numerik unik yang dihasilkan otomatis:
CREATE OR REPLACE TABLE link_enrollments (
    link_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY
);
Pengantar Pemodelan Data di Snowflake

Membangun link (2)

  • Tambahkan relasi ke entitas lain:
CREATE OR REPLACE TABLE link_enrollments (
    link_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
    student_key NUMBER(10,0),
    class_key NUMBER(10,0),
    FOREIGN KEY (student_key) REFERENCES hub_students(student_key),
    FOREIGN KEY (class_key) REFERENCES hub_classes(class_key)
);
Pengantar Pemodelan Data di Snowflake

Membangun link (3)

  • Tambahkan atribut pelacakan historis:
CREATE OR REPLACE TABLE link_enrollments (
    link_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
    student_key NUMBER(10,0),
    class_key NUMBER(10,0),
    load_date TIMESTAMP,
    record_source VARCHAR(255),
    FOREIGN KEY (student_key) REFERENCES hub_students(student_key),
    FOREIGN KEY (class_key) REFERENCES hub_classes(class_key)
);
Pengantar Pemodelan Data di Snowflake

Membangun link (4)

  • Buat entitas link offerings baru:
CREATE OR REPLACE TABLE link_offerings (
    link_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
    class_key NUMBER(10,0),
    school_key NUMBER(10,0),
    load_date TIMESTAMP,
    record_source VARCHAR(255),
    FOREIGN KEY (class_key) REFERENCES hub_classes(class_key),
    FOREIGN KEY (school_key) REFERENCES hub_schools(school_key)
);
Pengantar Pemodelan Data di Snowflake

Membangun satellite

Satelit data vault perguruan tinggi

Pengantar Pemodelan Data di Snowflake

Membangun satellite (1)

  • Buat entitas satellite baru yang memuat semua atribut konsep:
CREATE OR REPLACE TABLE sat_student (
    name VARCHAR(255),
    email VARCHAR(255)
);
Pengantar Pemodelan Data di Snowflake

Membangun satellite (2)

  • Tambahkan atribut pelacakan historis:
CREATE OR REPLACE TABLE sat_student (
    name VARCHAR(255),
    email VARCHAR(255),
    load_date TIMESTAMP,
    record_source VARCHAR(255)
);
Pengantar Pemodelan Data di Snowflake

Membangun satellite (3)

  • Tambahkan tautan antara satellite dan hub terkait:
CREATE OR REPLACE TABLE sat_student (
    student_key NUMBER(10,0),
    name VARCHAR(255),
    email VARCHAR(255),
    load_date TIMESTAMP,
    record_source VARCHAR(255),
    FOREIGN KEY (student_key) REFERENCES hub_students(student_key)
);
Pengantar Pemodelan Data di Snowflake

Membangun satellite (4)

  • Buat satellite class baru:
CREATE OR REPLACE TABLE sat_class (
    class_key NUMBER(10,0),
    class_name VARCHAR(255),
    load_date TIMESTAMP,
    record_source VARCHAR(255),
    FOREIGN KEY (class_key) 
    REFERENCES hub_classes(class_key)
);
  • Buat satellite school baru:
CREATE OR REPLACE TABLE sat_school (
    school_key NUMBER(10,0),
    school_name VARCHAR(255),
    load_date TIMESTAMP,
    record_source VARCHAR(255),
    FOREIGN KEY (school_key) 
    REFERENCES hub_schools(school_key)
);
Pengantar Pemodelan Data di Snowflake

Ikhtisar terminologi dan fungsi

  • Model data vault: Teknik pemodelan untuk pelacakan riwayat, terdiri dari hub, link, dan satellite.
  • Hub: Mewakili konsep bisnis unik dengan satu business key.
  • Link: Menangkap relasi dan interaksi antar hub.
  • Satellite: Menyimpan detail deskriptif dan historis terkait hub dan link.
  • CREATE OR REPLACE TABLE: Perintah SQL untuk membuat atau mengganti struktur tabel.
  • PRIMARY KEY: Klausa SQL untuk menetapkan kolom sebagai pengenal unik.
  • AUTOINCREMENT: Properti untuk otomatis membuat nilai numerik unik yang bertambah.
  • FOREIGN KEY (...) REFERENCES (...): Klausa SQL untuk membuat tautan antar tabel.
Pengantar Pemodelan Data di Snowflake

Ikhtisar fungsi

CREATE OR REPLACE TABLE table_name (
      -- Create an auto generated unique value as primary key
      unique_key column_datatype AUTOINCREMENT PRIMARY KEY,
      other_business_key column_datatype,
      foreign_column column_datatype,
      other_foreign_column column_datatype,
      -- Adding relationship with other entities
      FOREIGN KEY(foreign_column) REFERENCES foreign_table(PK_from_foreign_table),
      FOREIGN KEY(other_foreign) REFERENCES foreign_table(PK_from_other_foreign)
);
Pengantar Pemodelan Data di Snowflake

Ayo berlatih!

Pengantar Pemodelan Data di Snowflake

Preparing Video For Download...