Dela via


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

  • 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.

Konfigurera anteckningsboken

I det här avsnittet konfigurerar du en notebook-miljö med nödvändiga moduler och data.

  1. Installera SemPy från PyPI med hjälp av den %pip infogade installationsfunktionen i notebook-filen:

    %pip install semantic-link
    
  2. Utför nödvändiga importer av moduler som du behöver senare:

    import sempy.fabric as fabric
    
  3. Du kan ansluta till Power BI-arbetsytan. 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 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)

Kolla in andra självstudier för semantisk länk/SemPy: