Sdílet prostřednictvím


Připojení Power BI pomocí sémantického odkazu

Připojení Power BI je jádrem sémantického propojení v Microsoft Fabricu. Tento článek popisuje způsoby, kterými sémantický odkaz poskytuje připojení k sémantickým modelům pro uživatele ekosystémů Python pandas a Apache Spark.

Sémantický model obvykle představuje vysoký datový standard, který je výsledkem upstreamového zpracování a upřesnění dat. Obchodní analytici můžou:

  • Kódování znalostí domény a obchodní logiky do měr Power BI
  • Vytváření sestav Power BI pomocí sémantických modelů
  • Tyto sestavy slouží k řízení obchodních rozhodnutí.

Když se datoví vědci pracující se stejnými sémantickými modely pokusí duplikovat obchodní logiku v různých prostředích nebo jazycích kódu, můžou vést k kritickým chybám. Sémantické propojení překlenuje mezeru mezi sémantickými modely a Datová Věda Synapse v prostředí Microsoft Fabric, aby mohli obchodní analytici a datoví vědci bez problémů spolupracovat a snižovat neshodu dat.

Sémantický odkaz nabízí připojení k:

  • Ekosystém Knihovny Python pandas v Pythonu prostřednictvím knihovny SemPy Python.
  • Sémantické modely prostřednictvím nativního konektoru Sparku, který podporuje PySpark, Spark SQL, R a Scala.

Připojení k datům prostřednictvím knihovny SemPy Python pro uživatele knihovny pandas

Knihovna SemPy Python je součástí funkce sémantického odkazu a obsluhuje uživatele knihovny pandas. Funkce SemPy zahrnuje načítání dat z tabulek, výpočty měr a spouštění dotazů a metadat daX (Data Analysis Expressions).

  • Pro Spark 3.4 a vyšší je sémantický odkaz dostupný ve výchozím modulu runtime při použití prostředků infrastruktury a není potřeba ho nainstalovat.

  • V případě Sparku 3.3 nebo novějšího nebo aktualizaci na nejnovější verzi sémantického odkazu spusťte následující příkaz:

    %pip install -U semantic-link
    

SemPy také rozšiřuje datové rámce pandas s přidanými metadaty šířenými ze zdroje dat Power BI. Tato metadata zahrnují:

  • Kategorie dat Power BI:
    • Geografická oblast: Adresa, místo, město
    • URL: Webová adresa URL, adresa URL obrázku
    • Čárový kód
  • Relace mezi tabulkami
  • Hierarchie

Sémantické propojení nativního konektoru Sparku umožňuje uživatelům Sparku přistupovat k tabulkám a mírům Power BI. Konektor je nezávislý na jazyce a podporuje PySpark, Spark SQL, R a Scala.

Pokud chcete použít nativní konektor Sparku, představujete sémantické modely jako obory názvů Sparku a transparentně zpřístupňujete tabulky Power BI jako tabulky Sparku.

Následující příkaz nakonfiguruje Spark tak, aby používal nativní konektor Power BI Spark pro Spark pro Spark SQL:

spark.conf.set("spark.sql.catalog.pbi", "com.microsoft.azure.synapse.ml.powerbi.PowerBICatalog")

# Optionally, configure the workspace using its ID
# Resolve workspace name to ID using fabric.resolve_workspace_id("My workspace")
# Replace 00000000-0000-0000-0000-000000000000 with your own workspace ID
# spark.conf.set("spark.sql.catalog.pbi.workspace, "00000000-0000-0000-0000-000000000000")

Následující příkaz zobrazí seznam všech tabulek v sémantickém modelu s názvem Sales Dataset:

%%sql
SHOW TABLES FROM pbi.`Sales Dataset`

Následující příkaz zobrazí data z Customer tabulky v sémantickém modelu Sales Dataset:

%%sql
SELECT * FROM pbi.`Sales Dataset`.Customer

Míry Power BI jsou přístupné prostřednictvím virtuální _Metrics tabulky, aby přeměněly relační Spark SQL s multidimenzionálním Power BI. V následujícím příkladu Total Revenue jsou Revenue Budget míry definované v sémantickém Sales Dataset modelu a ostatní sloupce jsou dimenze. AVG U měr se ignorují funkce agregace, které jsou k dispozici pouze kvůli zajištění konzistence s SQL.

Konektor podporuje predikát odsunutí výpočtů, jako jsou Customer[State] in ('CA', 'WA') výrazy Sparku, do modulu Power BI, aby bylo možné použít optimalizovaný modul Power BI.

SELECT
    `Customer[Country/Region]`,
    `Industry[Industry]`,
    AVG(`Total Revenue`),
    AVG(`Revenue Budget`)
FROM
    pbi.`Sales Dataset`.`_Metrics`
WHERE
    `Customer[State]` in ('CA', 'WA')
GROUP BY
    `Customer[Country/Region]`,
    `Industry[Industry]`

Rozšíření dat pomocí měr Power BI

Operace add_measure je výkonná funkce sémantického propojení, která umožňuje rozšířit data o míry z sémantických modelů. Tato operace je dostupná jenom v knihovně SemPy Python a není podporovaná v nativním konektoru Sparku. Další informace o add_measure metodě najdete v add_measure v FabricDataFrame dokumentaci ke třídě.

Pokud chcete použít knihovnu SemPy Python, nainstalujte ji do jádra poznámkového bloku spuštěním následujícího kódu v buňce poznámkového bloku:

# %pip and import only needs to be done once per notebook
%pip install semantic-link
from sempy.fabric import FabricDataFrame

Následující příklad kódu předpokládá, že máte existující FabricDataFrame s daty, která chcete rozšířit o míry z sémantického modelu.

df = FabricDataFrame({
        "Sales Agent": ["Agent 1", "Agent 1", "Agent 2"],
        "Customer[Country/Region]": ["US", "GB", "US"],
        "Industry[Industry]": ["Services", "CPG", "Manufacturing"],
    }
)

joined_df = df.add_measure(["Total Revenue", "Total Budget"], dataset="Sales Dataset")

Metoda add_measure provede následující kroky:

  1. Přeloží názvy sloupců v prvku FabricDataFrame na dimenze Power BI. Operace ignoruje názvy sloupců, které nelze v daném sémantickém modelu přeložit. Další informace najdete v podporované syntaxi jazyka DAX.
  2. group by Definuje sloupce pomocí přeložených názvů sloupců.
  3. Vypočítá jednu nebo více měr na group by úrovni.
  4. Filtruje výsledek podle existujících řádků v prvku FabricDataFrame.