Używanie usługi Power BI i bezserwerowej puli SQL usługi Synapse do analizowania danych usługi Azure Cosmos DB za pomocą usługi Synapse Link
DOTYCZY: NoSQL MongoDB Gremlin
Z tego artykułu dowiesz się, jak utworzyć bezserwerową bazę danych i widoki puli SQL za pośrednictwem usługi Synapse Link dla usługi Azure Cosmos DB. Wykonasz zapytanie dotyczące kontenerów usługi Azure Cosmos DB, a następnie utworzysz model za pomocą usługi Power BI w tych widokach, aby odzwierciedlić to zapytanie.
Ważne
Dublowanie usługi Azure Cosmos DB w usłudze Microsoft Fabric jest teraz dostępne w wersji zapoznawczej dla interfejsu API NoSql. Ta funkcja zapewnia wszystkie możliwości usługi Azure Synapse Link z lepszą wydajnością analityczną, możliwość ujednolicenia majątku danych za pomocą usługi Fabric OneLake i otwierania dostępu do danych w formacie Delta Parquet. Jeśli rozważasz usługę Azure Synapse Link, zalecamy wypróbowanie dublowania w celu oceny ogólnego dopasowania organizacji. Wprowadzenie do dublowania w usłudze Microsoft Fabric.
Za pomocą usługi Azure Synapse Link możesz tworzyć pulpity nawigacyjne niemal w czasie rzeczywistym w usłudze Power BI, aby analizować dane usługi Azure Cosmos DB. Nie ma wpływu na wydajność lub koszty obciążeń transakcyjnych i nie ma złożoności zarządzania potokami ETL. Możesz użyć trybu DirectQuery lub trybów importu .
Uwaga
Pulpity nawigacyjne usługi Power BI można tworzyć za pomocą kilku kliknięć przy użyciu portalu usługi Azure Cosmos DB. Aby uzyskać więcej informacji, zobacz Zintegrowane środowisko usługi Power BI w portalu usługi Azure Cosmos DB dla kont z obsługą usługi Synapse Link. Spowoduje to automatyczne utworzenie widoków języka T-SQL w bezserwerowych pulach SQL usługi Synapse w kontenerach usługi Azure Cosmos DB. Możesz po prostu pobrać plik pbids, który łączy się z tymi widokami języka T-SQL, aby rozpocząć tworzenie pulpitów nawigacyjnych analizy biznesowej.
W tym scenariuszu użyjesz fikcyjnych danych dotyczących sprzedaży produktów Surface w partnerskim sklepie detalicznym. Przeanalizujesz przychody na sklep w oparciu o bliskość dużych gospodarstw domowych i wpływ reklamy na określony tydzień. W tym artykule utworzysz dwa widoki o nazwie RetailSales i StoreDemographics oraz zapytanie między nimi. Przykładowe dane produktu można pobrać z tego repozytorium GitHub .
Wymagania wstępne
Przed rozpoczęciem utwórz następujące zasoby:
Utwórz konto usługi Azure Cosmos DB dla interfejsu API dla bazy danych NoSQL lub MongoDB.
Włączanie usługi Azure Synapse Link dla konta usługi Azure Cosmos DB
Utwórz bazę danych na koncie usługi Azure Cosmos DB i dwa kontenery z włączonym magazynem analitycznym.
Załaduj dane produktów do kontenerów usługi Azure Cosmos DB zgodnie z opisem w tym notesie pozyskiwania danych wsadowych.
Utwórz obszar roboczy usługi Synapse o nazwie SynapseLinkBI.
Połącz bazę danych usługi Azure Cosmos DB z obszarem roboczym usługi Synapse.
Tworzenie bazy danych i widoków
W obszarze roboczym usługi Synapse przejdź do karty Programowanie , wybierz + ikonę i wybierz pozycję Skrypt SQL.
Każdy obszar roboczy jest dostarczany z bezserwerowym punktem końcowym SQL. Po utworzeniu skryptu SQL na pasku narzędzi na górnym pasku nawiąż połączenie z wbudowanym.
Tworzenie widoków w bazach danych głównych lub domyślnych nie jest zalecane ani obsługiwane. Utwórz nową bazę danych o nazwie RetailCosmosDB i widok SQL dla kontenerów z obsługą usługi Synapse Link. Następujące polecenie pokazuje, jak utworzyć bazę danych:
-- Create database
Create database RetailCosmosDB
Następnie utwórz wiele widoków w różnych kontenerach usługi Synapse Link z obsługą usługi Azure Cosmos DB. Widoki umożliwiają łączenie i wykonywanie zapytań dotyczących danych usługi Azure Cosmos DB w różnych kontenerach przy użyciu języka T-SQL. Pamiętaj, aby wybrać bazę danych RetailCosmosDB podczas tworzenia widoków.
Poniższe skrypty pokazują, jak tworzyć widoki dla każdego kontenera. Dla uproszczenia użyjemy funkcji automatycznego wnioskowania schematu bezserwerowej puli SQL za pośrednictwem kontenerów z obsługą usługi Synapse Link:
Widok sprzedaży detalicznej:
-- 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
Pamiętaj, aby wstawić region usługi Azure Cosmos DB i klucz podstawowy w poprzednim skrypecie SQL. Wszystkie znaki w nazwie regionu powinny mieć małe litery bez spacji. W przeciwieństwie do innych parametrów OPENROWSET
polecenia, parametr nazwy kontenera powinien być określony bez cudzysłowów wokół niego.
Widok 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
Teraz uruchom skrypt SQL, wybierając polecenie Uruchom .
Wykonywanie zapytań względem widoków
Teraz, po utworzeniu dwóch widoków, zdefiniujmy zapytanie, aby połączyć te dwa widoki w następujący sposób:
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]
Wybierz pozycję Uruchom , która daje następującą tabelę w wyniku:
Widoki modelu za pomocą kontenerów w usłudze Power BI
Następnie otwórz program Power BI Desktop i połącz się z bezserwerowym punktem końcowym SQL, wykonując następujące kroki:
Otwórz aplikację Power BI Desktop. Wybierz pozycję Pobierz dane i wybierz więcej.
Wybierz pozycję Azure Synapse Analytics (SQL DW) z listy opcji połączenia.
Wprowadź nazwę punktu końcowego SQL, w którym znajduje się baza danych. Wprowadź
SynapseLinkBI-ondemand.sql.azuresynapse.net
wartość w polu Serwer . W tym przykładzie usługa SynapseLinkBI jest nazwą obszaru roboczego. Zastąp go, jeśli nadano inną nazwę obszarowi roboczemu. Wybierz pozycję Zapytanie bezpośrednie dla trybu łączności danych, a następnie kliknij przycisk OK.Wybierz preferowaną metodę uwierzytelniania, taką jak Microsoft Entra ID.
Wybierz bazę danych RetailCosmosDB i widoki RetailSales, StoreDemographics.
Wybierz pozycję Załaduj , aby załadować dwa widoki do trybu zapytania bezpośredniego.
Wybierz pozycję Model , aby utworzyć relację między dwoma widokami za pośrednictwem kolumny storeId .
Przeciągnij kolumnę StoreId z widoku RetailSales w kierunku kolumny StoreId w widoku StoreDemographics.
Wybierz relację Wiele do jednego (*:1), ponieważ w widoku RetailSales istnieje wiele wierszy o tym samym identyfikatorze sklepu. StoreDemographics ma tylko jeden wiersz identyfikatora magazynu (jest to tabela wymiarów).
Teraz przejdź do okna raportu i utwórz raport, aby porównać względne znaczenie wielkości gospodarstwa domowego ze średnim przychodem na sklep na podstawie rozproszonej reprezentacji przychodów i indeksu LargeHH:
Wybierz pozycję Wykres punktowy.
Przeciągnij i upuść largeHh z widoku StoreDemographics do osi X.
Przeciągnij i upuść widok Revenue (Przychód ) z widoku RetailSales (Sprzedaż detaliczna) na oś Y. Wybierz pozycję Średnia , aby uzyskać średnią sprzedaż na produkt na sklep i tydzień.
Przeciągnij i upuść element productCode z widoku RetailSales do legendy, aby wybrać określoną linię produktu. Po wybraniu tych opcji powinien zostać wyświetlony wykres podobny do poniższego zrzutu ekranu:
Następne kroki
Używanie bezserwerowej puli SQL do analizowania zestawów danych Usługi Azure Open i wizualizowania wyników w usłudze Azure Synapse Studio