Bagikan melalui


Panduan pemodelan Power BI untuk Power Platform

Microsoft Dataverse adalah platform data standar untuk banyak produk aplikasi bisnis Microsoft, termasuk aplikasi kanvas Dynamics 365 Customer Engagement dan Power Apps, dan juga Dynamics 365 Customer Voice (sebelumnya Microsoft Forms Pro), persetujuan Power Automate, portal Power Apps, dan lainnya.

Artikel ini menyediakan panduan tentang cara membuat model data Power BI yang tersambung ke Dataverse. Ini menjelaskan perbedaan antara skema Dataverse dan skema Power BI yang dioptimalkan, dan menyediakan panduan untuk memperluas visibilitas data aplikasi bisnis Anda di Power BI.

Karena kemudahan penyiapan, penyebaran yang cepat, dan adopsi yang luas, Dataverse menyimpan dan mengelola peningkatan volume data di lingkungan di seluruh organisasi. Itu berarti ada kebutuhan yang lebih besar—dan kesempatan—untuk mengintegrasikan analitik dengan proses tersebut. Peluang meliputi:

  • Laporkan semua data Dataverse yang bergerak melampaui batasan bagan bawaan.
  • Berikan akses mudah ke laporan yang relevan dan difilter secara kontekstual dalam catatan tertentu.
  • Tingkatkan nilai data Dataverse dengan mengintegrasikannya dengan data eksternal.
  • Manfaatkan kecerdasan buatan (AI) bawaan Power BI tanpa perlu menulis kode yang kompleks.
  • Tingkatkan adopsi solusi Power Platform dengan meningkatkan kegunaan dan nilainya.
  • Berikan nilai data di aplikasi Anda kepada pembuat keputusan bisnis.

Koneksi Power BI ke Dataverse

Koneksi Power BI ke Dataverse melibatkan pembuatan model data Power BI. Anda dapat memilih dari tiga metode untuk membuat model Power BI.

  • Mengimpor data Dataverse dengan menggunakan konektor Dataverse: Metode ini menyimpan data Dataverse dalam model Power BI. Ini memberikan performa cepat berkat kueri dalam memori. Ini juga menawarkan fleksibilitas desain kepada pemodel, memungkinkan mereka untuk mengintegrasikan data dari sumber lain. Karena kekuatan ini, mengimpor data adalah mode default saat membuat model di Power BI Desktop.
  • Mengimpor data Dataverse dengan menggunakan Azure Synapse Link: Metode ini adalah variasi pada metode impor, karena juga menyimpan data dalam model Power BI, tetapi melakukannya dengan menyambungkan ke Azure Synapse Analytics. Dengan menggunakan Azure Synapse Link for Dataverse, tabel Dataverse terus direplikasi ke Azure Synapse atau Azure Data Lake Storage (ADLS) Gen2. Pendekatan ini digunakan untuk melaporkan ratusan ribu atau bahkan jutaan rekaman di lingkungan Dataverse.
  • Buat koneksi DirectQuery dengan menggunakan konektor Dataverse: Metode ini adalah alternatif untuk mengimpor data. Model DirectQuery hanya terdiri dari metadata yang menentukan struktur model. Saat pengguna membuka laporan, Power BI mengirim kueri asli ke Dataverse untuk mengambil data. Pertimbangkan untuk membuat model DirectQuery saat laporan harus menampilkan data Dataverse hampir real-time, atau ketika Dataverse harus memberlakukan keamanan berbasis peran sehingga pengguna hanya dapat melihat data yang mereka miliki hak istimewa untuk diakses.

Penting

Meskipun model DirectQuery dapat menjadi alternatif yang baik ketika Anda membutuhkan pelaporan hampir real-time atau penegakan keamanan Dataverse dalam laporan, model tersebut dapat mengakibatkan performa lambat untuk laporan tersebut.

Anda dapat mempelajari tentang pertimbangan untuk DirectQuery nanti di artikel ini.

Untuk menentukan metode yang tepat untuk model Power BI, Anda harus mempertimbangkan:

  • Performa Kueri
  • Volume data
  • Latensi data
  • Keamanan berbasis peran
  • Kompleksitas penyiapan

Tip

Untuk diskusi terperinci tentang kerangka kerja model (impor, DirectQuery, atau komposit), manfaat dan batasannya, dan fitur untuk membantu mengoptimalkan model data Power BI, lihat Memilih kerangka kerja model Power BI.

Performa Kueri

Kueri yang dikirim ke model impor lebih cepat daripada kueri asli yang dikirim ke sumber data DirectQuery. Itu karena data yang diimpor di-cache dalam memori dan dioptimalkan untuk kueri analitik (filter, grup, dan ringkas operasi).

Sebaliknya, model DirectQuery hanya mengambil data dari sumber setelah pengguna membuka laporan, yang mengakibatkan penundaan detik saat laporan dirender. Selain itu, interaksi pengguna pada laporan mengharuskan Power BI untuk mengkueri ulang sumber, mengurangi respons lebih lanjut.

Volume data

Saat mengembangkan model impor, Anda harus berusaha untuk meminimalkan data yang dimuat ke dalam model. Ini terutama berlaku untuk model besar, atau model yang Anda antisipasi akan tumbuh menjadi besar dari waktu ke waktu. Untuk informasi selengkapnya, lihat Teknik pengurangan data untuk pemodelan impor.

Koneksi DirectQuery ke Dataverse adalah pilihan yang baik saat hasil kueri laporan tidak besar. Hasil kueri besar memiliki lebih dari 20.000 baris dalam tabel sumber laporan, atau hasil yang dikembalikan ke laporan setelah filter diterapkan lebih dari 20.000 baris. Dalam hal ini, Anda bisa membuat laporan Power BI dengan menggunakan konektor Dataverse.

Catatan

Ukuran 20.000 baris bukanlah batas yang sulit. Namun, setiap kueri sumber data harus mengembalikan hasil dalam waktu 10 menit. Nantinya dalam artikel ini Anda akan mempelajari cara bekerja dalam batasan tersebut dan tentang pertimbangan desain Dataverse DirectQuery lainnya.

Anda dapat meningkatkan performa model semantik yang lebih besar (sebelumnya dikenal sebagai himpunan data) dengan menggunakan konektor Dataverse untuk mengimpor data ke dalam model data.

Bahkan model semantik yang lebih besar—dengan beberapa ratusan ribu atau bahkan jutaan baris—dapat memperoleh manfaat dari penggunaan Azure Synapse Link for Dataverse. Pendekatan ini menyiapkan alur terkelola yang sedang berlangsung yang menyalin data Dataverse ke ADLS Gen2 sebagai file CSV atau Parquet. Power BI kemudian dapat mengkueri kumpulan SQL tanpa server Azure Synapse untuk memuat model impor.

Latensi data

Saat data Dataverse berubah dengan cepat dan melaporkan pengguna perlu melihat data terbaru, model DirectQuery dapat memberikan hasil kueri mendekati real-time.

Tip

Anda bisa membuat laporan Power BI yang menggunakan refresh halaman otomatis untuk memperlihatkan pembaruan real-time, tetapi hanya saat laporan tersambung ke model DirectQuery.

Mengimpor model data harus menyelesaikan refresh data untuk memungkinkan pelaporan tentang perubahan data terbaru. Perlu diingat bahwa ada batasan jumlah operasi refresh data terjadwal harian. Anda dapat menjadwalkan hingga delapan refresh per hari pada kapasitas bersama. Pada kapasitas Premium atau kapasitas Microsoft Fabric, Anda dapat menjadwalkan hingga 48 refresh per hari, yang dapat mencapai frekuensi refresh 15 menit.

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.

Anda juga dapat mempertimbangkan untuk menggunakan refresh inkremental untuk mencapai refresh yang lebih cepat dan performa mendekati real-time (hanya tersedia dengan Premium atau Fabric).

Keamanan berbasis peran

Ketika ada kebutuhan untuk memberlakukan keamanan berbasis peran, hal ini dapat secara langsung memengaruhi pilihan kerangka kerja model Power BI.

Dataverse dapat memberlakukan keamanan berbasis peran yang kompleks untuk mengontrol akses rekaman tertentu kepada pengguna tertentu. Misalnya, tenaga penjualan mungkin diizinkan untuk melihat hanya peluang penjualan mereka, sementara manajer penjualan dapat melihat semua peluang penjualan untuk semua tenaga penjualan. Anda dapat menyesuaikan tingkat kompleksitas berdasarkan kebutuhan organisasi Anda.

Model DirectQuery berdasarkan Dataverse dapat tersambung dengan menggunakan konteks keamanan pengguna laporan. Dengan begitu, pengguna laporan hanya akan melihat data yang diizinkan untuk diakses. Pendekatan ini dapat menyederhanakan desain laporan, memberikan performa dapat diterima.

Untuk peningkatan performa, Anda dapat membuat model impor yang tersambung ke Dataverse sebagai gantinya. Dalam hal ini, Anda dapat menambahkan keamanan tingkat baris (RLS) ke model, jika perlu.

Catatan

