Bagikan melalui


Pemodelan dimensi di Microsoft Fabric Warehouse: Tabel fakta

Berlaku untuk:✅ Titik akhir analitik SQL dan Gudang di Microsoft Fabric

Catatan

Artikel ini membentuk bagian dari seri artikel pemodelan dimensi. Seri ini berfokus pada panduan dan desain praktik terbaik yang terkait dengan pemodelan dimensi di Microsoft Fabric Warehouse.

Artikel ini memberi Anda panduan dan praktik terbaik untuk merancang tabel fakta dalam model dimensi. Ini memberikan panduan praktis untuk Gudang di Microsoft Fabric, yang merupakan pengalaman yang mendukung banyak kemampuan T-SQL, seperti membuat tabel dan mengelola data dalam tabel. Jadi, Anda berada dalam kontrol penuh untuk membuat tabel model dimensi Anda dan memuatnya dengan data.

Catatan

Dalam artikel ini, istilah gudang data mengacu pada gudang data perusahaan, yang memberikan integrasi komprehensif data penting di seluruh organisasi. Sebaliknya, istilah gudang mandiri mengacu pada Gudang Fabric, yang merupakan penawaran database relasional software as a service (SaaS) yang dapat Anda gunakan untuk mengimplementasikan gudang data. Untuk kejelasan, dalam artikel ini yang terakhir disebutkan sebagai Fabric Warehouse.

Tip

Jika Anda tidak berpengalaman dengan pemodelan dimensi, pertimbangkan serangkaian artikel ini sebagai langkah pertama Anda. Ini tidak dimaksudkan untuk memberikan diskusi lengkap tentang desain pemodelan dimensi. Untuk informasi selengkapnya, lihat langsung ke konten yang diterbitkan secara luas, seperti Toolkit Gudang Data: Panduan Definitif untuk Pemodelan Dimensi (edisi ke-3, 2013) oleh Ralph Kimball, dan lainnya.

Dalam model dimensi, tabel fakta menyimpan pengukuran yang terkait dengan pengamatan atau peristiwa. Ini bisa menyimpan pesanan penjualan, saldo saham, nilai tukar, pembacaan suhu, dan banyak lagi.

Tabel fakta mencakup pengukuran, yang biasanya merupakan kolom numerik, seperti kuantitas pesanan penjualan. Kueri analitik meringkas pengukuran (dengan menggunakan jumlah, jumlah, rata-rata, dan fungsi lainnya) dalam konteks filter dan pengelompokan dimensi.

Tabel fakta juga menyertakan kunci dimensi, yang menentukan dimensi fakta. Nilai kunci dimensi menentukan granularitas fakta, yang merupakan tingkat atom tempat fakta didefinisikan. Misalnya, kunci dimensi tanggal pesanan dalam tabel fakta penjualan menetapkan granularitas fakta pada tingkat tanggal, sementara kunci dimensi tanggal target dalam tabel fakta target penjualan dapat mengatur granularitas pada tingkat kuartal.

Catatan

Meskipun dimungkinkan untuk menyimpan fakta pada granularitas yang lebih tinggi, tidak mudah untuk membagi nilai pengukuran ke tingkat granularitas yang lebih rendah (jika diperlukan). Volume data sheer, bersama dengan persyaratan analitik, mungkin memberikan alasan yang valid untuk menyimpan fakta granularitas yang lebih tinggi tetapi dengan mengorbankan analisis terperinci.

Untuk mengidentifikasi tabel fakta dengan mudah, Anda biasanya mengawali namanya dengan f_ atau Fact_.

Struktur tabel fakta

Untuk menjelaskan struktur tabel fakta, pertimbangkan contoh tabel fakta penjualan berikut bernama f_Sales. Contoh ini menerapkan praktik desain yang baik. Setiap grup kolom dijelaskan di bagian berikut.

CREATE TABLE f_Sales
(
    --Dimension keys
    OrderDate_Date_FK INT NOT NULL,
    ShipDate_Date_FK INT NOT NULL,
    Product_FK INT NOT NULL,
    Salesperson_FK INT NOT NULL,
    <…>
    
    --Attributes
    SalesOrderNo INT NOT NULL,
    SalesOrderLineNo SMALLINT NOT NULL,
    
    --Measures
    Quantity INT NOT NULL,
    <…>
    
    --Audit attributes
    AuditMissing BIT NOT NULL,
    AuditCreatedDate DATE NOT NULL,
    AuditCreatedBy VARCHAR(15) NOT NULL,
    AuditLastModifiedDate DATE NOT NULL,
    AuditLastModifiedBy VARCHAR(15) NOT NULL
);

Kunci utama

Seperti halnya dalam contoh, tabel fakta sampel tidak memiliki kunci primer. Itu karena biasanya tidak melayani tujuan yang berguna, dan itu tidak perlu meningkatkan ukuran penyimpanan tabel. Kunci primer sering disiratkan oleh sekumpulan kunci dimensi dan atribut.

Kunci dimensi

Tabel fakta sampel memiliki berbagai kunci dimensi, yang menentukan dimensi tabel fakta. Kunci dimensi adalah referensi ke kunci pengganti (atau atribut tingkat yang lebih tinggi) dalam dimensi terkait.

Catatan

Ini adalah tabel fakta yang tidak biasa yang tidak menyertakan setidaknya satu kunci dimensi tanggal.

Tabel fakta dapat mereferensikan dimensi beberapa kali. Dalam hal ini, ini dikenal sebagai dimensi bermain peran. Dalam contoh ini, tabel fakta memiliki OrderDate_Date_FK kunci dimensi dan ShipDate_Date_FK . Setiap kunci dimensi mewakili peran yang berbeda, namun hanya ada satu dimensi tanggal fisik.

Ini adalah praktik yang baik untuk mengatur setiap kunci dimensi sebagai NOT NULL. Selama beban tabel fakta, Anda dapat menggunakan anggota dimensi khusus untuk mewakili status hilang, tidak diketahui, N/A, atau kesalahan (jika perlu).

Atribut

Tabel fakta sampel memiliki dua atribut. Atribut memberikan informasi tambahan dan mengatur granularitas data fakta, tetapi bukan kunci dimensi atau atribut dimensi, atau ukuran. Dalam contoh ini, kolom atribut menyimpan informasi pesanan penjualan. Contoh lain dapat mencakup nomor pelacakan atau nomor tiket. Untuk tujuan analisis, atribut dapat membentuk dimensi degenerasi.

Tindakan

Tabel fakta sampel juga memiliki pengukuran, seperti Quantity kolom . Kolom pengukuran biasanya numerik dan umumnya aditif (artinya kolom dapat dijumlahkan, dan dirangkum dengan menggunakan agregasi lain). Untuk informasi selengkapnya, lihat Mengukur jenis nanti di artikel ini.

Atribut audit

Tabel fakta sampel juga memiliki berbagai atribut audit. Atribut audit bersifat opsional. Mereka memungkinkan Anda melacak kapan dan bagaimana rekaman fakta dibuat atau dimodifikasi, dan mereka dapat menyertakan informasi diagnostik atau pemecahan masalah yang dimunculkan selama proses Ekstraksi, Transformasi, dan Muat (ETL). Misalnya, Anda ingin melacak siapa (atau proses apa) yang memperbarui baris, dan kapan. Atribut audit juga dapat membantu mendiagnosis masalah yang menantang, seperti ketika proses ETL berhenti secara tak terduga.

Ukuran tabel fakta

Tabel fakta bervariasi dalam ukuran. Ukurannya sesuai dengan dimensi, granularitas, jumlah ukuran, dan jumlah riwayat. Dibandingkan dengan tabel dimensi, tabel fakta lebih sempit (lebih sedikit kolom) tetapi besar atau bahkan sangat besar dalam hal baris (lebih dari miliaran).

Konsep desain fakta

Bagian ini menjelaskan berbagai konsep desain fakta.

Jenis tabel fakta

Ada tiga jenis tabel fakta:

  • Tabel fakta transaksi
  • Tabel fakta rekam jepret berkala
  • Mengakumulasi tabel fakta rekam jepret

Tabel fakta transaksi

Tabel fakta transaksi menyimpan peristiwa atau transaksi bisnis. Setiap baris menyimpan fakta dalam hal kunci dan ukuran dimensi, dan atribut lainnya secara opsional. Semua data sepenuhnya diketahui saat disisipkan, dan tidak pernah berubah (kecuali untuk memperbaiki kesalahan).

Biasanya, tabel fakta transaksi menyimpan fakta pada tingkat granularitas serendah mungkin, dan berisi ukuran yang aditif di semua dimensi. Tabel fakta penjualan yang menyimpan setiap baris pesanan penjualan adalah contoh yang baik dari tabel fakta transaksi.

Tabel fakta rekam jepret berkala

Tabel fakta rekam jepret berkala menyimpan pengukuran pada waktu yang telah ditentukan sebelumnya, atau interval tertentu. Ini memberikan ringkasan metrik utama atau indikator performa dari waktu ke waktu, sehingga berguna untuk analisis tren dan pemantauan perubahan dari waktu ke waktu. Ukuran selalu semi-aditif (dijelaskan nanti).

Tabel fakta inventori adalah contoh yang baik dari tabel rekam jepret berkala. Ini dimuat setiap hari dengan saldo stok akhir hari dari setiap produk.

Tabel rekam jepret berkala dapat digunakan alih-alih tabel fakta transaksi saat merekam transaksi dalam volume besar mahal, dan tidak mendukung persyaratan analitik yang berguna. Misalnya, mungkin ada jutaan pergerakan saham dalam sehari (yang dapat disimpan dalam tabel fakta transaksi), tetapi analisis Anda hanya berkaitan dengan tren tingkat stok akhir hari.

Mengakumulasi tabel fakta rekam jepret

Akumulasi tabel fakta rekam jepret menyimpan pengukuran yang terakumulasi di seluruh periode atau alur kerja yang ditentukan dengan baik. Ini sering mencatat status proses bisnis pada tahap atau tonggak yang berbeda, yang mungkin memakan waktu ber hari, minggu, atau bahkan berbulan-bulan untuk diselesaikan.

Baris fakta dimuat segera setelah peristiwa pertama dalam proses, dan kemudian baris diperbarui dalam urutan yang dapat diprediksi setiap kali peristiwa tonggak terjadi. Pembaruan berlanjut hingga proses selesai.

Mengakumulasi tabel fakta rekam jepret memiliki beberapa kunci dimensi tanggal, masing-masing mewakili peristiwa tonggak pencapaian. Beberapa kunci dimensi mungkin merekam status N/A hingga proses tiba pada tonggak tertentu. Pengukuran biasanya merekam durasi. Durasi antara tonggak pencapaian dapat memberikan wawasan berharga tentang alur kerja bisnis atau proses perakitan.

Jenis pengukuran

Ukuran biasanya numerik, dan umumnya aditif. Namun, beberapa langkah tidak selalu dapat ditambahkan. Langkah-langkah ini dikategorikan sebagai semi-aditif atau non-aditif.

Langkah-langkah aditif

Ukuran aditif dapat dijumlahkan di seluruh dimensi apa pun. Misalnya, kuantitas pesanan dan pendapatan penjualan adalah langkah-langkah aditif (memberikan pendapatan dicatat untuk satu mata uang).

Langkah-langkah semi-aditif

Ukuran semi-aditif hanya dapat dijumlahkan di seluruh dimensi tertentu.

Berikut adalah beberapa contoh langkah semi-aditif.

  • Ukuran apa pun dalam tabel fakta rekam jepret berkala tidak dapat dijumlahkan di periode waktu lain. Misalnya, Anda tidak boleh menjumlahkan usia item inventori yang diambil sampelnya setiap malam, tetapi Anda dapat menjumlahkan usia semua item inventori di rak, setiap malam.
  • Ukuran keseimbangan stok dalam tabel fakta inventori tidak dapat dijumlahkan di seluruh produk lain.
  • Pendapatan penjualan dalam tabel fakta penjualan yang memiliki kunci dimensi mata uang tidak dapat dijumlahkan di seluruh mata uang.

Langkah-langkah non-aditif

Ukuran non-aditif tidak dapat dijumlahkan di seluruh dimensi apa pun. Salah satu contohnya adalah pembacaan suhu, yang menurut sifatnya tidak masuk akal untuk ditambahkan ke pembacaan lain.

Contoh lain termasuk tarif, seperti harga unit, dan rasio. Namun, ini dianggap sebagai praktik yang lebih baik untuk menyimpan nilai yang digunakan untuk menghitung rasio, yang memungkinkan rasio dihitung jika diperlukan. Misalnya, persentase diskon dari fakta penjualan dapat disimpan sebagai ukuran jumlah diskon (dibagi dengan ukuran pendapatan penjualan). Atau, usia item inventori di rak tidak boleh dijumlahkan dari waktu ke waktu, tetapi Anda mungkin mengamati tren dalam usia rata-rata item inventarium.

Meskipun beberapa langkah tidak dapat dijumlahkan, tindakan tersebut masih valid. Mereka dapat diagregasi dengan menggunakan hitungan, jumlah berbeda, minimum, maksimum, rata-rata, dan lainnya. Selain itu, langkah-langkah non-aditif dapat menjadi aditif saat digunakan dalam perhitungan. Misalnya, harga satuan dikalikan dengan kuantitas pesanan menghasilkan pendapatan penjualan, yang bersifat aditif.

Tabel fakta tanpa fakta

Saat tabel fakta tidak berisi kolom pengukuran apa pun, tabel ini disebut tabel fakta tanpa fakta. Tabel fakta tanpa fakta biasanya merekam peristiwa atau kemunculan, seperti siswa yang menghadiri kelas. Dari perspektif analitik, pengukuran dapat dicapai dengan menghitung baris fakta.

Tabel fakta agregat

Tabel fakta agregat mewakili rollup tabel fakta dasar ke dimensi yang lebih rendah dan/atau granularitas yang lebih tinggi. Tujuannya adalah untuk mempercepat performa kueri untuk dimensi yang umum dikueri.

Catatan

Model semantik Power BI dapat menghasilkan agregasi yang ditentukan pengguna untuk mencapai hasil yang sama, atau menggunakan tabel fakta agregat gudang data dengan menggunakan mode penyimpanan DirectQuery.

Di artikel berikutnya dalam seri ini, pelajari tentang panduan dan praktik terbaik desain untuk memuat tabel model dimensi.