Power BI dan kumpulan SQL tanpa server untuk menganalisis data DB Azure Cosmos dengan Synapse Link
BERLAKU UNTUK: NoSQL MongoDB Gremlin
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.
Penting
Mencerminkan Azure Cosmos DB di Microsoft Fabric sekarang tersedia dalam pratinjau untuk NoSql API. Fitur ini menyediakan semua kemampuan Azure Synapse Link dengan performa analitik yang lebih baik, kemampuan untuk menyatukan data estate Anda dengan Fabric OneLake dan membuka akses ke data Anda dalam format Delta Parquet. Jika Anda mempertimbangkan Azure Synapse Link, kami sarankan Anda mencoba mencerminkan untuk menilai kecocokan keseluruhan untuk organisasi Anda. Mulai menggunakan pencerminan di Microsoft Fabric.
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. Ini akan secara otomatis membuat tampilan T-SQL di kumpulan SQL tanpa server Synapse pada kontainer Azure 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:
Buat akun Azure Cosmos DB untuk API untuk NoSQL atau MongoDB.
Mengaktifkan Azure Synapse Link untuk akun Azure Cosmos DB Anda
Buat database dalam akun Azure Cosmos DB dan dua kontainer yang mengaktifkan penyimpanan analitik.
Muat data produk ke dalam kontainer Azure Cosmos DB seperti yang dijelaskan dalam buku catatan penyerapan data batch ini.
Buat ruang kerja Synapse bernama SynapseLinkBI.
Sambungkan database Azure Cosmos DB ke ruang kerja Synapse.
Membuat basis data dan tampilan
Dari ruang kerja Synapse, buka tab Kembangkan, pilih ikon +, dan pilih SQL Script.
Setiap ruang kerja dilengkapi dengan titik akhir SQL tanpa server. Setelah membuat skrip SQL, dari bilah alat di bagian atas terhubung ke Bawaan.
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 Azure Cosmos DB yang diaktifkan Synapse Link. 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 DB account name>;database=<Your Azure Cosmos DB 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 DB account name>;database=<Your Azure Cosmos DB 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:
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:
Buka aplikasi Power BI Desktop. Pilih Dapatkan data dan pilih lainnya.
Pilih Azure Synapse Analytics (SQL DW) dari daftar opsi koneksi.
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.Pilih metode autentikasi pilihan seperti MICROSOFT Entra ID.
Pilih database RetailCosmosDB dan tampilan RetailSales, StoreDemographics.
Pilih Muat untuk memuat dua tampilan ke mode kueri langsung.
Pilih Model untuk membuat hubungan antara dua tampilan melalui kolom storeId.
Seret kolom StoreId dari tampilan RetailSales ke kolom StoreId di tampilan StoreDemographics.
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:
Pilih Bagan sebar.
Seret dan jatuhkan LargeHH dari tampilan StoreDemographics ke dalam sumbu X.
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.
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:
Langkah berikutnya
Pengalaman Power BI terintegrasi di portal Azure Cosmos DB untuk akun yang diaktifkan 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