Udostępnij za pośrednictwem


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:

Tworzenie bazy danych i widoków

W obszarze roboczym usługi Synapse przejdź do karty Programowanie , wybierz + ikonę i wybierz pozycję Skrypt SQL.

Dodawanie skryptu SQL do obszaru roboczego usługi Synapse Analytics

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.

Włączanie skryptu SQL do używania bezserwerowego punktu końcowego SQL w obszarze roboczym

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:

Wyniki zapytania po dołączeniu do widoków StoreDemographics i RetailSales

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:

  1. Otwórz aplikację Power BI Desktop. Wybierz pozycję Pobierz dane i wybierz więcej.

  2. Wybierz pozycję Azure Synapse Analytics (SQL DW) z listy opcji połączenia.

  3. 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.

  4. Wybierz preferowaną metodę uwierzytelniania, taką jak Microsoft Entra ID.

  5. Wybierz bazę danych RetailCosmosDB i widoki RetailSales, StoreDemographics.

  6. Wybierz pozycję Załaduj , aby załadować dwa widoki do trybu zapytania bezpośredniego.

  7. Wybierz pozycję Model , aby utworzyć relację między dwoma widokami za pośrednictwem kolumny storeId .

  8. Przeciągnij kolumnę StoreId z widoku RetailSales w kierunku kolumny StoreId w widoku StoreDemographics.

  9. 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:

  1. Wybierz pozycję Wykres punktowy.

  2. Przeciągnij i upuść largeHh z widoku StoreDemographics do osi X.

  3. 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ń.

  4. 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:

Raport, który porównuje względne znaczenie wielkości gospodarstwa domowego ze średnim przychodem na sklep

Następne kroki

Zintegrowane środowisko usługi Power BI w portalu usługi Azure Cosmos DB dla kont z obsługą usługi Synapse Link

Używanie języka T-SQL do wykonywania zapytań dotyczących danych usługi Azure Cosmos DB przy użyciu usługi Azure Synapse Link

Używanie bezserwerowej puli SQL do analizowania zestawów danych Usługi Azure Open i wizualizowania wyników w usłudze Azure Synapse Studio