Bagikan melalui


Teknik pengurangan data untuk Pemodelan impor

Artikel ini menargetkan pemodel data Power BI Desktop yang mengembangkan dan menerbitkan model semantik Power BI. Secara khusus, ini menjelaskan berbagai teknik untuk membantu mengurangi data yang dimuat ke dalam Mengimpor model.

Model impor dimuat dengan data yang dikompresi dan dioptimalkan, lalu disimpan ke disk oleh mesin penyimpanan VertiPaq. Ketika data sumber dimuat ke dalam memori, dimungkinkan untuk mencapai kompresi 10x, sehingga wajar untuk mengharapkan bahwa 10 GB data sumber dapat dikompresi hingga ukuran sekitar 1 GB. Selanjutnya, ketika dipertahankan ke disk, pengurangan 20% tambahan dapat dicapai.

Terlepas dari efisiensi yang dicapai oleh mesin penyimpanan VertiPaq, Anda harus berusaha untuk meminimalkan data yang dimuat ke dalam model Anda. Itu terutama berlaku untuk model besar, atau model yang Anda antisipasi akan tumbuh menjadi besar dari waktu ke waktu. Empat alasan menarik meliputi:

  • Ukuran model yang lebih besar mungkin tidak didukung oleh kapasitas Anda. Kapasitas bersama dapat menghosting model hingga ukuran 1 GB, sementara kapasitas Premium dapat menghosting model yang lebih besar tergantung pada SKU. Untuk informasi selengkapnya, lihat Model semantik besar di Power BI Premium.
  • Ukuran model yang lebih kecil mengurangi ketidakcocokan untuk sumber daya kapasitas, khususnya memori. Banyak model yang lebih kecil dalam suatu kapasitas dapat dimuat secara bersamaan untuk jangka waktu yang lebih lama, yang mengakibatkan tingkat penghapusan yang lebih rendah.
  • Ukuran model yang lebih kecil mencapai refresh data yang lebih cepat, menghasilkan pelaporan dengan latensi yang lebih rendah, throughput refresh model semantik yang lebih tinggi, dan menurunkan tekanan pada sistem sumber dan kapasitas.
  • Jumlah baris tabel yang lebih kecil dapat menyebabkan evaluasi perhitungan yang lebih cepat, yang menghasilkan performa kueri secara keseluruhan yang lebih baik.

Penting

Terkadang artikel ini mengacu pada Power BI Premium atau langganan kapasitasnya (SKU P). Ketahuilah bahwa Microsoft saat ini mengonsolidasikan opsi pembelian dan menghentikan SKU Power BI Premium per kapasitas. Pelanggan baru dan yang sudah ada harus mempertimbangkan untuk membeli langganan kapasitas Fabric (F SKU) sebagai gantinya.

Untuk informasi selengkapnya, lihat Pembaruan penting yang masuk ke lisensi Power BI Premium dan Tanya Jawab Umum Power BI Premium.

Menghapus kolom yang tidak perlu

Kolom tabel model melayani dua tujuan utama:

  • Pelaporan, untuk mencapai desain laporan yang memfilter, mengelompokkan, dan meringkas data model secara sesuai.
  • Struktur model, dengan mendukung hubungan model, perhitungan model, peran keamanan, dan bahkan pemformatan warna data.

Anda mungkin dapat menghapus kolom apa pun yang tidak melayani salah satu tujuan ini. Menghapus kolom dari tabel terkadang disebut sebagai pemfilteran vertikal.

Kami menyarankan agar Anda mendesain model dengan jumlah kolom yang tepat berdasarkan persyaratan pelaporan yang diketahui. Persyaratan Anda mungkin berubah dari waktu ke waktu, tetapi perlu diingat bahwa lebih mudah untuk menambahkan kolom lebih lambat daripada menghapusnya nanti. Menghapus kolom dapat merusak laporan atau struktur model.

Menghapus baris yang tidak perlu

