Azure Cosmos DB-adatok elemzése a Synapse Linkkel a Power BI és a kiszolgáló nélküli Synapse SQL-készlet használatával

A KÖVETKEZŐKRE VONATKOZIK: Nosql MongoDB Gremlin

Ebből a cikkből megtudhatja, hogyan hozhat létre kiszolgáló nélküli SQL-készlet-adatbázist és nézeteket az Azure Cosmos DB-hez készült Synapse Linkre vonatkozóan. Lekérdezi az Azure Cosmos DB-tárolókat, majd létrehoz egy modellt a Power BI-val ezeken a nézeteken, hogy tükrözze ezt a lekérdezést.

Az Azure Synapse Link használatával közel valós idejű irányítópultokat hozhat létre a Power BI-ban az Azure Cosmos DB-adatok elemzéséhez. A tranzakciós számítási feladatokra nincs hatással a teljesítmény vagy a költség, és nincs összetettsége az ETL-folyamatok kezelésének. DirectQuery vagy importálási módokat is használhat.

Megjegyzés:

Az Azure Cosmos DB Portál használatával néhány kattintással létrehozhat Power BI-irányítópultokat. További információ: Integrált Power BI-élmény a Synapse Link-kompatibilis fiókokhoz készült Azure Cosmos DB-portálon. Ez automatikusan létrehoz T-SQL-nézeteket a Synapse kiszolgáló nélküli SQL-készleteiben az Azure Cosmos DB-tárolókon. Egyszerűen letöltheti a .pbids fájlt, amely ezekhez a T-SQL-nézetekhez csatlakozik a BI-irányítópultok létrehozásához.

Ebben a forgatókönyvben a Surface-termékek partnerkereskedelmekben való értékesítésére vonatkozó adatokat fogja használni. Elemezni fogja az üzletenkénti bevételt a nagy háztartások közelsége és egy adott hét reklámozásának hatása alapján. Ebben a cikkben két, RetailSales és StoreDemographics nevű nézetet hoz létre, valamint egy lekérdezést közöttük. A mintatermék-adatokat ebből a GitHub-adattárból szerezheti be.

Megjegyzés:

A Gremlin API-hoz készült Synapse Link előzetes verzióban érhető el. Az Azure CLI használatával engedélyezheti a Synapse Linket az új vagy meglévő gráfokban. A konfigurálásáról további információt ide kattintva talál.

Előfeltételek

A kezdés előtt mindenképpen hozza létre a következő erőforrásokat:

Adatbázis és nézetek létrehozása

A Synapse-munkaterületen lépjen a Fejlesztés lapra, válassza az ikont, és válassza az +SQL-szkriptet.

Add a SQL script to the Synapse Analytics workspace

Minden munkaterület kiszolgáló nélküli SQL-végponttal rendelkezik. SQL-szkript létrehozása után a felső eszköztáron csatlakozzon a beépítetthez.

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

A nézetek létrehozása a - vagy alapértelmezett adatbázisokban nem ajánlott és nem támogatott. Hozzon létre egy új, RetailCosmosDB nevű adatbázist és egy SQL-nézetet a Synapse Link-kompatibilis tárolókon. Az alábbi parancs bemutatja, hogyan hozhat létre adatbázist:

-- Create database
Create database RetailCosmosDB

Ezután hozzon létre több nézetet különböző Synapse Link-kompatibilis Azure Cosmos DB-tárolókban. A nézetek lehetővé teszik a T-SQL használatát az Azure Cosmos DB különböző tárolókban található adatainak összekapcsolásához és lekérdezéséhez. A nézetek létrehozásakor mindenképpen válassza ki a RetailCosmosDB adatbázist.

Az alábbi szkriptek bemutatják, hogyan hozhat létre nézeteket az egyes tárolókon. Az egyszerűség kedvéért használjuk a kiszolgáló nélküli SQL-készlet automatikus sémakövető funkcióját Synapse Link-kompatibilis tárolókon keresztül:

RetailSales nézet:

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

Mindenképpen szúrja be az Azure Cosmos DB-régiót és az elsődleges kulcsot az előző SQL-szkriptbe. A régió nevének minden karakterének kisbetűsnek kell lennie szóköz nélkül. A parancs többi paraméterétől OPENROWSET eltérően a tárolónév paramétert idézőjelek nélkül kell megadni.

StoreDemographics nézet:

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

Most futtassa az SQL-szkriptet a Futtatás parancs kiválasztásával.

Nézetek lekérdezése

Most, hogy létrejött a két nézet, határozzuk meg a lekérdezést a két nézethez való csatlakozáshoz az alábbiak szerint:

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álassza a Futtatás lehetőséget, amely az alábbi táblázatot adja eredményként:

Query results after joining the StoreDemographics and RetailSales views

Modellnézetek tárolókra a Power BI-val

Ezután nyissa meg a Power BI desktopot, és csatlakozzon a kiszolgáló nélküli SQL-végponthoz az alábbi lépések végrehajtásával:

  1. Nyissa meg Power BI Desktop alkalmazást. Válassza az Adatok lekérése és a továbbiak lehetőséget.

  2. Válassza az Azure Synapse Analytics (SQL DW) lehetőséget a kapcsolati lehetőségek listájából.

  3. Adja meg annak az SQL-végpontnak a nevét, ahol az adatbázis található. Írja be SynapseLinkBI-ondemand.sql.azuresynapse.net a Kiszolgáló mezőbe. Ebben a példában a SynapseLinkBI a munkaterület neve. Cserélje le, ha más nevet adott a munkaterületnek. Válassza a Direct Query lehetőséget az adatkapcsolati módhoz, majd kattintson az OK gombra.

  4. Válassza ki az előnyben részesített hitelesítési módszert, például a Microsoft Entra-azonosítót.

  5. Válassza ki a RetailCosmosDB adatbázist és a RetailSales, StoreDemographics nézeteket .

  6. Válassza a Betöltés lehetőséget a két nézet közvetlen lekérdezési módba való betöltéséhez.

  7. Válassza a Modell lehetőséget a két nézet közötti kapcsolat létrehozásához a StoreId oszlopon keresztül.

  8. Húzza a StoreId oszlopot a RetailSales nézetből a StoreDemographics nézet StoreId oszlopa felé.

  9. Válassza a Több az egyhez (*:1) kapcsolatot, mert a Kiskereskedelmi értékesítés nézetben több olyan sor is található, amelynek azonos az üzletazonosítója. A StoreDemographics csak egy tárolóazonosító sorból áll (ez egy dimenziótábla).

Lépjen a jelentés ablakára, és hozzon létre egy jelentést, amely összehasonlítja a háztartások méretének relatív jelentőségét az üzletenkénti átlagos bevételsel a bevétel és a LargeHH index szórása alapján:

  1. Válassza a Pontdiagram lehetőséget.

  2. Húzza a LargeHH elemet a StoreDemographics nézetből az X tengelyre.

  3. Húzza a Revenue from RetailSales nézetet az Y tengelyre. Az Átlag lehetőséget választva lekérheti a termékenkénti és heti átlagos értékesítéseket.

  4. Húzza a ProductCode-ot a RetailSales nézetből a jelmagyarázatba egy adott terméksor kiválasztásához. Miután kiválasztotta ezeket a beállításokat, az alábbi képernyőképhez hasonló grafikont kell látnia:

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

Következő lépések

Integrált Power BI-élmény az Azure Cosmos DB portálon Synapse Link-kompatibilis fiókokhoz

Azure Cosmos DB-adatok lekérdezése a T-SQL használatával az Azure Synapse Link használatával

Kiszolgáló nélküli SQL-készlet használata az Azure Open Datasets elemzéséhez és az eredmények megjelenítéséhez az Azure Synapse Studióban