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
Adatkapcsolat szemantikai kapcsolaton keresztül natív Spark-összekötőn keresztül
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 Dataset
tá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:
- 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.
group by
A feloldott oszlopnevek használatával definiálja az oszlopokat.- Egy vagy több mértéket számít ki a
group by
szinten. - Szűri az eredményt a FabricDataFrame meglévő sorai alapján.