Materi
Memuat fakta berarti mengganti setiap kode sumber dengan kunci pengganti dimensinya. Microsoft menjelaskan langkahnya: data sumber disiapkan, lalu untuk setiap kunci dimensi dilakukan pencarian (lookup) kunci pengganti yang akan disimpan di baris fakta. Kunci tanggal tidak perlu dicari karena bisa dihitung dari tanggalnya. Bila dimensi menyimpan versi tipe 2, pencariannya berbasis waktu: versi yang dipakai adalah versi yang berlaku pada tanggal transaksi.
Bila pencarian gagal, baris fakta tetap dimuat dengan kunci anggota khusus, misalnya -1 untuk tidak dikenal, agar total tidak berkurang diam-diam; kuncinya diperbaiki belakangan setelah datanya jelas. Kode yang memang kosong di sumber, seperti pembeli tanpa kartu member, mendapat anggota 0. Pola SQL-nya LEFT JOIN ke dimensi, lalu CASE dan COALESCE untuk mengganti hasil yang kosong.
-- Bengkel: kunci mekanik untuk servis baru
SELECT s.no_nota,
CASE WHEN s.kode_mekanik IS NULL THEN 0
ELSE COALESCE(m.mekanik_key, -1) END AS mekanik_key
FROM stg_servis s
LEFT JOIN dim_mekanik m
ON m.kode_mekanik = s.kode_mekanik
AND s.tanggal >= m.berlaku_dari AND s.tanggal < m.berlaku_sampai
WHERE s.no_nota > (SELECT MAX(no_nota) FROM fakta_servis);Fakta dimuat secara inkremental bila memungkinkan: hanya baris baru yang dideteksi dan disisipkan. Microsoft mencontohkan nomor pesanan yang selalu bertambah: proses menyimpan nomor terbesar yang sudah dimuat, disebut high watermark, dan proses berikutnya hanya mengambil nomor di atasnya. Ekstrak dari sumber sering tumpang tindih dengan muatan lalu, dan saringan watermark mencegah baris yang sama masuk dua kali. Nota yang tanggalnya lama tetapi nomornya baru, misalnya nota susulan dari cabang, tetap ikut terambil.