Verwenden von Power BI und serverlosen Synapse SQL-Pools zum Analysieren von Azure Cosmos DB-Daten mit Synapse Link

GILT FÜR: NoSQL MongoDB Gremlin

In diesem Artikel erfahren Sie, wie Sie eine Datenbank im serverlosen SQL-Pool und Sichten zu Synapse Link für Azure Cosmos DB erstellen. Sie werden die Azure Cosmos DB-Container abfragen und dann ein Modell mit Power BI für diese Sichten erstellen, um die betreffende Abfrage anzuzeigen.

Mit Azure Synapse Link können Sie Dashboards nahezu in Echtzeit in Power BI erstellen, um Ihre Daten aus Azure Cosmos DB zu analysieren. Es gibt keine Auswirkungen auf die Leistung oder Kosten Ihrer Transaktionsworkloads, und auch die Verwaltung von ETL-Pipelines bleibt unverändert. Sie können entweder den Modus DirectQuery oder Import verwenden.

Hinweis

Sie können mit nur wenigen Klicks Power BI-Dashboards erstellen, indem Sie das Azure Cosmos DB-Portal verwenden. Weitere Informationen finden Sie unter Integrierte Power BI-Oberfläche im Azure Cosmos DB-Portal für Konten mit aktivierter Synapse Link-Funktion. Dadurch werden automatisch T-SQL-Ansichten in serverlosen Synapse-SQL-Pools in Ihren Azure Cosmos DB-Containern erstellt. Sie können einfach die PBIDS-Datei zur Verbindung mit diesen T-SQL Ansichten herunterladen, um mit dem Erstellen Ihrer BI-Dashboards zu beginnen.

In diesem Szenario verwenden Sie simulierte Daten zu Surface-Produktverkäufen in einem Partner-Einzelhandelsgeschäft. Sie werden den Umsatz pro Geschäft – basierend auf der Nähe zu großen Haushalten und der Auswirkung von Werbung – für eine bestimmte Woche analysieren. In diesem Artikel erstellen Sie die zwei Sichten RetailSales und StoreDemographics sowie eine Abfrage zwischen beiden. Sie können die Beispielproduktdaten aus diesem GitHub-Repository abrufen.

Hinweis

Synapse Link für die Gremlin-API ist jetzt in der Vorschau. Sie können Synapse Link in Ihrem neuen oder vorhandenen Graphen mithilfe der Azure CLI aktivieren. Weitere Informationen zum Konfigurieren finden Sie hier.

Voraussetzungen

Sie müssen die folgenden Ressourcen erstellen, bevor Sie beginnen:

Erstellen einer Datenbank und von Sichten

Wechseln Sie im Synapse-Arbeitsbereich zur Registerkarte Entwickeln, wählen Sie das Symbol + und dann SQL-Skript aus.

Add a SQL script to the Synapse Analytics workspace

Jeder Arbeitsbereich enthält einen serverlosen SQL-Endpunkt. Nachdem Sie ein SQL-Skript erstellt haben, stellen Sie über die Symbolleiste oben eine Verbindung mit Integriert her.

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

Das Erstellen von Sichten in Master- oder Standarddatenbanken wird nicht empfohlen oder unterstützt. Erstellen Sie die neue Datenbank RetailCosmosDB und eine SQL-Sicht für die Container mit Synapse Link-Aktivierung. Der folgende Befehl zeigt, wie eine Datenbank erstellt wird:

-- Create database
Create database RetailCosmosDB

Erstellen Sie als Nächstes mehrere Sichten für verschiedene Azure Cosmos DB-Container mit Synapse Link-Aktivierung. Sichten ermöglichen es Ihnen, Azure Cosmos DB-Daten in verschiedenen Containern mithilfe von T-SQL zu verknüpfen und abzufragen. Beim Erstellen der Sichten müssen Sie die Datenbank RetailCosmosDB auswählen.

Die folgenden Skripts zeigen, wie Sichten für jeden Container erstellt werden. Der Einfachheit halber verwenden wir das Feature Automatischer Schemarückschluss des serverlosen SQL-Pools in Containern mit Synapse Link-Aktivierung:

Sicht „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

