Power BI dan kumpulan SQL tanpa server untuk menganalisis data DB Azure Cosmos dengan Synapse Link

BERLAKU UNTUK: API SQL API Azure Cosmos DB untuk MongoDB

Dalam artikel ini, Anda dapat membuat basis data kumpulan SQL nirserver dan melihat Synapse Link untuk Azure Cosmos DB. Anda akan bisa mengkueri kontainer Azure Cosmos DB lalu menyusun model dengan Power BI melalui tampilan tersebut untuk mencerminkan kueri tersebut.

Dengan Azure Synapse Link, Anda dapat membuat dasbor hampir real-time di Power BI untuk menganalisis data Azure Cosmos DB Anda. Tidak ada dampak performa atau biaya pada beban kerja transaksional Anda, dan tidak ada kompleksitas dalam mengelola alur ETL. Anda dapat menggunakan DirectQuery atau mode impor.

Catatan

Anda dapat membuat dasbor Power BI hanya dengan beberapa klik menggunakan portal Azure Cosmos DB. Untuk informasi selengkapnya, lihat Pengalaman Power BI terintegrasi di portal Azure Cosmos DB untuk akun yang didukung Synapse Link. Hal ini akan secara otomatis membuat tampilan T-SQL di kumpulan SQL tanpa server Synapse pada kontainer Cosmos DB Anda. Anda cukup mengunduh file .pbids yang terhubung ke tampilan T-SQL ini untuk mulai membuat dasbor BI Anda.

Dalam skenario ini, Anda akan menggunakan data dummy tentang penjualan produk Surface di toko ritel mitra. Anda akan menganalisis pendapatan per toko berdasarkan kedekatan dengan rumah tangga besar dan dampak iklan untuk minggu tertentu. Dalam artikel ini, Anda membuat dua tampilan bernama RetailSales dan StoreDemographics dan kueri di antaranya. Anda bisa mendapatkan contoh data produk dari repo GitHub ini.

Prasyarat

Pastikan untuk membuat sumber daya berikut ini sebelum Anda memulai:

Membuat basis data dan tampilan

Dari ruang kerja Synapse, buka tab Kembangkan, pilih + ikon, dan pilih SQL Script.

Add a SQL script to the Synapse Analytics workspace

Setiap ruang kerja dilengkapi dengan titik akhir SQL tanpa server. Setelah membuat skrip SQL, dari bilah alat di bagian atas terhubung ke Bawaan.

Enable the SQL script to use the serverless SQL endpoint in the workspace

Membuat tampilan di master atau basis data default tidak disarankan atau didukung. Buat basis data baru, bernama RetailCosmosDB, dan tampilan SQL atas kontainer yang diaktifkan Synapse Link. Perintah berikut ini memperlihatkan cara membuat basis data:

-- Create database
Create database RetailCosmosDB

Selanjutnya, buat beberapa tampilan di berbagai kontainer Synapse Link yang diaktifkan Azure Cosmos. Tampilan akan memungkinkan Anda menggunakan T-SQL untuk bergabung dan meminta data Azure Cosmos DB duduk di kontainer yang berbeda. Pastikan untuk memilih basis data RetailCosmosDB saat membuat tampilan.

Skrip berikut ini memperlihatkan cara membuat tampilan pada setiap kontainer. Untuk kesederhanaan, mari kita gunakan fitur inferensi skema otomatis dari kumpulan SQL tanpa server melalui kontainer yang diaktifkan Synapse Link:

Tampilan RetailSales:

-- Create view for RetailSales container
CREATE VIEW  RetailSales
AS  
SELECT  *
FROM OPENROWSET (
    'CosmosDB', N'account=<Your Azure Cosmos account name>;database=<Your Azure Cosmos database name>;region=<Your Azure Cosmos DB Region>;key=<Your Azure Cosmos DB key here>',RetailSales)
AS q1

Pastikan untuk menyisipkan wilayah Azure Cosmos DB Anda dan kunci utama dalam skrip SQL sebelumnya. Semua karakter dalam nama kawasan harus dalam huruf kecil tanpa spasi. Tidak seperti parameter lain dari OPENROWSET perintah, parameter nama kontainer harus ditentukan tanpa tanda kutip di sekitarnya.

