Extrahera och beräkna Power BI-mått från en Jupyter-notebook-fil

Den här självstudien visar hur du använder SemPy (förhandsversion) för att beräkna mått i Power BI-semantiska modeller.

I den här handledningen lär du dig hur du:

  • Utvärdera Power BI-mått programmatiskt med hjälp av Python-gränssnittet i Semantic Link-biblioteket (SemPy)
  • Lär dig mer om SemPy-komponenter som hjälper dig att överbrygga AI och BI:
    • FabricDataFrame – Pandas-liknande struktur utökad med semantisk information
    • Funktioner som hämtar semantiska modeller, inklusive rådata, konfigurationer och mått

Förutsättningar

Följ med i anteckningsboken

Notebook-filen powerbi_measures_tutorial.ipynb medföljer den här självstudien.

Konfigurera anteckningsboken

I det här avsnittet konfigurerar du en notebook-miljö.

  1. Installera SemPy från PyPI med hjälp %pip av infogad i notebook-filen.

    %pip install semantic-link-sempy
    
  2. Importera modulerna som du ska använda senare.

    import sempy.fabric as fabric
    
  3. Anslut till Power BI-arbetsytan och visa en lista över semantiska modeller på arbetsytan.

    fabric.list_datasets()
    
  4. Läs in den semantiska modellen. I den här självstudien använder du semantikmodellen Exempel på detaljhandelsanalys.

    dataset = "Retail Analysis Sample"
    
    dataset = "Retail Analysis Sample PBIX"
    

Visa en lista över arbetsytemått

Använd SemPy för list_measures att lista mått i en semantisk modell:

fabric.list_measures(dataset)

Utvärdera åtgärder

Använd SemPys evaluate_measure funktion för att utvärdera mått på olika sätt.

Utvärdera ett råmått

Använd SemPys funktion för att beräkna det förkonfigurerade måttet med namnet "Genomsnittlig försäljningsområdesstorlek evaluate_measure ".

fabric.evaluate_measure(dataset, measure="Average Selling Area Size")

Utvärdera ett mått med groupby_columns

Gruppera resultatet efter kolumner med hjälp av parametern groupby_columns :

fabric.evaluate_measure(dataset, measure="Average Selling Area Size", groupby_columns=["Store[Chain]", "Store[DistrictName]"])

Den här koden grupperar efter Store[Chain] och Store[DistrictName].

Utvärdera ett mått med filter

Använd parametern filters för att begränsa resultatet till specifika kolumnvärden:

fabric.evaluate_measure(dataset, \
                        measure="Total Units Last Year", \
                        groupby_columns=["Store[Territory]"], \
                        filters={"Store[Territory]": ["PA", "TN", "VA"], "Store[Chain]": ["Lindseys"]})

I det här exemplet Store är tabellen, Territory är kolumnen och PA är ett tillåtet värde.

Utvärdera ett mått i flera tabeller

Gruppera efter kolumner i 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 evaluate_measure funktionen kan du ange flera måttidentifierare och returnera de beräknade värdena i en enda DataFrame:

fabric.evaluate_measure(dataset, measure=["Average Selling Area Size", "Total Stores"], groupby_columns=["Store[Chain]", "Store[DistrictName]"])

Använd Power BI XMLA-anslutningsprogram

Standardklienten för semantikmodellen använder Power BI REST-API:er. Om frågor misslyckas med den här klienten växlar du till Power BI XMLA-slutpunkten genom att ange use_xmla=True. SemPy-parametrar är desamma för måttberäkningar 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)

Se andra semantiska länkar och SemPy-självstudier: