Megosztás a következőn keresztül:


Power BI-kapcsolat szemantikai kapcsolattal

A Power BI-kapcsolat a Microsoft Fabric szemantikai kapcsolatának középpontjában áll. Ez a cikk ismerteti, hogy a szemantikai kapcsolat hogyan biztosít kapcsolatot a szemantikai modellekhez a Python pandas és az Apache Spark-ökoszisztémák felhasználói számára.

A szemantikai modellek általában egy magas adatszabványt képviselnek, amely a felsőbb rétegbeli adatfeldolgozás és -finomítás eredménye. Az üzleti elemzők:

  • Tartományismeret és üzleti logika kódolása Power BI-mértékekbe.
  • Power BI-jelentések létrehozása szemantikai modellek használatával.
  • Ezekkel a jelentésekkel üzleti döntéseket hozhat.

Ha az azonos szemantikai modellekkel dolgozó adattudósok különböző kódkörnyezetekben vagy nyelveken próbálják meg duplikálni az üzleti logikát, kritikus hibák következhetnek be. A szemantikai kapcsolat áthidalja a szemantikai modellek és a Synapse Adattudomány közötti szakadékot a Microsoft Fabricben, hogy módot biztosítson az üzleti elemzők és adattudósok számára a zökkenőmentes együttműködésre és az adateltérések csökkentésére.

A szemantikai hivatkozás a következőhöz kínál kapcsolatot:

  • A Python pandas ökoszisztémája a SemPy Python-kódtáron keresztül.
  • Szemantikai modellek a Spark natív összekötőjén keresztül, amely támogatja a PySparkot, a Spark SQL-t, az R-t és a Scalát.

Adatkapcsolat a SemPy Python-kódtáron keresztül pandas-felhasználók számára

A SemPy Python-kódtár a szemantikai hivatkozás funkció része, és pandas-felhasználókat szolgál ki. A SemPy funkció magában foglalja a táblákból való adatlekérést, a mértékek számítását, valamint az adatelemzési kifejezések (DAX) lekérdezéseinek és metaadatainak végrehajtását.

  • A Spark 3.4-hez és újabb verziókhoz a szemantikai hivatkozás az alapértelmezett futtatókörnyezetben érhető el a Fabric használatakor, és nincs szükség a telepítésre.

  • A Spark 3.3 vagy újabb verziójához, illetve a szemantikai hivatkozás legújabb verziójára való frissítéshez futtassa a következő parancsot:

    %pip install -U semantic-link
    

A SemPy a Pandas DataFrame-eket is kibővíti a Power BI-adatforrásból propagált metaadatokkal. Ez a metaadatok a következőket tartalmazzák:

  • Power BI-adatkategóriák:
    • Földrajzi hely: Cím, hely, város
    • URL: Webes URL-cím, kép URL-címe
    • Vonalkód
  • Táblák közötti kapcsolatok
  • Hierarchiák

A szemantikai kapcsolat natív Spark-összekötője lehetővé teszi a Spark-felhasználók számára a Power BI-táblák és -mértékek elérését. Az összekötő nyelvfüggetlen, és támogatja a PySparkot, a Spark SQL-t, az R-t és a Scalát.

A Spark natív összekötőjének használatához a szemantikai modelleket Spark-névterekként jelölheti, és transzparens módon teheti elérhetővé a Power BI-táblákat Spark-táblákként.

Az alábbi parancs konfigurálja a Sparkot a Spark SQL natív Power BI Spark-összekötőjének használatára:

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

Az alábbi parancs felsorolja az összes táblát egy szemantikai modellben Sales Dataset:

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

Az alábbi parancs a Customer szemantikai modell Sales Datasettáblázatából származó adatokat jeleníti meg:

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

A Power BI-mértékek a virtuális _Metrics táblán keresztül érhetők el a relációs Spark SQL többdimenziós Power BI-val való áthidalásához. Az alábbi példában Total Revenue Revenue Budget a szemantikai modellben Sales Dataset definiált mértékek, a többi oszlop pedig dimenzió. Az aggregációs függvények, mint például AVG a mértékek figyelmen kívül hagyása, és csak az SQL konzisztenciájának biztosítása érdekében vannak jelen.

Az összekötő támogatja az olyan számítások predikátumos leküldését, mint a Customer[State] in ('CA', 'WA') Spark-kifejezések a Power BI-motorba a Power BI-optimalizált motor használatának engedélyezéséhez.

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

Adatkinagyítás Power BI-mértékekkel

A add_measure művelet a szemantikai kapcsolat hatékony funkciója, amellyel szemantikai modellekből származó mértékekkel bővítheti az adatokat. Ez a művelet csak a SemPy Python-kódtárban érhető el, és a Spark natív összekötőjében nem támogatott. A módszerről további információt az add_measure osztály dokumentációjában add_measure találFabricDataFrame.

A SemPy Python-kódtár használatához telepítse a jegyzetfüzet kernelében a következő kód futtatásával egy jegyzetfüzetcellában:

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

Az alábbi példakód azt feltételezi, hogy rendelkezik egy meglévő FabricDataFrame-adatkészlettel, amelyet egy szemantikai modellből származó mértékekkel szeretne kiegészíteni.

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

A add_measure metódus a következő lépéseket hajtja végre:

  1. A FabricDataFrame oszlopneveit Power BI-dimenziókra oldja fel. A művelet figyelmen kívül hagy minden olyan oszlopnevet, amely nem oldható fel az adott szemantikai modellben. További információkért tekintse meg a támogatott DAX-szintaxist.
  2. group by A feloldott oszlopnevek használatával definiálja az oszlopokat.
  3. Egy vagy több mértéket számít ki a group by szinten.
  4. Szűri az eredményt a FabricDataFrame meglévő sorai alapján.