Freigeben über


Extrahieren und Berechnen von Power BI-Measures aus einem Jupyter-Notizbuch

In diesem Lernprogramm wird gezeigt, wie Sie SemPy (Vorschau) zum Berechnen von Measures in Power BI-Semantikmodellen verwenden.

In diesem Tutorial lernen Sie Folgendes:

  • Programmgesteuertes Auswerten von Power BI-Measures mithilfe der Python-Schnittstelle der Semantiklink-Bibliothek (SemPy)
  • Erfahren Sie mehr über SemPy-Komponenten, die KI und BI überbrücken:
    • FabricDataFrame – pandasähnliche Struktur mit semantischen Informationen verbessert
    • Funktionen, die semantische Modelle abrufen, einschließlich Rohdaten, Konfigurationen und Messgrößen

Voraussetzungen

  • Wählen Sie im Navigationsbereich "Arbeitsbereiche" und dann Ihren Arbeitsbereich aus, um ihn als aktuellen Arbeitsbereich festzulegen.

  • Laden Sie das Retail Analysis Sample PBIX.Pbix-Semantikmodell herunter, und laden Sie es in Ihren Arbeitsbereich hoch.

Das Notebook für das Tutorial

Das Notizbuch powerbi_dependencies_tutorial.ipynb wird in diesem Tutorial verwendet.

Einrichten des Notebooks

In diesem Abschnitt richten Sie eine Notizbuchumgebung ein.

  1. Installieren Sie SemPy von PyPI, indem Sie es inline im Notizbuch verwenden.

    %pip install semantic-link-sempy
    
  2. Importieren Sie die Module, die Sie später verwenden werden.

    import sempy.fabric as fabric
    
  3. Stellen Sie eine Verbindung mit dem Power BI-Arbeitsbereich her, und listen Sie die semantischen Modelle im Arbeitsbereich auf.

    fabric.list_datasets()
    
  4. Laden des semantischen Modells. In diesem Lernprogramm verwenden Sie das Semantikmodell für Einzelhandelsanalysebeispiele.

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

Listenarbeitsbereichs-Measures

Verwenden Sie SemPys list_measures, um Maße in einem semantischen Modell aufzulisten.

fabric.list_measures(dataset)

Bewerten von Measures

Verwenden Sie die evaluate_measure-Funktion von SemPy, um Maßnahmen auf unterschiedliche Weise auszuwerten.

Auswerten von rohen Measures

Verwenden Sie die Funktion SemPy evaluate_measure, um die vorkonfigurierte Kennzahl mit dem Namen "Average Selling Area Size" zu berechnen.

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

Auswerten eines Measures mit groupby_columns

Gruppieren Sie das Ergebnis nach Spalten mithilfe des groupby_columns Parameters:

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

Dieser Code gruppiert nach Store[Chain] und Store[DistrictName].

Auswerten eines Measures mit Filtern

Verwenden Sie den filters Parameter, um Ergebnisse auf bestimmte Spaltenwerte zu beschränken:

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

In diesem Beispiel ist Store die Tabelle, Territory die Spalte und PA ein zulässiger Wert.

Auswerten eines Measures in mehreren Tabellen

Gruppieren Nach Spalten über mehrere Tabellen im semantischen Modell.

fabric.evaluate_measure(dataset, measure="Total Units Last Year", groupby_columns=["Store[Territory]", "Sales[ItemID]"])

Auswerten mehrerer Measures

Mit der evaluate_measure-Funktion können Sie mehrere Messgrößenbezeichner angeben und erhalten die berechneten Werte in einem einzigen DataFrame.

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

Verwenden des Power BI XMLA-Connectors

Der Standardsemantikmodellclient verwendet die Power BI-REST-APIs. Wenn Abfragen mit diesem Client fehlschlagen, wechseln Sie zum Power BI XMLA-Endpunkt, indem Sie die Einstellung festlegen use_xmla=True. SemPy-Parameter sind für Measures-Berechnungen mit XMLA identisch.

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)

Weitere Semantiklinks und SemPy-Lernprogramme finden Sie unter: