Menggunakan DirectQuery di Power BI Desktop

Saat Menyambungkan ke sumber data apa pun dengan Power BI Desktop, Anda bisa mengimpor salinan data. Untuk beberapa sumber data, Anda juga dapat terhubung langsung ke sumber data tanpa mengimpor data dengan menggunakan DirectQuery.

Untuk menentukan apakah sumber data mendukung DirectQuery, lihat daftar lengkap sumber data yang tersedia yang ditemukan di artikel Koneksi or di Power Query yang juga berlaku untuk Power BI, pilih artikel yang menjelaskan sumber data yang Anda minati dari daftar konektor yang didukung, lalu lihat bagian dalam artikel konektor berjudul Kemampuan yang didukung. Jika DirectQuery tidak tercantum di bagian tersebut untuk artikel sumber data, DirectQuery tidak didukung untuk konektor data tersebut.

Berikut adalah perbedaan antara menggunakan mode konektivitas impor dan DirectQuery:

  • Impor: Salinan data dari tabel dan kolom yang dipilih diimpor ke Power BI Desktop. Saat Anda membuat atau berinteraksi dengan visualisasi, Power BI Desktop menggunakan data yang diimpor. Untuk melihat perubahan data yang mendasar setelah impor awal atau refresh terbaru, Anda harus mengimpor model semantik penuh lagi untuk merefresh data.

  • DirectQuery: Tidak ada data yang diimpor ke Power BI Desktop. Untuk sumber relasional, Anda bisa memilih tabel dan kolom untuk muncul di daftar Bidang Desktop Power BI. Untuk sumber multidampingan seperti SAP Business Warehouse (SAP BW), dimensi dan ukuran kubus yang dipilih muncul di daftar Bidang . Saat Anda membuat atau berinteraksi dengan visualisasi, Power BI Desktop meminta sumber data yang mendasarinya, sehingga Anda selalu menampilkan data saat ini.

Dengan DirectQuery, saat Membuat atau berinteraksi dengan visualisasi, Anda harus mengkueri sumber yang mendasar. Waktu yang dibutuhkan untuk me-refresh visual bergantung pada performa sumber data yang mendasarinya. Jika data yang diperlukan untuk melayani permintaan baru-baru ini diminta, Power BI Desktop menggunakan data terbaru untuk mengurangi waktu yang diperlukan untuk menampilkan visualisasi. Memilih Refresh dari pita Beranda me-refresh semua visualisasi dengan data saat ini.

Banyak pemodelan data dan transformasi data tersedia saat menggunakan DirectQuery, meskipun dengan beberapa batasan berbasis performa. Untuk informasi selengkapnya tentang manfaat, batasan, dan rekomendasi DirectQuery, lihat DirectQuery di Power BI.

Manfaat DirectQuery

Beberapa manfaat menggunakan DirectQuery meliputi:

  • DirectQuery memungkinkan Anda membangun visualisasi atas model semantik yang sangat besar, di mana tidak akan layak untuk mengimpor semua data dengan pra-agregasi.

  • Laporan DirectQuery selalu menggunakan data saat ini. Melihat perubahan data yang mendasar mengharuskan Anda untuk me-refresh data, dan memasukkan kembali model semantik besar untuk me-refresh data bisa tidak layak.

  • Batasan model semantik 1 GB tidak berlaku dengan DirectQuery.

Koneksi menggunakan DirectQuery

Untuk menyambungkan ke sumber data dengan DirectQuery:

  1. Di grup Beranda pita Power BI Desktop, pilih Dapatkan data, lalu pilih sumber data yang didukung DirectQuery, seperti SQL Server.

  2. Dalam kotak dialog untuk koneksi, di bawah Mode konektivitas data, pilih DirectQuery.

Opsi Impor dan DirectQuery, dialog Database SQL Server, Power BI Desktop

Memublikasikan ke layanan Power BI

Anda dapat menerbitkan laporan DirectQuery ke layanan Power BI, tetapi Anda perlu mengambil langkah tambahan agar layanan Power BI membuka laporan.

  • Untuk menyambungkan layanan Power BI ke sumber data DirectQuery selain Azure SQL Database, Azure Synapse Analytics (sebelumnya Gudang Data SQL), Amazon Redshift, dan Gudang Data Snowflake, instal gateway data lokal dan daftarkan sumber data.

  • Jika Anda menggunakan DirectQuery dengan sumber cloud seperti Azure SQL Database, Azure Synapse, Amazon Redshift, atau Snowflake Data Warehouse, Anda tidak memerlukan gateway data lokal. Anda masih harus memberikan kredensial bagi layanan Power BI untuk membuka laporan yang diterbitkan. Tanpa kredensial, kesalahan terjadi ketika Anda mencoba membuka laporan yang diterbitkan atau menjelajahi model semantik yang dibuat dengan koneksi DirectQuery.

Untuk memberikan kredensial untuk membuka laporan dan menyegarkan data:

  1. Di layanan Power BI, pilih ikon roda gigi di kanan atas dan pilih Pengaturan.

    Cuplikan layar menu dropdown layanan Power BI Pengaturan.

  2. Pada halaman Pengaturan, pilih tab Model semantik, dan pilih model semantik yang menggunakan DirectQuery.

  3. Di bawah Koneksi sumber data, berikan kredensial untuk menyambungkan ke sumber data.

Catatan

Jika Anda menggunakan DirectQuery dengan Azure SQL Database yang memiliki alamat IP privat, Anda perlu menggunakan gateway lokal.

Pertimbangan dan batasan

Beberapa fitur Power BI Desktop tidak didukung dalam mode DirectQuery, atau memiliki batasan. Beberapa kemampuan dalam layanan Power BI, seperti wawasan cepat, juga tidak tersedia untuk model semantik yang menggunakan DirectQuery. Saat Anda memutuskan apakah akan menggunakan DirectQuery, pertimbangkan batasan fitur ini. Pertimbangkan juga faktor-faktor berikut:

Pertimbangan performa dan beban

DirectQuery mengirim semua permintaan ke database sumber, sehingga waktu refresh yang diperlukan untuk visual bergantung pada berapa lama sumber yang mendasar mengambil untuk mengembalikan hasil. Lima detik atau kurang adalah waktu respons yang direkomendasikan untuk menerima data yang diminta untuk visual. Waktu refresh lebih dari 30 detik menghasilkan pengalaman yang buruk bagi pengguna yang mengkonsumsi laporan. Kueri yang memakan waktu lebih dari empat menit habis di layanan Power BI, dan pengguna menerima kesalahan.

Muat pada database sumber juga bergantung pada jumlah pengguna Power BI yang menggunakan laporan yang diterbitkan, terutama jika laporan menggunakan keamanan tingkat baris (RLS). Refresh petak peta dasbor non-RLS yang dibagikan oleh beberapa pengguna mengirimkan satu kueri ke database, tetapi me-refresh petak dasbor yang menggunakan RLS memerlukan satu kueri per pengguna. Peningkatan kueri secara signifikan meningkatkan beban dan berpotensi memengaruhi performa.

Batas baris satu juta

DirectQuery menentukan batas baris satu juta untuk data yang dikembalikan dari sumber data cloud, yang merupakan sumber data apa pun yang tidak lokal. Sumber lokal terbatas pada payload yang ditentukan sekitar 4 MB per baris, tergantung pada algoritma kompresi kepemilikan, atau 16 MB untuk seluruh visual. Kapasitas premium dapat mengatur batas baris maksimum yang berbeda, seperti yang dijelaskan dalam posting blog Pengaturan kapasitas baru Power BI Premium.

Power BI membuat kueri yang seefisien mungkin, tetapi beberapa kueri yang dihasilkan mungkin mengambil terlalu banyak baris dari sumber data yang mendasarinya. Misalnya, situasi ini dapat terjadi dengan bagan sederhana yang menyertakan kolom kardinalitas tinggi dengan opsi agregasi diatur ke Jangan Ringkas. Visual hanya boleh memiliki kolom dengan kardinalitas di bawah 1 juta, atau harus menerapkan filter yang sesuai.

Batas baris tidak berlaku untuk agregasi atau perhitungan yang digunakan untuk memilih model semantik yang dikembalikan DirectQuery, hanya ke baris yang dikembalikan. Misalnya, kueri yang berjalan pada sumber data dapat menggabungkan 10 juta baris. Selama data yang dikembalikan ke Power BI kurang dari 1 juta baris, kueri dapat mengembalikan hasil secara akurat. Jika data lebih dari 1 juta baris, Power BI memperlihatkan kesalahan, kecuali dalam kapasitas Premium dengan batas yang ditetapkan admin yang berbeda. Status kesalahan: Hasil kueri ke sumber data eksternal telah melebihi ukuran maksimum yang diizinkan dari baris '1000000'.

Pertimbangan keamanan

Secara default, semua pengguna yang menggunakan laporan yang diterbitkan di layanan Power BI tersambung ke sumber data yang mendasar dengan menggunakan kredensial yang dimasukkan setelah publikasi. Situasi ini sama dengan untuk data yang diimpor. Semua pengguna melihat data yang sama, terlepas dari aturan keamanan apa pun yang ditentukan sumber yang mendasar.

Jika Anda memerlukan keamanan per pengguna yang diterapkan dengan sumber DirectQuery, gunakan RLS atau konfigurasikan autentikasi yang dibatasi Kerberos terhadap sumbernya. Kerberos tidak tersedia untuk semua sumber. Untuk informasi selengkapnya, lihat Keamanan tingkat baris (RLS) dengan Power BI dan Mengonfigurasi SSO berbasis Kerberos dari layanan Power BI ke sumber data lokal.

Batasan DirectQuery lainnya

Beberapa batasan lain menggunakan DirectQuery meliputi:

  • Jika kueri Editor Power Query terlalu kompleks, kesalahan akan terjadi. Untuk memperbaiki kesalahan, Anda harus menghapus langkah bermasalah di Editor Power Query, atau beralih ke mode impor. Sumber multidmensional seperti SAP BW tidak dapat menggunakan Editor Power Query.

  • Hierarki tanggal/waktu otomatis tidak tersedia di DirectQuery. Mode DirectQuery tidak mendukung penelusuran kolom tanggal menurut tahun, kuartal, bulan, atau hari.

  • Untuk visualisasi tabel atau matriks, ada batas 125 kolom untuk hasil yang mengembalikan lebih dari 500 baris dari sumber DirectQuery. Hasil ini menampilkan bilah gulir dalam tabel atau matriks yang memungkinkan Anda mengambil lebih banyak data. Dalam situasi ini, jumlah maksimum kolom dalam tabel atau matriks adalah 125. Jika Anda harus menyertakan lebih dari 125 kolom dalam satu tabel atau matriks, pertimbangkan untuk membuat langkah-langkah yang menggunakan MIN, , MAXFIRST, atau LAST, karena tidak dihitung terhadap maksimum ini.

  • Anda tidak dapat mengubah dari mode impor ke DirectQuery. Anda dapat beralih dari mode DirectQuery ke mode impor jika Anda mengimpor semua data yang diperlukan. Tidak dimungkinkan untuk beralih kembali, sebagian besar karena kumpulan fitur yang tidak didukung DirectQuery. Model DirectQuery melalui sumber multidisipional, seperti SAP BW, tidak dapat dialihkan dari DirectQuery ke mode impor, karena perlakuan yang berbeda dari langkah-langkah eksternal.

  • Tabel terhitung dan kolom terhitung yang mereferensikan tabel DirectQuery dari sumber data dengan autentikasi akses menyeluruh (SSO) didukung di layanan Power BI dengan koneksi cloud yang dapat dibagikan dan/atau kontrol akses terperinci yang ditetapkan.