Použití power BI a bezserverového fondu Synapse SQL k analýze dat Azure Cosmos DB pomocí Synapse Linku

PLATÍ PRO: NoSQL MongoDB Gremlin

V tomto článku se dozvíte, jak vytvořit bezserverovou databázi fondu SQL a zobrazení přes Synapse Link pro Azure Cosmos DB. Na kontejnery Azure Cosmos DB se dotazujete a pak vytvoříte model s Power BI přes tato zobrazení, aby se tento dotaz projevil.

Pomocí Azure Synapse Linku můžete v Power BI vytvářet řídicí panely téměř v reálném čase za účelem analýzy dat Azure Cosmos DB. Na transakční úlohy nemá žádný dopad na výkon ani náklady a není nijak složité spravovat kanály ETL. Můžete použít režimy DirectQuery nebo importu .

Poznámka:

Řídicí panely Power BI můžete vytvářet několika kliknutími pomocí portálu Azure Cosmos DB. Další informace najdete v tématu Integrované prostředí Power BI na portálu Azure Cosmos DB pro účty s podporou Synapse Linku. Tím se automaticky vytvoří zobrazení T-SQL v bezserverových fondech SQL Synapse ve vašich kontejnerech Azure Cosmos DB. Jednoduše si můžete stáhnout soubor .pbids, který se připojí k těmto zobrazením T-SQL, a začít vytvářet řídicí panely BI.

V tomto scénáři použijete fiktivní data o prodeji produktů Surface v partnerském maloobchodě. Budete analyzovat výnosy za obchod na základě blízkosti velkých domácností a dopadu reklamy na určitý týden. V tomto článku vytvoříte dvě zobrazení s názvem RetailSales a StoreDemographics a dotaz mezi nimi. Ukázková data o produktech můžete získat z tohoto úložiště GitHubu .

Poznámka:

Synapse Link pro rozhraní Gremlin API je teď ve verzi Preview. Synapse Link můžete povolit v nových nebo existujících grafech pomocí Azure CLI. Další informace o tom, jak ho nakonfigurovat, potřebujete kliknutím sem.

Předpoklady

Než začnete, nezapomeňte vytvořit následující prostředky:

Vytvoření databáze a zobrazení

V pracovním prostoru Synapse přejděte na kartu Vývoj , vyberte + ikonu a vyberte skript SQL.

Add a SQL script to the Synapse Analytics workspace

Každý pracovní prostor má bezserverový koncový bod SQL. Po vytvoření skriptu SQL se z panelu nástrojů v horní části připojte k integrovanému modulu.

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

Vytváření zobrazení v hlavní nebo výchozí databázi se nedoporučuje ani nepodporuje. Vytvořte novou databázi s názvem RetailCosmosDB a zobrazení SQL pro kontejnery s podporou Synapse Linku. Následující příkaz ukazuje, jak vytvořit databázi:

-- Create database
Create database RetailCosmosDB

Dále vytvořte více zobrazení napříč různými kontejnery Azure Cosmos DB s podporou Synapse Linku. Zobrazení vám umožní použít T-SQL k připojení a dotazování dat Azure Cosmos DB, která se nachází v různých kontejnerech. Při vytváření zobrazení nezapomeňte vybrat databázi RetailCosmosDB .

Následující skripty ukazují, jak vytvořit zobrazení v každém kontejneru. Pro zjednodušení použijeme funkci automatického odvozování schématu bezserverového fondu SQL přes kontejnery s podporou Synapse Linku:

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

Nezapomeňte do předchozího skriptu SQL vložit oblast Služby Azure Cosmos DB a primární klíč. Všechny znaky v názvu oblasti by měly být malé a bez mezer. Na rozdíl od ostatních parametrů OPENROWSET příkazu by měl být parametr názvu kontejneru zadán bez uvozovek.

Zobrazení StoreDemographics(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

Teď spusťte skript SQL výběrem příkazu Spustit .

Dotazování zobrazení

Teď, když jsou tato dvě zobrazení vytvořená, nadefinujeme dotaz, který tyto dvě zobrazení spojí takto:

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]

Vyberte Spustit , která jako výsledek zobrazí následující tabulku:

Query results after joining the StoreDemographics and RetailSales views

Zobrazení modelu nad kontejnery pomocí Power BI

Pak otevřete Power BI Desktop a připojte se ke koncovému bodu SQL bez serveru pomocí následujícího postupu:

  1. Otevřete aplikaci Power BI Desktop. Vyberte Získat data a vyberte další.

  2. V seznamu možností připojení zvolte Azure Synapse Analytics (SQL DW ).

  3. Zadejte název koncového bodu SQL, kde se databáze nachází. Zadejte SynapseLinkBI-ondemand.sql.azuresynapse.net do pole Server . V tomto příkladu je SynapseLinkBI název pracovního prostoru. Pokud jste pracovnímu prostoru dali jiný název, nahraďte ho. Vyberte Přímý dotaz pro režim připojení k datům a pak OK.

  4. Vyberte upřednostňovanou metodu ověřování, například ID Microsoft Entra.

  5. Vyberte databázi RetailCosmosDB a zobrazení RetailSales, StoreDemographics.

  6. Pokud chcete načíst dvě zobrazení do režimu přímého dotazu, vyberte Načíst .

  7. Výběrem možnosti Model vytvoříte relaci mezi dvěma zobrazeními prostřednictvím sloupce storeId .

  8. Přetáhněte sloupec StoreId ze zobrazení RetailSales do sloupce StoreId v zobrazení StoreDemographics.

  9. Vyberte relaci N k jedné (*:1), protože v zobrazení RetailSales existuje více řádků se stejným ID obchodu. StoreDemographics má pouze jeden řádek ID úložiště (jedná se o tabulku dimenzí).

Teď přejděte do okna sestavy a vytvořte sestavu pro porovnání relativní důležitosti velikosti domácnosti s průměrnými výnosy na obchod na základě rozptýleného vyjádření výnosů a indexu LargeHH:

  1. Vyberte bodový graf.

  2. Přetáhněte LargeHH ze zobrazení StoreDemographics na osu X.

  3. Přetáhněte výnosy ze zobrazení RetailSales na osu Y. Výběrem možnosti Průměr získáte průměrný prodej za produkt na obchod a týden.

  4. Přetažením kódu productCode z zobrazení RetailSales do legendy vyberte konkrétní produktovou řadu. Po výběru těchto možností by se měl zobrazit graf podobný následujícímu snímku obrazovky:

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

Další kroky

Integrované prostředí Power BI na portálu Azure Cosmos DB pro účty s podporou Synapse Linku

Použití T-SQL k dotazování dat azure Cosmos DB pomocí Azure Synapse Linku

Analýza datových sad Azure Open Datasets pomocí bezserverového fondu SQL a vizualizace výsledků v nástroji Azure Synapse Studio