Semantic model engineering dimulai dari sumber data dan berakhir pada hasil yang dapat divalidasi. Perubahan pada source, model, partisi, atau metode refresh tidak diperlakukan sebagai aktivitas terpisah karena setiap perubahan dapat memengaruhi performa, resource consumption, dan konsistensi hasil.
Refresh dan Orkestrasi Semantic Model
Proses. Tentukan scope refresh lebih dahulu: seluruh model, satu tabel, atau satu partisi. Jalur eksekusinya kemudian dipilih antara on-demand refresh, scheduled refresh, Enhanced Refresh REST API, pipeline, atau Semantic Link melalui notebook. Untuk model yang dipartisi, refresh harus mempertahankan batas antara operasi rutin dan operasi pengecualian agar lifecycle partisi tidak berubah tanpa sengaja.
Hasil yang diharapkan. Refresh memproses hanya object yang memang diperlukan, menghasilkan request ID atau execution record yang dapat diperiksa, dan tidak mengubah topology model di luar scope operasi.
Dampak. Scope processing yang lebih jelas mengurangi risiko full refresh yang tidak diperlukan, mempermudah audit, dan membuat failure lebih mudah diisolasi.
Artikel terkait: Orkestrasi Refresh Semantic Model Power BI dengan Semantic Link (SemPy)
Incremental Refresh dan Partition Lifecycle
Proses. Tetapkan historical window, refresh window, serta parameter RangeStart dan RangeEnd. Setelah model dipublikasikan, Incremental Refresh mengelola pembuatan dan lifecycle partisi berdasarkan policy. Initial refresh, refresh rutin, dan historical repair harus diperlakukan sebagai tiga operasi berbeda.
Hasil yang diharapkan. Data historis tetap tersimpan sesuai retention policy sementara hanya periode yang masih berubah yang diproses ulang pada refresh rutin.
Dampak. Volume data yang perlu diproses setiap refresh dapat berkurang dan operasi menjadi lebih konsisten. Namun keuntungan ini tetap bergantung pada kemampuan source dan query folding untuk membatasi data yang benar-benar dibaca.
Lanjutan. Pengujian berikutnya membandingkan policy-managed partitions dengan partisi manual, termasuk perilaku initial refresh dan historical repair.
Semantic Link dan Targeted Refresh
Proses. Semantic Link menghubungkan notebook Microsoft Fabric dengan semantic model. Melalui SemPy, object refresh dapat diarahkan ke tabel atau partisi tertentu, parameter seperti apply_refresh_policy dapat dikontrol, dan hasil eksekusi dapat dilanjutkan ke validasi metadata maupun DAX.
Hasil yang sudah diuji. Pada canary targeted refresh, model uji terdiri dari 5 partisi dengan total 6.353.671 baris. Seluruh partisi mencapai status Ready, parity tahunan mencapai 100%, dan 8 pengujian exact-equality menghasilkan MismatchRows = 0.
Dampak. Targeted refresh dapat digunakan untuk repair atau refresh historis tanpa harus menjadikan notebook sebagai dependency untuk seluruh refresh rutin. Hasil parity membuktikan konsistensi data, tetapi belum membuktikan efisiensi I/O dari source.
Query Folding dan Source Query Pruning
Proses. Setelah scope partisi ditetapkan, periksa query yang dikirim Power Query ke source. Folding harus diverifikasi pada langkah-langkah transformasi yang menentukan filter, join, dan projection. Untuk sumber relasional, tujuan utamanya adalah mendorong sebanyak mungkin pekerjaan ke data source.
Hasil yang perlu diukur. Native query atau query plan, rows read, durasi refresh, CU, peak memory, dan jumlah baris yang akhirnya masuk ke model. Targeted partition refresh dan source-side pruning harus diukur sebagai dua lapisan yang berbeda.
Dampak. Jika folding berjalan, source dapat melakukan filtering lebih awal. Jika folding rusak, semantic engine tetap dapat memproses satu partisi sementara source membaca data jauh lebih besar dari kebutuhan partisi tersebut.
Lanjutan. Skenario pembanding: manual partition dengan folding, manual partition tanpa folding, Incremental Refresh dengan folding, dan Incremental Refresh tanpa folding.
Mengganti Source tanpa Merusak Kontrak Semantic Model
Proses. Source migration dimulai dari audit schema, tipe data, query, partition source, relationship dependency, measure dependency, dan refresh policy. Perubahan ke tabel baru, view, atau source lain baru diterapkan setelah contract compatibility dinyatakan aman.
Hasil yang diharapkan. Semantic model tetap mempertahankan schema dan behavior yang dibutuhkan report, sementara source dapat dirampingkan atau dialihkan tanpa memaksa perubahan pada seluruh layer di atasnya.
Dampak. Perubahan source menjadi terkontrol dan dapat di-rollback. Risiko visual kosong, relationship rusak, measure error, atau refresh failure dapat dideteksi sebelum perubahan masuk ke jalur produksi.
Dalam penyusunan: Audit Source Contract sebelum Mengganti Source Semantic Model Power BI.
Lanjutan. Setelah contract audit, pengujian berikutnya berfokus pada perpindahan source ke view, schema drift, dependency audit, dan refresh canary setelah perubahan.
VertiPaq, Memory, dan Model Optimization
Proses. Audit model dilakukan pada level table, column, cardinality, encoding, dan relationship. Kolom dengan footprint terbesar menjadi prioritas sebelum dilakukan quantization, penghapusan redundancy, source slimming, atau pemindahan transformasi ke view.
Hasil yang diharapkan. Ukuran model berkurang tanpa mengubah kontrak report dan tanpa menurunkan parity hasil.
Dampak. Model yang lebih ramping menurunkan tekanan memory saat refresh dan memperkecil kemungkinan refresh gagal karena resource limit. Optimasi ukuran model juga memperbaiki ruang kerja untuk operasi paralel lainnya pada capacity yang sama.
Lanjutan. Pembahasan berikutnya akan memisahkan optimasi storage VertiPaq dari optimasi source agar dampak masing-masing dapat diukur.
Metadata, Run Logs, dan Validasi
Proses. Setiap refresh penting harus menghasilkan evidence: request ID, start dan end time, object yang diproses, status partisi, refreshed time, row count, serta hasil DAX atau SemPy validation. Untuk perubahan besar, canary dijalankan sebelum model produksi disentuh.
Hasil yang diharapkan. Status Completed tidak berdiri sendiri. Refresh baru dianggap selesai setelah data, partition state, dan hasil query lolos pemeriksaan yang telah ditetapkan.
Dampak. Troubleshooting tidak lagi bergantung pada asumsi bahwa refresh berhasil hanya karena job selesai. Bukti eksekusi dan parity dapat digunakan untuk menentukan apakah masalah berada di source, processing, model, atau report.
Urutan Implementasi
- Audit source contract dan schema.
- Audit model, dependencies, partitions, dan VertiPaq.
- Tentukan controller refresh: scheduled, Incremental Refresh, REST API, pipeline, atau Semantic Link.
- Tetapkan scope processing dan aturan
apply_refresh_policy. - Verifikasi query folding dan source-side filtering.
- Jalankan canary atau targeted refresh.
- Catat request ID, run logs, dan refreshed time.
- Validasi row parity, DAX result, dan exact equality.
- Bandingkan durasi, rows read, CU, memory, dan dampak terhadap capacity.
Artikel dalam Seri
Aktif: Orkestrasi Refresh Semantic Model Power BI dengan Semantic Link (SemPy).
Berikutnya: Incremental Refresh dan partition lifecycle; targeted refresh dan apply_refresh_policy; query folding dan source query pruning; source migration ke view atau tabel baru; VertiPaq dan memory optimization; serta refresh evidence dan validation framework.

