Dela via


Använda Power BI och en serverlös Synapse SQL-pool för att analysera Azure Cosmos DB-data med Synapse Link

GÄLLER FÖR: NoSQL MongoDB Gremlin

I den här artikeln får du lära dig hur du skapar en serverlös SQL-pooldatabas och vyer över Synapse Link för Azure Cosmos DB. Du frågar Azure Cosmos DB-containrarna och skapar sedan en modell med Power BI över dessa vyer för att återspegla den frågan.

Viktigt!

Spegling av Azure Cosmos DB i Microsoft Fabric är nu tillgängligt som förhandsversion för NoSql API. Den här funktionen ger alla funktioner i Azure Synapse Link med bättre analytiska prestanda, möjlighet att förena din dataegendom med Fabric OneLake och öppna åtkomsten till dina data i Delta Parquet-format. Om du överväger Azure Synapse Link rekommenderar vi att du provar spegling för att utvärdera den övergripande anpassningen för din organisation. Kom igång med spegling i Microsoft Fabric.

Med Azure Synapse Link kan du skapa instrumentpaneler i nära realtid i Power BI för att analysera dina Azure Cosmos DB-data. Det finns ingen prestanda- eller kostnadspåverkan för dina transaktionsarbetsbelastningar och ingen komplexitet i att hantera ETL-pipelines. Du kan använda directquery- eller importlägen.

Kommentar

Du kan skapa Power BI-instrumentpaneler med bara några klick med hjälp av Azure Cosmos DB-portalen. Mer information finns i Integrerad Power BI-upplevelse i Azure Cosmos DB-portalen för Synapse Link-aktiverade konton. Detta skapar automatiskt T-SQL-vyer i Synapse-serverlösa SQL-pooler på dina Azure Cosmos DB-containrar. Du kan helt enkelt ladda ned .pbids-filen som ansluter till dessa T-SQL-vyer för att börja skapa dina BI-instrumentpaneler.

I det här scenariot använder du dummydata om Surface-produktförsäljning i en partnerbutik. Du kommer att analysera intäkterna per butik baserat på närheten till stora hushåll och effekten av reklam för en viss vecka. I den här artikeln skapar du två vyer med namnet RetailSales och StoreDemographics och en fråga mellan dem. Du kan hämta exempelproduktdata från den här GitHub-lagringsplatsen .

Förutsättningar

Se till att skapa följande resurser innan du börjar:

Skapa en databas och vyer

Från Synapse-arbetsytan går du till fliken Utveckla , väljer + ikonen och väljer SQL-skript.

Lägga till ett SQL-skript på Synapse Analytics-arbetsytan

Varje arbetsyta levereras med en serverlös SQL-slutpunkt. När du har skapat ett SQL-skript ansluter du till inbyggd från verktygsfältet högst upp.

Aktivera SQL-skriptet för att använda den serverlösa SQL-slutpunkten på arbetsytan

Att skapa vyer i huvuddatabaserna eller standarddatabaserna rekommenderas inte eller stöds inte. Skapa en ny databas med namnet RetailCosmosDB och en SQL-vy över de Synapse Link-aktiverade containrarna. Följande kommando visar hur du skapar en databas:

-- Create database
Create database RetailCosmosDB

Skapa sedan flera vyer över olika Synapse Link-aktiverade Azure Cosmos DB-containrar. Med vyer kan du använda T-SQL för att ansluta till och köra frågor mot Azure Cosmos DB-data som finns i olika containrar. Se till att välja Databasen RetailCosmosDB när du skapar vyerna.

Följande skript visar hur du skapar vyer för varje container. För enkelhetens skull ska vi använda funktionen för automatisk schemainferens i serverlösa SQL-pooler via Synapse Link-aktiverade containrar:

RetailSales-vy:

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

Se till att infoga din Azure Cosmos DB-region och primärnyckeln i föregående SQL-skript. Alla tecken i regionnamnet ska vara i gemener utan blanksteg. Till skillnad från de andra parametrarna i OPENROWSET kommandot bör parametern containernamn anges utan citattecken runt det.

StoreDemographics-vy:

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

Kör nu SQL-skriptet genom att välja kommandot Kör .

Fråga vyerna

Nu när de två vyerna har skapats ska vi definiera frågan för att koppla dessa två vyer enligt följande:

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]

Välj Kör som ger följande tabell som resultat:

Fråga efter att ha anslutit vyerna StoreDemographics och RetailSales

Modellvyer över containrar med Power BI

Öppna sedan Power BI Desktop och anslut till den serverlösa SQL-slutpunkten med hjälp av följande steg:

  1. Öppna Power BI Desktop-programmet. Välj Hämta data och välj mer.

  2. Välj Azure Synapse Analytics (SQL DW) i listan med anslutningsalternativ.

  3. Ange namnet på SQL-slutpunkten där databasen finns. Ange SynapseLinkBI-ondemand.sql.azuresynapse.net i fältet Server . I det här exemplet är SynapseLinkBI namnet på arbetsytan. Ersätt den om du har gett arbetsytan ett annat namn. Välj Direct Query för dataanslutningsläge och sedan OK.

  4. Välj önskad autentiseringsmetod, till exempel Microsoft Entra-ID.

  5. Välj databasen RetailCosmosDB och vyerna RetailSales, StoreDemographics.

  6. Välj Läs in för att läsa in de två vyerna i direkt frågeläge.

  7. Välj Modell för att skapa en relation mellan de två vyerna via kolumnen storeId .

  8. Dra kolumnen StoreId från vyn RetailSales mot kolumnen StoreId i vyn StoreDemographics.

  9. Välj relationen Många till en (*:1) eftersom det finns flera rader med samma butiks-ID i vyn RetailSales . StoreDemographics har bara en butiks-ID-rad (det är en dimensionstabell).

Gå nu till rapportfönstret och skapa en rapport för att jämföra hushållets relativa betydelse med den genomsnittliga intäkten per butik baserat på den spridda representationen av intäkter och LargeHH-index:

  1. Välj Punktdiagram.

  2. Dra och släpp LargeHH från vyn StoreDemographics till X-axeln.

  3. Dra och släpp vyn Intäkter från RetailSales till Y-axeln. Välj Genomsnitt för att få den genomsnittliga försäljningen per produkt per butik och per vecka.

  4. Dra och släpp productCode från RetailSales-vyn i förklaringen för att välja en specifik produktrad. När du har valt de här alternativen bör du se ett diagram som liknar följande skärmbild:

Rapport som jämför hushållets relativa betydelse med den genomsnittliga intäkten per butik

Nästa steg

Integrerad Power BI-upplevelse i Azure Cosmos DB-portalen för Synapse Link-aktiverade konton

Använda T-SQL för att fråga Azure Cosmos DB-data med Hjälp av Azure Synapse Link

Använda en serverlös SQL-pool för att analysera Azure Open Datasets och visualisera resultaten i Azure Synapse Studio