In das vorherige SQL-Skript müssen Sie Ihre Azure Cosmos DB-Region und den Primärschlüssel einfügen. Alle Zeichen im Regionsnamen sollten Kleinbuchstaben ohne Leerzeichen sein. Im Gegensatz zu den anderen Parametern des Befehls OPENROWSET sollte der Parameter für den Containernamen ohne Anführungszeichen angegeben werden.

Sicht „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

Führen Sie jetzt das SQL-Skript durch Auswählen des Befehls Ausführen aus.

Abfragen der Sichten

Nachdem die beiden Sichten erstellt wurden, definieren Sie die Abfrage jetzt so, dass diese Sichten folgendermaßen verknüpft werden:

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]

Wählen Sie Ausführen aus, um die folgende Tabelle als Ergebnis zu erhalten:

Query results after joining the StoreDemographics and RetailSales views

Modellsichten für Container mit Power BI

Öffnen Sie als Nächstes den Power BI-Desktop, und stellen Sie mit den folgenden Schritten eine Verbindung mit dem serverlosen SQL-Endpunkt her:

  1. Öffnen Sie die Power BI Desktop-Anwendung. Wählen Sie Daten abrufen und dann Weitere aus.

  2. Wählen Sie in der Liste mit den Verbindungsoptionen Azure Synapse Analytics (SQL DW) aus.

  3. Geben Sie den Namen des SQL-Endpunkts ein, auf dem sich die Datenbank befindet. Geben Sie im Feld ServerSynapseLinkBI-ondemand.sql.azuresynapse.net ein. In diesem Beispiel ist SynapseLinkBI der Name des Arbeitsbereichs. Ersetzen Sie ihn, wenn Sie für Ihren Arbeitsbereich einen anderen Namen angegeben haben. Wählen Sie für den Datenkonnektivitätsmodus Direkte Abfrage und dann OK aus.

  4. Wählen Sie die bevorzugte Authentifizierungsmethode aus, z. B. Microsoft Entra ID.

  5. Wählen Sie die Datenbank RetailCosmosDB sowie die Sichten RetailSales und StoreDemographics aus.

  6. Wählen Sie Laden aus, um die beiden Sichten in den Direktabfragemodus zu laden.

  7. Wählen Sie Modell aus, um eine Beziehung zwischen den beiden Sichten über die Spalte storeId zu erstellen.

  8. Ziehen Sie die Spalte StoreId aus der Sicht RetailSales zur Spalte StoreId in der Sicht StoreDemographics.

  9. Wählen Sie die Beziehung „Viele zu eins (*:1)“ aus, weil es in der Sicht RetailSales mehrere Zeilen mit derselben Speicher-ID gibt. Die Sicht StoreDemographics enthält jedoch nur eine Zeile mit der Speicher-ID (es handelt sich um eine Dimensionstabelle).

Navigieren Sie jetzt zum Fenster Bericht, und erstellen Sie einen Bericht, um die relative Wichtigkeit der Haushaltsgröße mit dem durchschnittlichen Umsatz pro Geschäft – basierend auf der verstreuten Darstellung von Umsatz und LargeHH-Index – zu vergleichen:

  1. Wählen Sie Punktdiagrammaus.

  2. Verschieben Sie LargeHH mit Drag und Drop aus der Sicht StoreDemographics in die x-Achse.

  3. Verschieben Sie Umsatz aus der Sicht RetailSales in die y-Achse. Wählen Sie Durchschnitt aus, um den durchschnittlichen Umsatz pro Produkt pro Geschäft und pro Woche zu erhalten.

  4. Verschieben Sie den productCode mit Drag und Drop aus der Sicht RetailSales in die Legende, um eine bestimmte Produktlinie auszuwählen. Nachdem Sie diese Optionen ausgewählt haben, sollte ein Diagramm wie der folgende Screenshot angezeigt werden:

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

Nächste Schritte

Integrierte Power BI-Oberfläche im Azure Cosmos DB-Portal für Konten mit aktivierter Synapse Link-Funktion

Verwenden von T-SQL zum Abfragen von Azure Cosmos DB-Daten mithilfe von Azure Synapse Link

Verwenden Sie den serverlosen SQL-Pool zum Analysieren von Azure Open Datasets und Visualisieren der Ergebnisse in Azure Synapse Studio.