Použití power BI a bezserverového fondu Synapse SQL k analýze dat Azure Cosmos DB pomocí Synapse Linku
PLATÍ PRO: NoSQL MongoDB Skřítek
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.
Důležité
Zrcadlení služby Azure Cosmos DB v Microsoft Fabric je nyní k dispozici ve verzi Preview pro rozhraní API NoSql. Tato funkce poskytuje všechny možnosti Azure Synapse Linku s lepším analytickým výkonem, schopnost sjednotit svá datová aktiva s Fabric OneLake a otevřít přístup k datům ve formátu Delta Parquet. Pokud uvažujete o Azure Synapse Linku, doporučujeme vyzkoušet zrcadlení, abyste posoudili celkové přizpůsobení vaší organizace. Začněte se zrcadlováním v Microsoft Fabricu.
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 .
Požadavky
Než začnete, nezapomeňte vytvořit následující prostředky:
Vytvořte účet služby Azure Cosmos DB pro rozhraní API pro NoSQL nebo MongoDB.
Povolení služby Azure Synapse Link pro účet služby Azure Cosmos DB
Vytvořte databázi v rámci účtu služby Azure Cosmos DB a dva kontejnery, které mají povolené analytické úložiště.
Načtěte data produktů do kontejnerů Azure Cosmos DB, jak je popsáno v tomto poznámkovém bloku dávkového příjmu dat.
Vytvořte pracovní prostor Synapse s názvem SynapseLinkBI.
Připojte databázi Azure Cosmos DB k pracovnímu prostoru Synapse.
Vytvoření databáze a zobrazení
V pracovním prostoru Synapse přejděte na kartu Vývoj , vyberte + ikonu a vyberte skript SQL.
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.
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:
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:
Otevřete aplikaci Power BI Desktop. Vyberte Získat data a vyberte další.
V seznamu možností připojení zvolte Azure Synapse Analytics (SQL DW ).
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.Vyberte upřednostňovanou metodu ověřování, například ID Microsoft Entra.
Vyberte databázi RetailCosmosDB a zobrazení RetailSales, StoreDemographics.
Pokud chcete načíst dvě zobrazení do režimu přímého dotazu, vyberte Načíst .
Výběrem možnosti Model vytvoříte relaci mezi dvěma zobrazeními prostřednictvím sloupce storeId .
Přetáhněte sloupec StoreId ze zobrazení RetailSales do sloupce StoreId v zobrazení StoreDemographics.
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:
Vyberte bodový graf.
Přetáhněte LargeHH ze zobrazení StoreDemographics na osu X.
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.
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:
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