Mungkin sulit untuk mereplikasi beberapa keamanan berbasis peran Dataverse sebagai Power BI RLS, terutama ketika Dataverse memberlakukan izin yang kompleks. Selanjutnya, mungkin memerlukan manajemen yang sedang berlangsung untuk menjaga izin Power BI tetap sinkron dengan izin Dataverse.

Untuk informasi selengkapnya tentang Power BI RLS, lihat Panduan keamanan tingkat baris (RLS) di Power BI Desktop.

Kompleksitas penyiapan

Menggunakan konektor Dataverse di Power BI—baik untuk model impor atau DirectQuery—mudah dan tidak memerlukan perangkat lunak khusus atau izin Dataverse yang ditinggikan. Itu adalah keuntungan bagi organisasi atau departemen yang memulai.

Opsi Azure Synapse Link memerlukan akses administrator sistem ke Dataverse dan izin Azure tertentu. Izin Azure ini diperlukan untuk menyiapkan akun penyimpanan dan ruang kerja Synapse.

Bagian ini menjelaskan pola desain (dan anti-pola) yang harus Anda pertimbangkan saat membuat model Power BI yang tersambung ke Dataverse. Hanya beberapa pola ini yang unik untuk Dataverse, tetapi cenderung menjadi tantangan umum bagi pembuat Dataverse ketika mereka mulai membuat laporan Power BI.

Fokus pada kasus penggunaan tertentu

Daripada mencoba menyelesaikan semuanya, fokus pada kasus penggunaan tertentu.

Rekomendasi ini mungkin yang paling umum dan mudah anti-pola yang paling menantang untuk dihindari. Mencoba membangun satu model yang mencapai semua kebutuhan pelaporan layanan mandiri sangat menantang. Kenyataannya adalah bahwa model yang berhasil dibangun untuk menjawab pertanyaan sekeliling serangkaian fakta pusat atas satu topik inti. Meskipun awalnya mungkin tampaknya membatasi model, model tersebut benar-benar memberdayakan karena Anda dapat menyetel dan mengoptimalkan model untuk menjawab pertanyaan dalam topik tersebut.

Untuk membantu memastikan bahwa Anda memiliki pemahaman yang jelas tentang tujuan model, ajukan pertanyaan berikut kepada diri Anda sendiri.

  • Area topik apa yang akan didukung model ini?
  • Siapa audiens laporan?
  • Pertanyaan apa yang coba dijawab oleh laporan?
  • Apa model semantik minimum yang layak?

Tahan menggabungkan beberapa area topik ke dalam satu model hanya karena pengguna laporan memiliki pertanyaan di beberapa area topik yang ingin mereka atasi oleh satu laporan. Dengan memecah laporan tersebut menjadi beberapa laporan, masing-masing dengan fokus pada topik yang berbeda (atau tabel fakta), Anda dapat menghasilkan model yang jauh lebih efisien, dapat diskalakan, dan dapat dikelola.

Merancang skema bintang

Pengembang dan administrator Dataverse yang nyaman dengan skema Dataverse mungkin tergoda untuk mereproduksi skema yang sama di Power BI. Pendekatan ini adalah anti-pola, dan mungkin yang paling sulit diatasi karena rasanya tepat untuk menjaga konsistensi.

Dataverse, sebagai model relasional, sangat cocok untuk tujuannya. Namun, ini tidak dirancang sebagai model analitik yang dioptimalkan untuk laporan analitik. Pola yang paling umum untuk memodelkan data analitik adalah desain skema bintang. Skema bintang adalah pendekatan pemodelan matang yang diadopsi secara luas oleh gudang data relasional. Skema bintang membutuhkan pemodel untuk mengklasifikasikan tabel model sebagai dimensi atau fakta. Laporan dapat memfilter atau mengelompokkan dengan menggunakan kolom tabel dimensi dan meringkas kolom tabel fakta.

Diagram menunjukkan skema bintang yang terdiri dari tabel fakta peluang tunggal dan tabel empat dimensi.

Untuk informasi selengkapnya, lihat Memahami skema bintang dan pentingnya Power BI.

Mengoptimalkan kueri Power Query

Mesin mashup Power Query berusaha untuk mencapai pelipatan kueri jika memungkinkan karena alasan efisiensi. Kueri yang mencapai pelipatan mendelegasikan pemrosesan kueri ke sistem sumber.

Sistem sumber, dalam hal ini Dataverse, hanya perlu mengirimkan hasil yang difilter atau dirangkum ke Power BI. Kueri yang dilipat seringkali jauh lebih cepat dan lebih efisien daripada kueri yang tidak dilipat.

Untuk informasi selengkapnya tentang cara mencapai pelipatan kueri, lihat Pelipatan kueri Power Query.