Tampilan StoreDemographics:

-- Create view for StoreDemographics container
CREATE VIEW StoreDemographics
AS  
SELECT  *
FROM OPENROWSET (
    'CosmosDB', N'account=<Your Azure Cosmos account name>;database=<Your Azure Cosmos database name>;region=<Your Azure Cosmos DB Region>;key=<Your Azure Cosmos DB key here>', StoreDemographics)
AS q1

Sekarang jalankan skrip SQL dengan memilih perintah Jalankan.

Mengkueri tampilan

Sekarang setelah dua tampilan dibuat, mari kita tetapkan kueri untuk bergabung dengan dua tampilan tersebut sebagai berikut:

SELECT 
sum(p.[revenue]) as revenue
,p.[advertising]
,p.[storeId]
,p.[weekStarting]
,q.[largeHH]
 FROM [dbo].[RetailSales] as p
INNER JOIN [dbo].[StoreDemographics] as q ON q.[storeId] = p.[storeId]
GROUP BY p.[advertising], p.[storeId], p.[weekStarting], q.[largeHH]

Pilih Jalankan yang memberikan tabel berikut ini sebagai hasilnya:

Query results after joining the StoreDemographics and RetailSales views

Tampilan model atas kontainer dengan Power BI

Selanjutnya buka desktop Power BI dan sambungkan ke titik akhir SQL tanpa server dengan menggunakan langkah-langkah berikut ini:

  1. Buka aplikasi Power BI Desktop. Pilih Dapatkan data dan pilih lainnya.

  2. Pilih Azure Synapse Analytics (SQL DW) dari daftar opsi koneksi.

  3. Masukkan nama titik akhir SQL tempat database berada. Masukkan SynapseLinkBI-ondemand.sql.azuresynapse.net dalam bidang Server. Dalam contoh ini, SynapseLinkBI adalah nama ruang kerja. Ganti jika Anda telah memberikan nama yang berbeda ke ruang kerja Anda. Pilih Kueri Langsung untuk mode konektivitas data lalu OK.

  4. Pilih metode autentikasi pilihan seperti Azure AD.

  5. Pilih database RetailCosmosDB dan tampilan RetailSales, StoreDemographics.

  6. Pilih Muat untuk memuat dua tampilan ke mode kueri langsung.

  7. Pilih Model untuk membuat hubungan antara dua tampilan melalui kolom storeId.

  8. Seret kolom StoreIddari tampilan RetailSaleske kolom StoreIddi tampilan StoreDemographics.

  9. Pilih hubungan Banyak ke satu (*:1) karena ada beberapa baris dengan ID toko yang sama dalam tampilan RetailSales. StoreDemographics hanya memiliki satu baris ID toko (ini adalah tabel dimensi).

Sekarang navigasikan ke jendela laporan dan buat laporan untuk membandingkan kepentingan relatif ukuran rumah tangga dengan pendapatan rata-rata per toko berdasarkan representasi pendapatan yang tersebar dan indeks LargeHH:

  1. Pilih Bagan sebar.

  2. Seret dan jatuhkan LargeHHdari tampilan StoreDemographics ke dalam sumbu X.

  3. Tarik dan jatuhkan Pendapatan dari tampilan RetailSales ke dalam sumbu Y. Pilih Rata-rata untuk mendapatkan penjualan rata-rata per produk per toko dan per minggu.

  4. Tarik dan jatuhkan productCode dari tampilan RetailSales ke dalam legenda untuk memilih lini produk tertentu. Setelah Anda memilih opsi ini, Anda akan melihat grafik seperti tangkapan layar berikut:

Report that compares the relative importance of household size to the average revenue per store

Langkah berikutnya

Pengalaman Power BI terintegrasi di portal Azure Cosmos DB untuk akun dengan dukungan Synapse Link

Menggunakan T-SQL untuk mengkueri data DB Azure Cosmos menggunakan Azure Synapse Link

Gunakan kumpulan SQL tanpa server untuk menganalisis kumpulan Data Terbuka Azure dan memvisualisasikan hasilnya di Azure Synapse Studio