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.
Wichtig
Das Spiegeln von Azure Cosmos DB in Microsoft Fabric ist jetzt in der Vorschau für die NoSql-API verfügbar. Dieses Feature bietet alle Funktionen von Azure Synapse Link mit besserer Analyseleistung und der Möglichkeit, Ihren Datenbestand mit Fabric OneLake zu vereinheitlichen und den Zugriff auf die Daten im Delta-Parquet-Format zu öffnen. Wenn Sie Azure Synapse Link in Erwägung ziehen, wird empfohlen, die Spiegelung auszuprobieren, um die Eignung für Ihr Unternehmen insgesamt zu beurteilen. Erste Schritte mit der Spiegelung in Microsoft Fabric.
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.
Voraussetzungen
Sie müssen die folgenden Ressourcen erstellen, bevor Sie beginnen:
Erstellen eines Azure Cosmos DB-Kontos für die API für NoSQL oder MongoDB
Aktivieren von Azure Synapse Link für Azure Cosmos DB-Konten
Erstellen Sie eine Datenbank im Azure Cosmos DB-Konto und zwei Container, bei denen der Analysespeicher aktiviert wurde.
Laden Sie die Produktdaten in die Azure Cosmos DB-Container, wie in diesem Notebook zur Batchdatenerfassung beschrieben wird.
Erstellen Sie den Synapse-ArbeitsbereichSynapseLinkBI.
Erstellen einer Datenbank und von Sichten
Wechseln Sie im Synapse-Arbeitsbereich zur Registerkarte Entwickeln, wählen Sie das Symbol + und dann SQL-Skript aus.
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.
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:
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:
Öffnen Sie die Power BI Desktop-Anwendung. Wählen Sie Daten abrufen und dann Weitere aus.
Wählen Sie in der Liste mit den Verbindungsoptionen Azure Synapse Analytics (SQL DW) aus.
Geben Sie den Namen des SQL-Endpunkts ein, auf dem sich die Datenbank befindet. Geben Sie im Feld Server
SynapseLinkBI-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.Wählen Sie die bevorzugte Authentifizierungsmethode aus, z. B. Microsoft Entra ID.
Wählen Sie die Datenbank RetailCosmosDB sowie die Sichten RetailSales und StoreDemographics aus.
Wählen Sie Laden aus, um die beiden Sichten in den Direktabfragemodus zu laden.
Wählen Sie Modell aus, um eine Beziehung zwischen den beiden Sichten über die Spalte storeId zu erstellen.
Ziehen Sie die Spalte StoreId aus der Sicht RetailSales zur Spalte StoreId in der Sicht StoreDemographics.
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:
Wählen Sie Punktdiagrammaus.
Verschieben Sie LargeHH mit Drag und Drop aus der Sicht StoreDemographics in die x-Achse.
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.
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:
Nächste Schritte
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.