Catatan

Mengoptimalkan Power Query adalah topik yang luas. Untuk mencapai pemahaman yang lebih baik tentang apa yang dilakukan Power Query saat menulis dan pada waktu refresh model di Power BI Desktop, lihat Diagnostik kueri.

Meminimalkan jumlah kolom kueri

Secara default, saat Anda menggunakan Power Query untuk memuat tabel Dataverse, power Query mengambil semua baris dan semua kolom. Saat Anda mengkueri tabel pengguna sistem, misalnya, tabel tersebut dapat berisi lebih dari 1.000 kolom. Kolom dalam metadata menyertakan hubungan dengan entitas lain dan pencarian ke label opsi, sehingga jumlah total kolom bertambah dengan kompleksitas tabel Dataverse.

Mencoba mengambil data dari semua kolom adalah anti-pola. Ini sering menghasilkan operasi refresh data yang diperluas, dan itu akan menyebabkan kueri gagal ketika waktu yang diperlukan untuk mengembalikan data melebihi 10 menit.

Sebaiknya Anda hanya mengambil kolom yang diperlukan oleh laporan. Sering kali merupakan ide yang baik untuk mengevaluasi ulang dan merefaktor kueri ketika pengembangan laporan selesai, memungkinkan Anda mengidentifikasi dan menghapus kolom yang tidak digunakan. Untuk informasi selengkapnya, lihat Teknik pengurangan data untuk pemodelan impor (Hapus kolom yang tidak perlu).

Selain itu, pastikan Anda memperkenalkan langkah Hapus kolom Power Query lebih awal sehingga dilipat kembali ke sumbernya. Dengan begitu, Power Query dapat menghindari pekerjaan yang tidak perlu mengekstrak data sumber hanya untuk membuangnya nanti (dalam langkah yang belum dilipat).

Saat Anda memiliki tabel yang berisi banyak kolom, mungkin tidak praktis untuk menggunakan penyusun kueri interaktif Power Query. Dalam hal ini, Anda dapat memulai dengan membuat kueri kosong. Anda kemudian dapat menggunakan Editor Lanjutan untuk menempelkan kueri minimal yang membuat titik awal.

Pertimbangkan kueri berikut yang mengambil data hanya dari dua kolom tabel akun .

let
    Source = CommonDataService.Database("demo.crm.dynamics.com", [CreateNavigationProperties=false]),
    dbo_account = Source{[Schema="dbo", Item="account"]}[Data],
    #"Removed Other Columns" = Table.SelectColumns(dbo_account, {"accountid", "name"})
in
    #"Removed Other Columns"

Menulis kueri asli

Ketika Anda memiliki persyaratan transformasi tertentu, Anda mungkin mencapai performa yang lebih baik dengan menggunakan kueri asli yang ditulis dalam Dataverse SQL, yang merupakan subset Transact-SQL. Anda dapat menulis kueri asli untuk:

  • Kurangi jumlah baris (dengan menggunakan WHERE klausa).
  • Agregat data (dengan menggunakan GROUP BY klausa dan HAVING ).
  • Gabungkan tabel dengan cara tertentu (dengan menggunakan JOIN sintaks atau APPLY ).
  • Gunakan fungsi SQL yang didukung.

Untuk informasi selengkapnya, lihat:

Jalankan kueri asli dengan opsi EnableFolding

Power Query menjalankan kueri asli dengan menggunakan Value.NativeQuery fungsi .

Saat menggunakan fungsi ini, penting untuk menambahkan EnableFolding=true opsi untuk memastikan kueri dilipat kembali ke layanan Dataverse. Kueri asli tidak akan dilipat kecuali opsi ini ditambahkan. Mengaktifkan opsi ini dapat mengakibatkan peningkatan performa yang signifikan—hingga 97 persen lebih cepat dalam beberapa kasus.

Pertimbangkan kueri berikut yang menggunakan kueri asli untuk sumber kolom yang dipilih dari tabel akun . Kueri asli akan dilipat karena EnableFolding=true opsi diatur.

let
    Source = CommonDataService.Database("demo.crm.dynamics.com"),
    dbo_account = Value.NativeQuery(
        Source,
        "SELECT A.accountid, A.name FROM account A"
        ,null
        ,[EnableFolding=true]
    )
in
     dbo_account

Anda dapat mengharapkan untuk mencapai peningkatan performa terbesar saat mengambil subkumpulan data dari volume data besar.

Tip

Peningkatan performa juga dapat bergantung pada cara Power BI mengkueri database sumber. Misalnya, ukuran yang menggunakan COUNTDISTINCT fungsi DAX menunjukkan hampir tidak ada peningkatan dengan atau tanpa petunjuk lipatan. Saat rumus pengukuran ditulis ulang untuk menggunakan SUMX fungsi DAX, kueri dilipat menghasilkan peningkatan 97 persen atas kueri yang sama tanpa petunjuk.

Untuk informasi selengkapnya, lihat Value.NativeQuery. (Opsi EnableFolding tidak didokumenkan karena hanya khusus untuk sumber data tertentu.)

Mempercepat tahap evaluasi

Jika Anda menggunakan konektor Dataverse (sebelumnya dikenal sebagai Common Data Service), Anda dapat menambahkan CreateNavigationProperties=false opsi untuk mempercepat tahap evaluasi impor data.

Tahap evaluasi impor data berulang melalui metadata sumbernya untuk menentukan semua kemungkinan hubungan tabel. Metadata tersebut dapat ekstensif, terutama untuk Dataverse. Dengan menambahkan opsi ini ke kueri, Anda memberi tahu Power Query bahwa Anda tidak berniat menggunakan hubungan tersebut. Opsi ini memungkinkan Power BI Desktop untuk melewati tahap refresh tersebut dan melanjutkan untuk mengambil data.

Catatan

Jangan gunakan opsi ini saat kueri bergantung pada kolom hubungan yang diperluas.

Pertimbangkan contoh yang mengambil data dari tabel akun . Ini berisi tiga kolom yang terkait dengan wilayah: wilayah, territoryid, dan territoryidname.

Cuplikan layar memperlihatkan pratinjau data untuk tabel akun tiga kolom wilayah.

Saat Anda mengatur CreateNavigationProperties=false opsi, kolom territoryid dan territoryidname akan tetap ada, tetapi kolom wilayah , yang merupakan kolom hubungan (menampilkan tautan Nilai ), akan dikecualikan. Penting untuk dipahami bahwa kolom hubungan Power Query adalah konsep yang berbeda untuk memodelkan hubungan, yang menyebarluaskan filter antar tabel model.

Pertimbangkan kueri berikut yang menggunakan CreateNavigationProperties=false opsi (di langkah Sumber ) untuk mempercepat tahap evaluasi impor data.

let
    Source = CommonDataService.Database("demo.crm.dynamics.com"
        ,[CreateNavigationProperties=false]),
    dbo_account = Source{[Schema="dbo", Item="account"]}[Data],
    #"Removed Other Columns" = Table.SelectColumns(dbo_account, {"accountid", "name", "address1_stateorprovince", "address1_country", "industrycodename", "territoryidname"}),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Other Columns", {{"name", "Account Name"}, {"address1_country", "Country"}, {"address1_stateorprovince", "State or Province"}, {"territoryidname", "Territory"}, {"industrycodename", "Industry"}})
in
    #"Renamed Columns"

Saat menggunakan opsi ini, Anda mungkin mengalami peningkatan performa yang signifikan saat tabel Dataverse memiliki banyak hubungan dengan tabel lain. Misalnya, karena tabel SystemUser terkait dengan setiap tabel lain dalam database, performa refresh tabel ini akan menguntungkan dengan mengatur CreateNavigationProperties=false opsi .

Catatan

Opsi ini dapat meningkatkan performa refresh data tabel impor atau tabel mode penyimpanan ganda, termasuk proses penerapan perubahan jendela Editor Power Query. Ini tidak meningkatkan performa pemfilteran silang interaktif tabel mode penyimpanan DirectQuery.

Mengatasi label pilihan kosong

Jika Anda menemukan bahwa Label pilihan Dataverse kosong di Power BI, bisa jadi karena label belum diterbitkan ke titik akhir Aliran Data Tabular (TDS).

Dalam hal ini, buka Portal Pembuat Dataverse, navigasikan ke area Solusi , lalu pilih Terbitkan semua kustomisasi. Proses publikasi akan memperbarui titik akhir TDS dengan metadata terbaru, membuat label opsi tersedia untuk Power BI.

Dataverse mencakup kemampuan untuk menyinkronkan tabel ke Azure Data Lake Storage (ADLS) lalu menyambungkan ke data tersebut melalui ruang kerja Azure Synapse. Dengan upaya minimal, Anda dapat menyiapkan Azure Synapse Link untuk mengisi data Dataverse ke Azure Synapse dan memungkinkan tim data menemukan wawasan yang lebih mendalam.

Azure Synapse Link memungkinkan replikasi data dan metadata berkelanjutan dari Dataverse ke dalam data lake. Ini juga menyediakan kumpulan SQL tanpa server bawaan sebagai sumber data yang nyaman untuk kueri Power BI.

