Power BI en serverloze Synapse SQL-pool gebruiken om Azure Cosmos DB-gegevens te analyseren met Synapse Link
VAN TOEPASSING OP: NoSQL MongoDB Gremlin
In dit artikel leert u hoe u een serverloze SQL-pooldatabase en -weergaven bouwt via Synapse Link voor Azure Cosmos DB. U voert een query uit op de Azure Cosmos DB-containers en bouwt vervolgens een model met Power BI over die weergaven om die query weer te geven.
Belangrijk
Spiegeling van Azure Cosmos DB in Microsoft Fabric is nu beschikbaar in preview voor NoSql-API. Deze functie biedt alle mogelijkheden van Azure Synapse Link met betere analytische prestaties, de mogelijkheid om uw gegevensdomein te combineren met Fabric OneLake en open toegang tot uw gegevens in Delta Parquet-indeling. Als u Azure Synapse Link overweegt, raden we u aan om spiegeling uit te voeren om de algehele geschiktheid voor uw organisatie te beoordelen. Aan de slag met spiegeling in Microsoft Fabric.
Met Azure Synapse Link kunt u bijna realtime dashboards bouwen in Power BI om uw Azure Cosmos DB-gegevens te analyseren. Er is geen invloed op prestaties of kosten voor uw transactionele workloads en geen complexiteit van het beheren van ETL-pijplijnen. U kunt DirectQuery- of importmodi gebruiken.
Notitie
U kunt Power BI-dashboards bouwen met slechts een paar klikken met behulp van de Azure Cosmos DB-portal. Zie De geïntegreerde Power BI-ervaring in de Azure Cosmos DB-portal voor accounts met Synapse Link voor meer informatie. Hiermee maakt u automatisch T-SQL-weergaven in serverloze Synapse SQL-pools in uw Azure Cosmos DB-containers. U kunt gewoon het .pbids-bestand downloaden dat verbinding maakt met deze T-SQL-weergaven om te beginnen met het bouwen van uw BI-dashboards.
In dit scenario gebruikt u dummygegevens over de verkoop van Surface-producten in een winkel van partners. U analyseert de omzet per winkel op basis van de nabijheid van grote huishoudens en de impact van reclame voor een specifieke week. In dit artikel maakt u twee weergaven met de naam RetailSales en StoreDemographics en een query ertussen. U kunt de voorbeeldproductgegevens ophalen uit deze GitHub-opslagplaats .
Vereisten
Zorg ervoor dat u de volgende resources maakt voordat u begint:
Maak een Azure Cosmos DB-account voor API voor NoSQL of MongoDB.
Azure Synapse Link inschakelen voor uw Azure Cosmos DB-account
Maak een database in het Azure Cosmos DB-account en twee containers waarvoor analytische opslag is ingeschakeld.
Laad productengegevens in de Azure Cosmos DB-containers, zoals beschreven in dit notebook voor batchgegevensopname .
Maak een Synapse-werkruimte met de naam SynapseLinkBI.
Verbind de Azure Cosmos DB-database met de Synapse-werkruimte.
Een database en weergaven maken
Ga in de Synapse-werkruimte naar het tabblad Ontwikkelen , selecteer het + pictogram en selecteer SQL Script.
Elke werkruimte wordt geleverd met een serverloos SQL-eindpunt. Nadat u een SQL-script hebt gemaakt, maakt u vanaf de werkbalk bovenaan verbinding met ingebouwd.
Het maken van weergaven in de hoofddatabase of standaarddatabases wordt niet aanbevolen of ondersteund. Maak een nieuwe database met de naam RetailCosmosDB en een SQL-weergave over de containers met Synapse Link. De volgende opdracht laat zien hoe u een database maakt:
-- Create database
Create database RetailCosmosDB
Maak vervolgens meerdere weergaven in verschillende Synapse Link-containers waarvoor Azure Cosmos DB is ingeschakeld. Met weergaven kunt u T-SQL gebruiken om azure Cosmos DB-gegevens in verschillende containers samen te voegen en er query's op uit te voeren. Zorg ervoor dat u de RetailCosmosDB-database selecteert bij het maken van de weergaven.
In de volgende scripts ziet u hoe u weergaven maakt voor elke container. Ter vereenvoudiging gebruiken we de functie voor automatische schemadeductie van serverloze SQL-pool via Synapse Link-containers:
RetailVerkoopweergave:
-- 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
Zorg ervoor dat u uw Azure Cosmos DB-regio en de primaire sleutel in het vorige SQL-script invoegt. Alle tekens in de regionaam moeten in kleine letters zonder spaties worden weergegeven. In tegenstelling tot de andere parameters van de OPENROWSET
opdracht, moet de parameter containernaam worden opgegeven zonder aanhalingstekens eromheen.
Weergave 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
Voer nu het SQL-script uit door de opdracht Uitvoeren te selecteren.
Query's uitvoeren op de weergaven
Nu de twee weergaven zijn gemaakt, gaan we de query definiëren om deze twee weergaven als volgt samen te voegen:
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]
Selecteer Uitvoeren die de volgende tabel als resultaat geeft:
Modelweergaven over containers met Power BI
Open vervolgens power BI Desktop en maak verbinding met het serverloze SQL-eindpunt met behulp van de volgende stappen:
Open de toepassing Power BI Desktop. Selecteer Gegevens ophalen en selecteer meer.
Kies Azure Synapse Analytics (SQL DW) in de lijst met verbindingsopties.
Voer de naam in van het SQL-eindpunt waar de database zich bevindt. Voer in
SynapseLinkBI-ondemand.sql.azuresynapse.net
het veld Server in. In dit voorbeeld is SynapseLinkBI de naam van de werkruimte. Vervang deze als u een andere naam hebt gegeven aan uw werkruimte. Selecteer Direct Query voor de gegevensverbindingsmodus en klik vervolgens op OK.Selecteer de voorkeursverificatiemethode, zoals Microsoft Entra-id.
Selecteer de RetailCosmosDB-database en de weergaven RetailSales, StoreDemographics .
Selecteer Laden om de twee weergaven in de directe querymodus te laden.
Selecteer Model om een relatie tussen de twee weergaven te maken via de storeId-kolom .
Sleep de kolom StoreId vanuit de weergave RetailSales naar de kolom StoreId in de weergave StoreDemographics .
Selecteer de relatie Veel-op-één (*:1) omdat er meerdere rijen zijn met dezelfde winkel-id in de weergave RetailSales . StoreDemographics heeft slechts één rij winkel-id (dit is een dimensietabel).
Navigeer nu naar het rapportvenster en maak een rapport om het relatieve belang van de grootte van het huishouden te vergelijken met de gemiddelde omzet per winkel op basis van de spreidingsweergave van omzet en LargeHH-index:
Selecteer Spreidingsdiagram.
Sleep LargeHH vanuit de weergave StoreDemographics naar de X-as en zet deze neer.
Sleep omzet uit de weergave RetailSales naar de Y-as. Selecteer Gemiddelde om de gemiddelde verkoop per product per winkel en per week te verkrijgen.
Sleep de productCode vanuit de weergave RetailSales naar de legenda om een specifieke productlijn te selecteren. Nadat u deze opties hebt gekozen, ziet u een grafiek zoals in de volgende schermopname:
Volgende stappen
Geïntegreerde Power BI-ervaring in Azure Cosmos DB Portal voor Synapse Link-accounts
Serverloze SQL-pool gebruiken om Azure Open Datasets te analyseren en de resultaten te visualiseren in Azure Synapse Studio