Anda harus memuat tabel model dengan baris sesederh mungkin. Anda dapat mencapainya dengan memuat set baris yang difilter ke dalam tabel model karena dua alasan berbeda: untuk memfilter menurut waktu atau berdasarkan entitas. Menghapus baris kadang-kadang disebut sebagai penyaringan horizontal.

  • Pemfilteran menurut waktu melibatkan pembatasan jumlah riwayat data dimuat ke dalam tabel fakta (dan membatasi baris tanggal yang dimuat ke dalam tabel tanggal model). Kami menyarankan agar Anda tidak memuat semua riwayat yang tersedia secara default, kecuali jika itu adalah persyaratan pelaporan yang diketahui. Anda dapat menerapkan filter Power Query berbasis waktu dengan parameter, dan bahkan mengaturnya untuk menggunakan periode waktu relatif (relatif terhadap tanggal refresh—misalnya, lima tahun terakhir). Selain itu, perlu diingat bahwa perubahan retrospektif pada filter waktu tidak akan merusak laporan; itu hanya akan menghasilkan lebih sedikit (atau lebih) riwayat data yang tersedia dalam laporan.
  • Memfilter menurut entitas melibatkan pemuatan subset data sumber ke dalam model. Misalnya, alih-alih memuat fakta penjualan untuk semua wilayah penjualan, hanya memuat fakta untuk satu wilayah. Pendekatan desain ini menghasilkan banyak model yang lebih kecil, dan juga dapat menghilangkan kebutuhan untuk menentukan keamanan tingkat baris (RLS)—tetapi memerlukan pemberian izin model semantik tertentu dalam layanan Power BI, dan membuat laporan duplikat yang terhubung ke setiap model semantik. Anda bisa menggunakan parameter Power Query dan file Templat Power BI untuk menyederhanakan manajemen dan publikasi. Untuk informasi selengkapnya, lihat Membuat dan menggunakan templat laporan di Power BI Desktop.

Mengelompokkan menurut dan meringkas

Mungkin teknik yang paling efektif untuk mengurangi ukuran model adalah memuat data yang telah dirangkum sebelumnya. Anda dapat menggunakan teknik ini untuk meningkatkan granularitas tabel fakta. Namun, ada trade-off yang berbeda, yang mengakibatkan hilangnya detail.

Pertimbangkan contoh di mana tabel fakta penjualan sumber menyimpan satu baris untuk setiap baris pesanan. Pengurangan data yang signifikan dapat dicapai dengan meringkas semua metrik penjualan, pengelompokan menurut tanggal, pelanggan, dan produk. Pengurangan data yang lebih signifikan dapat dicapai dengan mengelompokkan berdasarkan tanggal pada tingkat bulan. Meskipun dapat memperkecil ukuran model hingga 99%, pelaporan pada tingkat hari atau tingkat baris pesanan individu tidak lagi memungkinkan. Memutuskan untuk meringkas data fakta selalu melibatkan kompromi. Tradeoff dapat dimitigasi oleh desain model yang mencakup beberapa tabel dalam mode penyimpanan DirectQuery, yang dijelaskan nanti dalam artikel ini.

Mengoptimalkan jenis data kolom

Mesin penyimpanan VertiPaq menggunakan struktur data internal terpisah untuk setiap kolom. Secara desain, struktur data ini mencapai pengoptimalan tertinggi untuk data kolom numerik, yang menggunakan pengodean nilai . Teks dan data non-numerik lainnya menggunakan pengodean hash . Pengodean hash mengharuskan mesin penyimpanan untuk menetapkan pengidentifikasi numerik ke setiap nilai unik yang terkandung dalam kolom. Ini adalah pengidentifikasi numerik yang disimpan dalam struktur data, memerlukan pencarian hash selama penyimpanan dan pencarian.

Dalam beberapa instans tertentu, Anda dapat mengonversi data teks sumber menjadi nilai numerik. Misalnya, nomor pesanan penjualan mungkin secara konsisten diawali oleh nilai teks (misalnya SO123456). Dalam hal ini, awalan SO dapat dihapus, dan nilai nomor pesanan dikonversi ke bilangan bulat. Untuk tabel besar, modifikasi ini dapat mengakibatkan pengurangan data yang signifikan, terutama ketika kolom berisi nilai kardinalitas unik atau tinggi.

Dalam contoh ini, kami sarankan Anda mengatur properti ringkasan default kolom ke Do Not Summarize. Ini membantu menghindari ringkasan nilai nomor pesanan yang tidak tepat.

Preferensi untuk kolom kustom

Mesin penyimpanan VertiPaq menyimpan kolom terhitung model (yang didefinisikan dalam DAX) dengan cara yang sama seperti kolom biasa yang bersumber dari Power Query. Namun, struktur data internal disimpan sedikit berbeda, dan biasanya mencapai kompresi yang kurang efisien. Selain itu, struktur data dibangun setelah semua tabel Power Query dimuat, yang dapat mengakibatkan waktu refresh data yang diperluas. Oleh karena itu kurang efisien untuk menambahkan kolom tabel sebagai kolom terhitung daripada kolom komputasi Power Query (ditentukan dalam M).

Jika memungkinkan, utamakan membuat kolom kustom di Power Query. Ketika sumber adalah database, Anda dapat mencapai efisiensi beban yang lebih besar dengan dua cara: Perhitungan dapat ditentukan dalam pernyataan SQL (menggunakan bahasa kueri asli penyedia), atau dapat diwujudkan sebagai kolom di sumber data.

Namun, dalam beberapa kasus, kolom yang dihitung model dapat menjadi pilihan yang lebih baik. Itu benar ketika rumus melibatkan langkah-langkah evaluasi, atau memerlukan fungsionalitas pemodelan tertentu hanya didukung dalam fungsi DAX. Untuk informasi tentang salah satu contohnya, lihat Memahami fungsi untuk hierarki induk dan anak di DAX.

Menonaktifkan beban kueri Power Query

Kueri Power Query yang dimaksudkan untuk mendukung integrasi data dengan kueri lain tidak boleh dimuat ke model. Untuk menghindari pemuatan kueri ini ke model, pastikan Anda menonaktifkan beban kueri dalam instans ini.

Cuplikan layar Power Query memperlihatkan opsi Aktifkan beban.

Menonaktifkan tanggal/waktu otomatis

Power BI Desktop menyertakan opsi yang disebut Tanggal/waktu otomatis. Saat diaktifkan, ini membuat tabel tanggal/waktu otomatis tersembunyi untuk setiap kolom tanggal dalam model. Opsi ini mendukung penulis laporan saat mengonfigurasi filter, pengelompokan, dan tindakan penelusuran paling detail untuk periode waktu kalender. Tabel tersembunyi sebenarnya adalah tabel terhitung yang meningkatkan ukuran model.

Untuk informasi selengkapnya, lihat panduan tanggal/waktu otomatis di Power BI Desktop.

Menggunakan mode penyimpanan DirectQuery

Mode penyimpanan DirectQuery adalah alternatif untuk Mode penyimpanan Impor. Tabel model DirectQuery tidak mengimpor data. Sebaliknya, tabel tersebut hanya terdiri dari metadata yang menentukan struktur tabel. Saat tabel dikueri, kueri asli digunakan untuk mengambil data dari sumber data yang mendasarinya. Saat Anda menggabungkan tabel mode penyimpanan Impor dan DirectQuery dalam satu model, tabel ini dikenal sebagai model komposit .

Teknik yang efektif untuk mengurangi ukuran model adalah mengatur mode penyimpanan untuk tabel fakta yang lebih besar ke DirectQuery. Pertimbangkan bahwa pendekatan desain ini sering berfungsi dengan baik dengan Group berdasarkan dan meringkas teknik yang diperkenalkan sebelumnya. Misalnya, data penjualan yang dirangkum dapat digunakan untuk mencapai pelaporan ringkasan performa tinggi. Halaman drillthrough dapat menampilkan penjualan terperinci untuk konteks filter yang spesifik (dan sempit), serta menampilkan semua pesanan penjualan dalam konteks tersebut. Dalam contoh ini, halaman dengan fungsi drillthrough dapat menyertakan visual berdasarkan tabel model DirectQuery untuk mengambil data pesanan penjualan.

Namun, ada banyak implikasi keamanan dan performa yang terkait dengan mode penyimpanan DirectQuery dan model Komposit. Untuk informasi selengkapnya, lihat Menggunakan model komposit di Power BI Desktop.

Untuk informasi selengkapnya terkait artikel ini, lihat artikel berikut ini: