Opplæring: Trekke ut og beregne Power BI-mål fra en Jupyter-notatblokk
Denne opplæringen illustrerer hvordan du bruker SemPy (forhåndsvisning) til å beregne mål i semantiske modeller (Power BI-datasett).
I denne opplæringen lærer du hvordan du kan gjøre følgende:
- Evaluer Power BI-mål programmatisk via et Python-grensesnitt for semantisk koblings Python-bibliotek (SemPy).
- Bli kjent med komponenter i SemPy som bidrar til å bygge bro mellom AI og BI. Disse komponentene omfatter:
- FabricDataFrame - en pandas-lignende struktur forbedret med ekstra semantisk informasjon.
- Nyttige funksjoner som lar deg hente semantiske modeller, inkludert rådata, konfigurasjoner og mål.
Forutsetning
Få et Microsoft Fabric-abonnement. Eller registrer deg for en gratis prøveversjon av Microsoft Fabric.
Logg på Microsoft Fabric.
Bruk opplevelsesbryteren til venstre på hjemmesiden for å bytte til Synapse Data Science-opplevelsen.
Velg Arbeidsområder fra venstre navigasjonsrute for å finne og velge arbeidsområdet. Dette arbeidsområdet blir ditt gjeldende arbeidsområde.
Last ned PBIX.pbix-semantisk modell for detaljhandelanalyse og last den opp til arbeidsområdet.
Følg med i notatblokken
Notatblokken powerbi_measures_tutorial.ipynb følger med denne opplæringen.
Hvis du vil åpne den medfølgende notatblokken for denne opplæringen, følger du instruksjonene i Klargjør systemet for opplæring for datavitenskap, for å importere notatblokken til arbeidsområdet.
Hvis du heller vil kopiere og lime inn koden fra denne siden, kan du opprette en ny notatblokk.
Pass på at du fester et lakehouse til notatblokken før du begynner å kjøre kode.
Konfigurere notatblokken
I denne delen konfigurerer du et notatblokkmiljø med de nødvendige modulene og dataene.
Installer
SemPy
fra PyPI ved hjelp av%pip
den innebygde installasjonsfunksjonen i notatblokken:%pip install semantic-link
Utfør nødvendig import av moduler som du trenger senere:
import sempy.fabric as fabric
Du kan koble til Power BI-arbeidsområdet. Liste over semantiske modeller i arbeidsområdet:
fabric.list_datasets()
Last inn den semantiske modellen. I denne opplæringen bruker du PBIX-semantisk modell for eksempel på detaljhandelanalyse:
dataset = "Retail Analysis Sample PBIX"
Mål for listearbeidsområde
Vis mål i semantisk modell ved hjelp av SemPys list_measures
funksjon som følger:
fabric.list_measures(dataset)
Evaluer mål
I denne delen evaluerer du mål på forskjellige måter ved hjelp av SemPys evaluate_measure
funksjon.
Evaluer et råmål
I følgende kode bruker du SemPy-funksjonen evaluate_measure
til å beregne et forhåndskonfigurert mål som kalles "Gjennomsnittlig salgsområdestørrelse". Du kan se den underliggende formelen for dette målet i utdataene fra den forrige cellen.
fabric.evaluate_measure(dataset, measure="Average Selling Area Size")
Evaluer et mål med groupby_columns
Du kan gruppere målutdataene etter bestemte kolonner ved å angi den ekstra parameteren groupby_columns
:
fabric.evaluate_measure(dataset, measure="Average Selling Area Size", groupby_columns=["Store[Chain]", "Store[DistrictName]"])
I den forrige koden grupperte du etter kolonnene Chain
og DistrictName
Store
tabellen i den semantiske modellen.
Evaluere et mål med filtre
Du kan også bruke parameteren filters
til å angi bestemte verdier som resultatet kan inneholde for bestemte kolonner:
fabric.evaluate_measure(dataset, \
measure="Total Units Last Year", \
groupby_columns=["Store[Territory]"], \
filters={"Store[Territory]": ["PA", "TN", "VA"], "Store[Chain]": ["Lindseys"]})
I den forrige koden Store
, er navnet på tabellen, Territory
er navnet på kolonnen, og PA
er en av verdiene som filteret tillater.
Evaluere et mål på tvers av flere tabeller
Du kan gruppere målet etter kolonner som strekker seg over flere tabeller i den semantiske modellen.
fabric.evaluate_measure(dataset, measure="Total Units Last Year", groupby_columns=["Store[Territory]", "Sales[ItemID]"])
Evaluer flere mål
Med funksjonen evaluate_measure
kan du angi identifikatorer for flere mål og sende ut de beregnede verdiene i samme DataFrame:
fabric.evaluate_measure(dataset, measure=["Average Selling Area Size", "Total Stores"], groupby_columns=["Store[Chain]", "Store[DistrictName]"])
Bruk Power BI XMLA-kobling
Standard semantisk modellklient støttes av REST-API-er for Power BI. Hvis det er problemer med å kjøre spørringer med denne klienten, er det mulig å bytte serverdel til Power BIs XMLA-grensesnitt ved hjelp av use_xmla=True
. SemPy-parameterne forblir de samme for målberegning med XMLA.
fabric.evaluate_measure(dataset, \
measure=["Average Selling Area Size", "Total Stores"], \
groupby_columns=["Store[Chain]", "Store[DistrictName]"], \
filters={"Store[Territory]": ["PA", "TN", "VA"], "Store[Chain]": ["Lindseys"]}, \
use_xmla=True)
Relatert innhold
Sjekk ut andre opplæringer for semantisk kobling / SemPy:
- Opplæring: Rengjøre data med funksjonelle avhengigheter
- Opplæring: Analysere funksjonelle avhengigheter i en semantisk eksempelmodell
- Opplæring: Oppdag relasjoner i en semantisk modell ved hjelp av semantisk kobling
- opplæring: Oppdag relasjoner i Synthea-datasettet ved hjelp av semantisk kobling
- opplæring: Valider data ved hjelp av SemPy og store forventninger (GX)