Memecahkan masalah refresh inkremental dan data real-time

Ada dua fase saat menerapkan refresh bertahap dan solusi data real time, yang pertama adalah mengonfigurasi parameter, pemfilteran, dan menentukan kebijakan di Power BI Desktop, dan yang kedua adalah operasi refresh model semantik awal dan refresh berikutnya dalam layanan. Artikel ini membahas pemecahan masalah secara terpisah untuk setiap fase ini.

Setelah mempartisi tabel di layanan Power BI, penting untuk diingat bahwa tabel yang disegarkan secara bertahap yang juga mendapatkan data real-time dengan DirectQuery sekarang beroperasi dalam mode hibrid, yang berarti tabel beroperasi dalam mode impor dan DirectQuery. Setiap tabel dengan hubungan ke tabel hibrid yang di-refresh secara bertahap harus menggunakan mode Ganda sehingga dapat digunakan dalam mode impor dan DirectQuery tanpa penalti performa. Selain itu, visual laporan mungkin menyimpan hasil untuk menghindari pengembalian kueri ke sumber data, yang akan mencegah tabel untuk melakukan pembaruan data terbaru secara real time. Bagian pemecahan masalah akhir mencakup masalah mode hibrid ini.

Sebelum memecahkan masalah refresh inkremental dan data real-time, pastikan untuk meninjau Refresh bertambah bertahas untuk model dan data real-time dan informasi langkah demi langkah dalam Mengonfigurasi refresh inkremental dan data real-time.

Mengonfigurasi di Power BI Desktop

Sebagian besar masalah yang terjadi saat mengonfigurasi refresh inkremental dan data real-time ada hubungannya dengan pelipatan kueri. Seperti yang dijelaskan dalam Refresh bertahap untuk gambaran umum model - Sumber data yang didukung, sumber data Anda harus mendukung pelipatan kueri.

Masalah: Memuat data terlalu lama

Dalam Editor Power Query, setelah memilih Terapkan, memuat data membutuhkan waktu dan sumber daya komputer yang berlebihan. Ada beberapa potensi penyebabnya.

Penyebab: Tipe data tidak cocok

Masalah ini dapat disebabkan oleh ketidakcocokan jenis data di mana Date/Time adalah jenis data yang diperlukan untuk RangeStart parameter dan RangeEnd , tetapi kolom tanggal tabel tempat filter diterapkan bukan Date/Time jenis data, atau sebaliknya. Jenis data parameter dan kolom data yang difilter harus jenis Date/Time data dan formatnya harus sama. Jika tidak, kueri tidak dapat dilipat.

Solusi: Memverifikasi jenis data

Verifikasi kolom tanggal/waktu untuk tabel refresh inkremental adalah tipe Date/Time data. Jika tabel Anda tidak berisi kolom Date/Time tipe data, tetapi menggunakan tipe data bilangan bulat, Anda dapat membuat fungsi yang mengonversi nilai tanggal/waktu dalam RangeStart parameter dan RangeEnd agar sesuai dengan kunci pengganti bilangan bulat dari tabel sumber data. Untuk mempelajari selengkapnya, lihat Mengonfigurasi refresh inkremental - Mengonversi DateTime menjadi bilangan bulat.

Penyebab: Sumber data tidak mendukung pelipatan kueri

Seperti yang dijelaskan dalam Refresh inkremental dan data real-time untuk model - Persyaratan, refresh inkremental dirancang untuk sumber data yang mendukung pelipatan kueri. Pastikan kueri sumber data dilipat dalam Power BI Desktop sebelum diterbitkan ke layanan, di mana masalah pelipatan kueri dapat digabungkan secara signifikan. Pendekatan ini sangat penting ketika menyertakan data real-time dalam kebijakan refresh bertahap karena partisi DirectQuery real time memerlukan pelipatan kueri.

Solusi: Memverifikasi dan menguji kueri

Dalam kebanyakan kasus, peringatan diperlihatkan dalam dialog Kebijakan refresh bertahap yang menunjukkan apakah kueri yang akan dijalankan terhadap sumber data tidak mendukung pelipatan kueri. Namun, dalam beberapa kasus mungkin perlu untuk lebih memastikan pelipatan kueri dimungkinkan. Jika memungkinkan, pantau kueri yang diteruskan ke sumber data menggunakan alat seperti SQL Profiler. Kueri dengan filter berdasarkan RangeStart dan RangeEnd harus dijalankan dalam satu kueri.

Anda juga dapat menentukan periode tanggal/waktu singkat dalam RangeStart parameter dan RangeEnd yang menyertakan tidak lebih dari beberapa ribu baris. Jika beban data yang difilter dari sumber data ke model membutuhkan waktu lama dan proses yang intensif, kemungkinan besar kueri tidak terlipat.

Jika Anda menentukan kueri tidak dilipat, lihat Panduan pelipatan kueri di Power BI Desktop dan lipatan kueri Power BI Dan Power Query untuk bantuan mengidentifikasi apa yang mungkin mencegah pelipatan kueri dan caranya, atau jika, sumber data bahkan dapat mendukung pelipatan kueri.

Refresh model semantik dalam layanan

Pemecahan masalah refresh inkremental dalam layanan berbeda tergantung pada jenis kapasitas yang telah diterbitkan model Anda. Model semantik pada dukungan kapasitas Premium menggunakan alat seperti SQL Server Management Studio (SSMS) untuk melihat dan secara selektif menyegarkan partisi individual. Model Power BI Pro di sisi lain tidak menyediakan akses alat melalui titik akhir XMLA, sehingga pemecahan masalah refresh inkremental mungkin memerlukan sedikit lebih banyak percobaan dan kesalahan.

Masalah: Waktu refresh awal habis

Refresh terjadwal untuk model Power BI Pro pada kapasitas bersama memiliki batas waktu dua jam. Batas waktu ini ditingkatkan menjadi lima jam untuk model dalam kapasitas Premium. Sistem sumber data mungkin juga memberlakukan batas ukuran pengembalian kueri atau batas waktu kueri.

Penyebab: Kueri sumber data tidak dilipat

Meskipun masalah dengan pelipatan kueri biasanya dapat ditentukan di Power BI Desktop sebelum menerbitkan ke layanan, ada kemungkinan kueri refresh model tidak dilipat, yang mengarah ke waktu refresh yang berlebihan dan pemanfaatan sumber daya mesin mashup kueri. Situasi ini terjadi karena kueri dibuat untuk setiap partisi dalam model. Jika kueri tidak dilipat, dan data tidak difilter di sumber data, mesin kemudian mencoba memfilter data.

Solusi: Verifikasi lipatan kueri

Gunakan alat pelacakan di sumber data untuk menentukan kueri yang diteruskan ke setiap partisi adalah kueri tunggal yang menyertakan filter berdasarkan parameter RangeStart dan RangeEnd. Jika tidak, verifikasi bahwa lipatan kueri terjadi dalam model Power BI Desktop saat memuat sejumlah kecil data yang difilter ke dalam model. Jika tidak, perbaiki model terlebih dahulu, lakukan pembaruan metadata hanya ke model (dengan menggunakan titik akhir XMLA), atau jika model Power BI Pro pada kapasitas bersama, hapus model yang tidak lengkap dalam layanan, terbitkan ulang, dan coba operasi refresh awal lagi.

Jika Anda menentukan kueri tidak dilipat, lihat Panduan pelipatan kueri di Power BI Desktop dan pelipatan kueri Power BI Query untuk bantuan mengidentifikasi apa yang mungkin mencegah pelipatan kueri.

Penyebab: Data yang dimuat ke dalam partisi terlalu besar

Solusi: Kurangi ukuran model

Dalam banyak kasus, batas waktu disebabkan oleh jumlah data yang harus dikueri dan dimuat ke dalam partisi model melebihi batas waktu yang diberlakukan oleh kapasitas. Kurangi ukuran atau kompleksitas model Anda, atau pertimbangkan untuk memecah model menjadi potongan yang lebih kecil.

Solusi: Aktifkan format penyimpanan model besar

Untuk model yang diterbitkan ke kapasitas Premium, jika model tumbuh melebihi 1 GB atau lebih, Anda dapat meningkatkan performa operasi refresh dan memastikan model tidak memaksimalkan batas ukuran dengan mengaktifkan Format penyimpanan model besar sebelum melakukan operasi refresh pertama dalam layanan. Untuk mempelajari selengkapnya, lihat Himpunan data besar di Power BI Premium.

Solusi: Refresh awal Bootstrap

Untuk model yang diterbitkan ke kapasitas Premium, Anda dapat melakukan bootstrap operasi refresh awal. Bootstrapping memungkinkan layanan untuk membuat objek tabel dan partisi untuk model, tetapi tidak memuat dan memproses data historis ke salah satu partisi. Untuk mempelajari selengkapnya, lihat Refresh inkremental tingkat lanjut - Mencegah batas waktu pada refresh penuh awal.

Penyebab: Waktu kueri sumber data habis

Kueri dapat dibatasi oleh batas waktu default untuk sumber data.

Solusi: Mengesampingkan batas waktu dalam ekspresi kueri

Banyak sumber data yang memungkinkan pengesampingan batas waktu dalam ekspresi kueri. Untuk mempelajari lebih lanjut, lihat Refresh inkremental untuk model - Batas waktu.

Masalah: Refresh gagal karena nilai duplikat

Penyebab: Tanggal postingan telah berubah

Dengan operasi refresh, hanya data yang telah berubah di sumber data yang di-refresh dalam model. Karena data dibagi berdasarkan tanggal, disarankan agar tanggal posting (transaksi) tidak diubah.

Jika tanggal diubah secara tidak sengaja, dua masalah dapat terjadi: Pengguna melihat beberapa total yang diubah dalam data historis (yang seharusnya tidak terjadi), atau selama refresh kesalahan dikembalikan yang menunjukkan nilai unik sebenarnya tidak unik. Untuk yang terakhir, situasi ini dapat terjadi ketika tabel dengan refresh inkremental yang dikonfigurasi digunakan dalam 1:N hubungan dengan tabel lain sebagai 1 sisi dan harus memiliki nilai unik. Saat data diubah untuk ID tertentu, ID tersebut kemudian muncul di partisi lain dan mesin mendeteksi nilainya tidak unik.

Solusi: Refresh partisi tertentu

Di mana ada kebutuhan bisnis untuk mengubah beberapa data sebelumnya dari tanggal, solusi yang mungkin adalah menggunakan SSMS untuk me-refresh semua partisi dari titik di mana perubahan berada hingga partisi refresh saat ini, sehingga menjaga 1 sisi hubungan tetap unik.

Masalah: Data terpotong

Penyebab: Batas kueri sumber data telah terlampaui

Beberapa sumber data, seperti Azure Data Explorer, Analitik Log, dan Application Insights, memiliki batas 64 MB (dikompresi) pada data yang dapat dikembalikan untuk kueri eksternal. Azure Data Explorer mungkin mengembalikan kesalahan eksplisit, tetapi untuk orang lain seperti Analitik Log dan Application Insights, data yang dikembalikan dipotong.

Solusi: Tentukan periode refresh dan penyimpanan yang lebih kecil

Tentukan periode refresh dan penyimpanan yang lebih kecil dalam kebijakan. Misalnya, jika Anda menentukan periode refresh satu tahun, dan kesalahan kueri yang dikembalikan atau data yang dikembalikan terpotong, coba periode refresh 12 bulan. Anda ingin memastikan kueri untuk partisi refresh saat ini atau partisi historis apa pun berdasarkan periode Refresh dan Simpan tidak mengembalikan lebih dari 64 MB data.

Masalah: Refresh gagal karena konflik kunci partisi

Penyebab: Tanggal dalam kolom tanggal di sumber data diperbarui

Filter pada kolom tanggal digunakan untuk mempartisi data secara dinamis ke dalam rentang periode dalam layanan Power BI. Refresh inkremental tidak dirancang untuk mendukung kasus di mana kolom tanggal yang difilter diperbarui dalam sistem sumber. Pembaruan ditafsirkan sebagai penyisipan dan penghapusan, bukan pembaruan aktual. Jika penghapusan terjadi dalam rentang historis dan bukan rentang bertahap, penghapusan tersebut tidak diambil, yang dapat menyebabkan kegagalan refresh data karena konflik kunci partisi.

Mode hibrid dalam layanan (Pratinjau)

Saat Power BI menerapkan kebijakan refresh inkremental dengan data real-time, kebijakan tersebut mengubah tabel yang di-refresh secara bertahap menjadi tabel hibrid yang beroperasi dalam mode impor dan DirectQuery. Perhatikan partisi DirectQuery di akhir daftar partisi tabel sampel berikut. Kehadiran partisi DirectQuery memiliki implikasi untuk tabel terkait dan visual laporan yang mengkueri tabel ini.

Cuplikan layar tabel hibrid.

Masalah: Performa kueri buruk

Tabel hibrid yang beroperasi dalam mode impor dan DirectQuery memerlukan tabel terkait untuk beroperasi dalam mode Ganda sehingga tabel tersebut dapat bertindak sebagai cache atau tidak di-cache, tergantung pada konteks kueri yang dikirimkan ke model Power BI. Mode ganda memungkinkan Power BI mengurangi jumlah hubungan terbatas dalam model dan menghasilkan kueri sumber data yang efisien untuk memastikan performa yang baik. Hubungan terbatas tidak dapat didorong ke sumber data yang memerlukan Power BI untuk mengambil lebih banyak data daripada yang diperlukan. Karena tabel Dual dapat bertindak sebagai tabel DirectQuery atau Impor, situasi ini dihindari.

Saat mengonfigurasi kebijakan refresh bertahap, Power BI Desktop mengingatkan Anda untuk mengalihkan tabel terkait ke mode Ganda saat Anda memilih Dapatkan data terbaru secara real time dengan DirectQuery (Khusus Premium). Selain itu, pastikan Anda meninjau semua hubungan tabel yang ada dalam Tampilan Model.

Cuplikan layar memperlihatkan konversi tabel terkait ke mode ganda.

Tabel yang saat ini beroperasi dalam mode DirectQuery, mudah dialihkan ke mode Ganda. Di properti tabel, di bagian Tingkat Lanjut, pilih Ganda dari kotak daftar mode Storage. Tabel yang saat ini beroperasi dalam mode impor, namun, memerlukan pekerjaan manual. Tabel ganda memiliki batasan fungsional yang sama dengan tabel DirectQuery. Oleh karena itu Power BI Desktop tidak dapat mengonversi tabel impor karena mungkin mengandalkan fungsionalitas lain yang tidak tersedia dalam mode Ganda. Anda harus membuat ulang tabel ini secara manual dalam mode DirectQuery lalu mengonversikannya ke mode Ganda. Untuk mempelajari lebih lanjut, lihat Mengelola mode penyimpanan di Power BI Desktop.

Masalah: Visual laporan tidak menampilkan data terbaru

Penyebab: Tindakan Power BI dalam membuat cache hasil kueri meningkatkan performa dan mengurangi beban back-end

Secara default, Power BI membuat cache hasil kueri, sehingga kueri visual laporan dapat diproses dengan cepat meskipun berdasarkan DirectQuery. Menghindari kueri sumber data yang tidak perlu meningkatkan performa dan mengurangi beban sumber data, tetapi mungkin juga berarti bahwa perubahan data terbaru di sumber tidak disertakan dalam hasil.

Solusi: Konfigurasikan refresh halaman otomatis

Untuk terus mengambil perubahan data terbaru dari sumbernya, konfigurasikan refresh halaman otomatis untuk laporan Anda di layanan Power BI. Refresh halaman otomatis dapat dilakukan dalam interval tetap, seperti lima detik atau sepuluh menit. Ketika interval tertentu tercapai, semua visual di halaman tersebut mengirim kueri pembaruan ke sumber data dan memperbaruinya. Atau, Anda dapat me-refresh visual pada halaman berdasarkan pendeteksian perubahan pada data. Pendekatan ini memerlukan pengukuran deteksi perubahan yang kemudian digunakan Power BI untuk melakukan polling sumber data untuk perubahan. Deteksi perubahan hanya didukung di ruang kerja yang merupakan bagian dari kapasitas Premium. Untuk mempelajari selengkapnya, lihat Refresh halaman otomatis di Power BI.