Kekuatan pendekatan ini signifikan. Pelanggan mendapatkan kemampuan untuk menjalankan analitik, kecerdasan bisnis, dan beban kerja pembelajaran mesin di seluruh data Dataverse dengan menggunakan berbagai layanan tingkat lanjut. Layanan tingkat lanjut termasuk Apache Spark, Power BI, Azure Data Factory, Azure Databricks, dan Azure Pembelajaran Mesin.

Untuk membuat Azure Synapse Link for Dataverse, Anda memerlukan prasyarat berikut.

  • Akses administrator sistem ke lingkungan Dataverse.
  • Untuk Azure Data Lake Storage:
  • Untuk ruang kerja Synapse:
    • Anda harus memiliki akses ke ruang kerja Synapse dan diberi akses Administrator Synapse. Untuk informasi selengkapnya, lihat Peran dan cakupan RBAC Synapse bawaan.
    • Ruang kerja harus berada di wilayah yang sama dengan akun penyimpanan ADLS Gen2.

Penyiapan melibatkan masuk ke Power Apps dan menyambungkan Dataverse ke ruang kerja Azure Synapse. Pengalaman seperti wizard memungkinkan Anda membuat tautan baru dengan memilih akun penyimpanan dan tabel yang akan diekspor. Azure Synapse Link kemudian menyalin data ke penyimpanan ADLS Gen2 dan secara otomatis membuat tampilan di kumpulan SQL tanpa server Azure Synapse bawaan. Anda kemudian dapat menyambungkan ke tampilan tersebut untuk membuat model Power BI.

Diagram memperlihatkan Azure Synapse Link menyalin data ke penyimpanan ADLS Gen2, dan Power BI menyambungkan ke Azure Synapse Analytics.

Tip

Untuk dokumentasi lengkap tentang membuat, mengelola, dan memantau Azure Synapse Link, lihat Membuat Azure Synapse Link for Dataverse dengan Ruang Kerja Azure Synapse Anda.

Membuat database SQL tanpa server kedua

Anda dapat membuat database SQL tanpa server kedua dan menggunakannya untuk menambahkan tampilan laporan kustom. Dengan begitu, Anda dapat menyajikan sekumpulan data yang disederhanakan ke pembuat Power BI yang memungkinkan mereka membuat model berdasarkan data yang berguna dan relevan. Database SQL tanpa server baru menjadi koneksi sumber utama pembuat dan representasi ramah dari data yang bersumber dari data lake.

Diagram memperlihatkan Azure Synapse Link menyalin data ke penyimpanan ADLS Gen2, dan Power BI menyambungkan ke Azure Synapse Analytics. Ini termasuk tampilan laporan kustom.

Pendekatan ini mengirimkan data ke Power BI yang berfokus, diperkaya, dan difilter.

Anda dapat membuat database SQL tanpa server di ruang kerja Azure Synapse dengan menggunakan Azure Synapse Studio. Pilih Tanpa Server sebagai jenis database SQL dan masukkan nama database. Power Query bisa tersambung ke database ini dengan menyambungkan ke titik akhir SQL ruang kerja.

Membuat tampilan kustom

Anda dapat membuat tampilan kustom yang membungkus kueri kumpulan SQL tanpa server. Tampilan ini akan berfungsi sebagai sumber data yang mudah dan bersih yang disambungkan Power BI. Tampilan harus:

  • Sertakan label yang terkait dengan bidang pilihan.
  • Kurangi kompleksitas dengan hanya menyertakan kolom yang diperlukan untuk pemodelan data.
  • Memfilter baris yang tidak perlu, seperti rekaman yang tidak aktif.

Pertimbangkan tampilan berikut yang mengambil data kampanye.

CREATE VIEW [VW_Campaign]
AS
    SELECT
        [base].[campaignid] AS [CampaignID]
        [base].[name] AS [Campaign],
        [campaign_status].[LocalizedLabel] AS [Status],
        [campaign_typecode].[LocalizedLabel] AS [Type Code]
    FROM
        [<MySynapseLinkDB>].[dbo].[campaign] AS [base]
        LEFT OUTER JOIN [<MySynapseLinkDB>].[dbo].[OptionsetMetadata] AS [campaign_typecode]
            ON [base].[typecode] = [campaign_typecode].[option]
               AND [campaign_typecode].[LocalizedLabelLanguageCode] = 1033
               AND [campaign_typecode].[EntityName] = 'campaign'
               AND [campaign_typecode].[OptionSetName] = 'typecode'
        LEFT OUTER JOIN [<MySynapseLinkDB>].[dbo].[StatusMetadata] AS [campaign_status]
            ON [base].[statuscode] = [campaign_Status].[status]
               AND [campaign_status].[LocalizedLabelLanguageCode] = 1033
               AND [campaign_status].[EntityName] = 'campaign'
    WHERE
        [base].[statecode] = 0;

