Sdílet prostřednictvím


Připojení Power BI sémantickým propojením a Microsoft Fabric

Připojení Power BI je jádrem sémantického propojení. V tomto článku se dozvíte o způsobech, jakými sémantický odkaz poskytuje připojení k sémantickým modelům pro uživatele ekosystému Python pandas a ekosystému Apache Spark.

Sémantický model obvykle představuje zlatý standard dat a je výsledkem upstreamového zpracování a upřesnění dat. Obchodní analytici můžou vytvářet sestavy Power BI z sémantických modelů a pomocí těchto sestav řídit obchodní rozhodnutí. Kromě toho můžou kódovat znalosti domény a obchodní logiku do měr Power BI. Datoví vědci můžou na druhé straně pracovat se stejnými sémantickými modely, ale obvykle v jiném prostředí nebo jazyce kódu. Vtakovýchch

Sémantické propojení překlenuje tuto mezeru mezi sémantických modelů a Datová Věda Synapse v prostředí Microsoft Fabric. Poskytuje tak obchodním analytikům a datovým vědcům způsob, jak bezproblémově spolupracovat a snižovat neshodu dat. Sémantický odkaz nabízí připojení k:

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. SemPy poskytuje funkce, které zahrnují načítání dat z tabulek, výpočty měr a spouštění dotazů a metadat jazyka DAX.

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í nutné ho instalovat. Pokud používáte Spark 3.3 nebo novější nebo pokud chcete aktualizovat na nejnovější verzi sémantického odkazu, můžete příkaz spustit:

python %pip install -U semantic-link  

SemPy také rozšiřuje datové rámce pandas o další metadata šířená ze zdroje dat Power BI. Tato metadata zahrnují:

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

Podpora Sparku (PySpark, Spark SQL, R a Scala)

Sémantické propojení nativního konektoru Sparku umožňuje uživatelům Sparku přístup 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, jsou sémantické modely reprezentovány jako obory názvů Sparku a transparentně zpřístupňují tabulky Power BI jako tabulky Sparku.

Nakonfigurujte Spark tak, aby používal nativní konektor Power BI Spark:

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

Výpis všech tabulek v sémantickém modelu Sales Dataset:

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

Zobrazení dat z tabulky Customer 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, zatímco zbývající sloupce jsou dimenze. Agregační funkce (například AVG) je ignorována pro míry a slouží pouze pro konzistenci s SQL.

Konektor podporuje predikát push of computation from Spark expressions into the Power BI engine; Tím například Customer[State] in ('CA', 'WA')povolíte využití optimalizovaného modulu 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ů. Operace add_measure je k dispozici pouze v knihovně SemPy Python a není podporována nativním konektorem Sparku. Další informace o add_measure metodě najdete v tématu add_measure třídy FabricDataFrame

Pokud chcete použít knihovnu SemPy Pythonu, musíte ji nejdřív nainstalovat do jádra poznámkového bloku spuštěním tohoto kódu v buňce poznámkového bloku:

Tip

Příklad kódu předpokládá, že jste ručně vytvořili objekt FabricDataFrame s daty, která chcete rozšířit o míry z sémantického modelu.

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

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

Operace add_measure provádí tyto kroky:

  • Řeší názvy sloupců: Názvy sloupců v prvku FabricDataFrame se přeloží na dimenze Power BI. Všechny názvy sloupců, které nelze vyřešit v rámci daného sémantického modelu, se ignorují (viz podporovaná syntaxe jazyka DAX).
  • Definuje seskupení podle sloupců pomocí přeložených názvů sloupců.
  • Vypočítá jednu nebo více měr na úrovni skupiny.
  • Filtruje výsledek podle existujících řádků v prvku FabricDataFrame.