Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

SQL untuk Gudang Data

Pelajaran 9 dari 16

ETL dan dimensi berubah perlahan

ETL: staging, transformasi, dan INSERT…SELECT

Setelah pelajaran ini kamu bisa menjelaskan urutan proses ETL dan menulis SELECT yang menyiapkan baris baru dan membersihkan kode di data staging.

±14 menitDiperiksa 3 Okt 2026

Materi

Gudang data diisi secara berkala oleh proses extract, transform, load (ETL). Microsoft merinci urutannya: muat tabel staging bila perlu, proses tabel dimensi, proses tabel fakta, lalu tugas penutup seperti menyegarkan laporan. Dimensi diproses lebih dulu supaya setiap anggota yang baru muncul di sumber sudah ada ketika fakta mencari kuncinya. Tabel staging menyerupai tabel sumber, dikosongkan di awal setiap proses, dan tidak pernah dibuka untuk pengguna laporan.

Tahap transformasi membentuk ulang data sumber agar cocok dengan tabel gudang: menggabungkan sumber berdasarkan kunci yang sama, mengubah tipe data, menghitung kolom baru seperti nilai dari harga kali jumlah, dan membersihkan kode yang ditulis tidak seragam. Tahap muat paling efisien bila berbasis himpunan, bukan baris per baris. Dokumentasi SQLite menjelaskan bentuk INSERT INTO tabel SELECT: satu baris baru disisipkan untuk setiap baris hasil SELECT, dan banyak kolom hasil harus sama dengan banyak kolom yang disebut.

-- Kafe: sisipkan menu yang belum ada di dimensi, langsung dari staging
INSERT INTO dim_menu (kode_menu, nama, jenis, harga)
WITH bersih AS (
  SELECT UPPER(TRIM(kode)) AS kode_menu, nama, jenis, harga FROM stg_menu
)
SELECT b.kode_menu, b.nama, b.jenis, b.harga
FROM bersih b
WHERE b.kode_menu NOT IN (SELECT kode_menu FROM dim_menu);

Bagian terpenting dari pernyataan itu adalah SELECT-nya, karena di situlah ditentukan baris mana yang masuk. Mesin latihan di situs ini hanya menerima SELECT dan WITH, jadi latihan di modul ini menulis bagian SELECT tersebut; INSERT di depannya ditulis di basis data sungguhan. Kunci pengganti dimensi tidak perlu ditulis: kolom INTEGER PRIMARY KEY di SQLite terisi otomatis.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 2 dari 3

Mengapa proses ETL memuat tabel dimensi sebelum tabel fakta?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke

Tampilkan 1 lagi