Perhatikan bahwa tampilan hanya menyertakan empat kolom, masing-masing alias dengan nama yang mudah diingat. Ada juga WHERE klausul untuk mengembalikan hanya baris yang diperlukan, dalam hal ini kampanye aktif. Selain itu, tampilan meminta tabel kampanye yang digabungkan ke tabel OptionsetMetadata dan StatusMetadata , yang mengambil label pilihan.

Tip

Untuk informasi selengkapnya tentang cara mengambil metadata, lihat Mengakses label pilihan langsung dari Azure Synapse Link for Dataverse.

Kueri tabel yang sesuai

Azure Synapse Link for Dataverse memastikan bahwa data terus disinkronkan dengan data di data lake. Untuk aktivitas penggunaan tinggi, penulisan dan bacaan simultan dapat membuat kunci yang menyebabkan kueri gagal. Untuk memastikan keandalan saat mengambil data, dua versi data tabel disinkronkan di Azure Synapse.

  • Data mendekati real-time: Menyediakan salinan data yang disinkronkan dari Dataverse melalui Azure Synapse Link secara efisien dengan mendeteksi data apa yang telah berubah sejak awal diekstraksi atau terakhir disinkronkan.
  • Data rekam jepret: Menyediakan salinan baca-saja dari data mendekati real-time yang diperbarui secara berkala (dalam hal ini setiap jam). Nama tabel data rekam jepret telah _partitioned ditambahkan ke namanya.

Jika Anda mengantisipasi bahwa volume tinggi operasi baca dan tulis akan dijalankan secara bersamaan, ambil data dari tabel rekam jepret untuk menghindari kegagalan kueri.

Untuk informasi selengkapnya, lihat Mengakses data mendekati real time dan data snapshot baca-saja.

Koneksi ke Synapse Analytics

Untuk mengkueri kumpulan SQL tanpa server Azure Synapse, Anda memerlukan titik akhir SQL ruang kerjanya. Anda dapat mengambil titik akhir dari Synapse Studio dengan membuka properti kumpulan SQL tanpa server.

Di Power BI Desktop, Anda bisa menyambungkan ke Azure Synapse dengan menggunakan konektor Azure Synapse Analytics SQL. Saat diminta untuk server, masukkan titik akhir SQL ruang kerja.

Cuplikan layar memperlihatkan jendela Database SQL Server yang digunakan untuk mengatur nilai server.

Pertimbangan untuk DirectQuery

Ada banyak kasus penggunaan saat menggunakan mode penyimpanan DirectQuery dapat menyelesaikan kebutuhan Anda. Namun, menggunakan DirectQuery dapat berdampak negatif pada performa laporan Power BI. Laporan yang menggunakan koneksi DirectQuery ke Dataverse tidak akan secepat laporan yang menggunakan model impor. Umumnya, Anda harus mengimpor data ke Power BI jika memungkinkan.

Sebaiknya pertimbangkan topik di bagian ini saat bekerja dengan DirectQuery.

Untuk informasi selengkapnya tentang menentukan kapan harus bekerja dengan mode penyimpanan DirectQuery, lihat Memilih kerangka kerja model Power BI.

Menggunakan tabel dimensi mode penyimpanan ganda

Tabel mode penyimpanan ganda diatur untuk menggunakan mode penyimpanan impor dan DirectQuery. Pada waktu kueri, Power BI menentukan mode yang paling efisien untuk digunakan. Jika memungkinkan, Power BI mencoba memenuhi kueri dengan menggunakan data yang diimpor karena lebih cepat.

Anda harus mempertimbangkan untuk mengatur tabel dimensi ke mode penyimpanan ganda, jika sesuai. Dengan begitu, visual pemotong dan daftar kartu filter—yang sering didasarkan pada kolom tabel dimensi—akan dirender lebih cepat karena akan dikueri dari data yang diimpor.

Penting

Saat tabel dimensi perlu mewarisi model keamanan Dataverse, tidak sesuai untuk menggunakan mode penyimpanan ganda.

Tabel fakta, yang biasanya menyimpan data dalam volume besar, harus tetap sebagai tabel mode penyimpanan DirectQuery. Mereka akan difilter oleh tabel dimensi mode penyimpanan ganda terkait, yang dapat digabungkan ke tabel fakta untuk mencapai pemfilteran dan pengelompokan yang efisien.

Pertimbangkan desain model data berikut. Tiga tabel dimensi, Pemilik, Akun, dan Kampanye memiliki batas atas bergaris, yang berarti tabel tersebut diatur ke mode penyimpanan ganda.

Cuplikan layar memperlihatkan diagram model dengan tiga tabel mode penyimpanan ganda seperti yang dijelaskan dalam paragraf sebelumnya.

Untuk informasi selengkapnya tentang mode penyimpanan tabel termasuk penyimpanan ganda, lihat Mengelola mode penyimpanan di Power BI Desktop.

Mengaktifkan akses menyeluruh

Saat menerbitkan model DirectQuery ke layanan Power BI, Anda dapat menggunakan pengaturan model semantik untuk mengaktifkan akses menyeluruh (SSO) dengan menggunakan Microsoft Entra ID (sebelumnya dikenal sebagai Azure Active Directory) OAuth2 untuk pengguna laporan Anda. Anda harus mengaktifkan opsi ini saat kueri Dataverse harus dijalankan dalam konteks keamanan pengguna laporan.

Saat opsi SSO diaktifkan, Power BI mengirimkan kredensial Microsoft Entra yang diautentikasi pengguna laporan dalam kueri ke Dataverse. Opsi ini memungkinkan Power BI untuk mematuhi pengaturan keamanan yang disiapkan di sumber data.

Cuplikan layar memperlihatkan jendela info masuk model semantik dengan opsi SSO diaktifkan.

Untuk informasi selengkapnya, lihat Akses menyeluruh (SSO) untuk sumber DirectQuery.

Mereplikasi filter "Saya" di Power Query

Saat menggunakan Microsoft Dynamics 365 Customer Engagement (CE) dan Power Apps berbasis model yang dibangun di Dataverse, Anda dapat membuat tampilan yang hanya menampilkan rekaman di mana bidang nama pengguna, seperti Pemilik, sama dengan pengguna saat ini. Misalnya, Anda dapat membuat tampilan bernama "Peluang terbuka saya", "Kasus aktif saya", dan lainnya.

Pertimbangkan contoh bagaimana tampilan Akun Aktif Saya Dynamics 365 menyertakan filter di mana Pemilik sama dengan pengguna saat ini.

Cuplikan layar memperlihatkan filter yang disiapkan untuk tampilan Akun Aktif Saya. Kondisi filter adalah pemilik sama dengan pengguna saat ini.

Anda dapat mereproduksi hasil ini di Power Query dengan menggunakan kueri asli yang menyematkan CURRENT_USER token.

Pertimbangkan contoh berikut yang memperlihatkan kueri asli yang mengembalikan akun untuk pengguna saat ini. WHERE Dalam klausa, perhatikan bahwa kolom ownerid difilter oleh CURRENT_USER token.

let
    Source = CommonDataService.Database("demo.crm.dynamics.com", [CreateNavigationProperties=false],
    dbo_account = Value.NativeQuery(Source, "
        SELECT
            accountid, accountnumber, ownerid, address1_city, address1_stateorprovince, address1_country
        FROM account
        WHERE statecode = 0
            AND ownerid = CURRENT_USER
    ", null, [EnableFolding]=true])
in
    dbo_account

Saat menerbitkan model ke layanan Power BI, Anda harus mengaktifkan akses menyeluruh (SSO) sehingga Power BI akan mengirim kredensial Microsoft Entra terautentikasi pengguna laporan ke Dataverse.

Membuat model impor tambahan

Anda dapat membuat model DirectQuery yang memberlakukan izin Dataverse yang mengetahui bahwa performa akan lambat. Anda kemudian dapat melengkapi model ini dengan model impor yang menargetkan subjek atau audiens tertentu yang dapat memberlakukan izin RLS.

Misalnya, model impor dapat menyediakan akses ke semua data Dataverse tetapi tidak memberlakukan izin apa pun. Model ini akan cocok untuk eksekutif yang sudah memiliki akses ke semua data Dataverse.

Sebagai contoh lain, ketika Dataverse memberlakukan izin berbasis peran berdasarkan wilayah penjualan, Anda dapat membuat satu model impor dan mereplikasi izin tersebut menggunakan RLS. Atau, Anda dapat membuat model untuk setiap wilayah penjualan. Anda kemudian dapat memberikan izin baca untuk model tersebut (model semantik) kepada tenaga penjualan dari setiap wilayah. Untuk memfasilitasi pembuatan model regional ini, Anda dapat menggunakan parameter dan templat laporan. Untuk informasi selengkapnya, lihat Membuat dan menggunakan templat laporan di Power BI Desktop.

Untuk informasi selengkapnya terkait artikel ini, lihat sumber daya berikut ini.