Självstudie: Extrahera och beräkna Power BI-mått från en Jupyter-anteckningsbok
Den här självstudien visar hur du använder SemPy (förhandsversion) för att beräkna mått i semantiska modeller (Power BI-datauppsättningar).
I den här självstudien lär du dig att:
- Utvärdera Power BI-mått programmatiskt via ett Python-gränssnitt för semantisk länks Python-bibliotek (SemPy).
- Bekanta dig med komponenter i SemPy som hjälper dig att överbrygga klyftan mellan AI och BI. Dessa komponenter omfattar:
- FabricDataFrame – en Pandas-liknande struktur som utökas med ytterligare semantisk information.
- Användbara funktioner som gör att du kan hämta semantiska modeller, inklusive rådata, konfigurationer och mått.
Förutsättningar
Skaffa en Microsoft Fabric-prenumeration. Eller registrera dig för en kostnadsfri utvärderingsversion av Microsoft Fabric.
Logga in på Microsoft Fabric.
Använd växlingsfunktionen längst ner till vänster på startsidan för att byta till Fabric.
Välj Arbetsytor i det vänstra navigeringsfönstret för att hitta och välja din arbetsyta. Den här arbetsytan blir din aktuella arbetsyta.
Ladda ned pbix.pbix-semantikmodellen exempel på detaljhandelsanalys och ladda upp den till din arbetsyta.
Följ med i anteckningsboken
Notebook-filen powerbi_measures_tutorial.ipynb medföljer den här självstudien.
Om du vill öppna den medföljande notebook-filen för den här handledningen, följer du anvisningarna i Förbered ditt system för handledningar i datavetenskap för att importera anteckningsboken till din arbetsyta.
Om du hellre vill kopiera och klistra in koden från den här sidan kan du skapa en ny notebook-fil.
Se till att bifoga ett lakehouse i notebook-filen innan du börjar köra kod.
Konfigurera anteckningsboken
I det här avsnittet konfigurerar du en notebook-miljö med nödvändiga moduler och data.
Installera
SemPy
från PyPI med hjälp av den%pip
infogade installationsfunktionen i notebook-filen:%pip install semantic-link
Utför nödvändiga importer av moduler som du behöver senare:
import sempy.fabric as fabric
Du kan ansluta till Power BI-arbetsytan. Visa en lista över semantiska modeller på arbetsytan:
fabric.list_datasets()
Läs in den semantiska modellen. I den här självstudien använder du PBIX-semantikmodellen Exempel på detaljhandelsanalys:
dataset = "Retail Analysis Sample PBIX"
Visa en lista över arbetsytemått
Lista mått i den semantiska modellen med hjälp av SemPys list_measures
funktion enligt följande:
fabric.list_measures(dataset)
Utvärdera mått
I det här avsnittet utvärderar du mått på olika sätt med hjälp av SemPys evaluate_measure
funktion.
Utvärdera ett raw-mått
I följande kod använder du SemPy-funktionen för att beräkna ett förkonfigurerat mått som kallas "Genomsnittlig försäljningsområdesstorlek evaluate_measure
". Du kan se den underliggande formeln för det här måttet i utdata från föregående cell.
fabric.evaluate_measure(dataset, measure="Average Selling Area Size")
Utvärdera ett mått med groupby_columns
Du kan gruppera måttutdata efter vissa kolumner genom att ange den extra parametern groupby_columns
:
fabric.evaluate_measure(dataset, measure="Average Selling Area Size", groupby_columns=["Store[Chain]", "Store[DistrictName]"])
I föregående kod grupperade du efter kolumnerna Chain
och DistrictName
tabellen Store
i den semantiska modellen.
Utvärdera ett mått med filter
Du kan också använda parametern filters
för att ange specifika värden som resultatet kan innehålla för vissa kolumner:
fabric.evaluate_measure(dataset, \
measure="Total Units Last Year", \
groupby_columns=["Store[Territory]"], \
filters={"Store[Territory]": ["PA", "TN", "VA"], "Store[Chain]": ["Lindseys"]})
I föregående kod Store
är namnet på tabellen, Territory
är namnet på kolumnen och PA
är ett av de värden som filtret tillåter.
Utvärdera ett mått i flera tabeller
Du kan gruppera måttet efter kolumner som sträcker sig över flera tabeller i den semantiska modellen.
fabric.evaluate_measure(dataset, measure="Total Units Last Year", groupby_columns=["Store[Territory]", "Sales[ItemID]"])
Utvärdera flera mått
Med funktionen evaluate_measure
kan du ange identifierare för flera mått och mata ut de beräknade värdena i samma DataFrame:
fabric.evaluate_measure(dataset, measure=["Average Selling Area Size", "Total Stores"], groupby_columns=["Store[Chain]", "Store[DistrictName]"])
Använda Power BI XMLA-anslutningsprogram
Standardklienten för semantikmodellen backas upp av Power BI:s REST-API:er. Om det finns problem med att köra frågor med den här klienten går det att växla serverdelen till Power BI:s XMLA-gränssnitt med .use_xmla=True
SemPy-parametrarna förblir desamma för måttberäkning 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)
Relaterat innehåll
Kolla in andra självstudier för semantisk länk/SemPy:
- Självstudie: Rensa data med funktionella beroenden
- Självstudie: Analysera funktionella beroenden i en exempelsemantisk modell
- Självstudie: Identifiera relationer i en semantisk modell med hjälp av semantisk länk
- Självstudie: Identifiera relationer i datauppsättningen Synthea med hjälp av semantisk länk
- Självstudie: Verifiera data med SemPy och Great Expectations (GX)