Delen via


Zelfstudie: Power BI-metingen extraheren en berekenen uit een Jupyter-notebook

In deze zelfstudie ziet u hoe u SemPy (preview) gebruikt om metingen te berekenen in semantische modellen (Power BI-gegevenssets).

In deze zelfstudie leert u het volgende:

  • Power BI meet programmatisch via een Python-interface van de Python-bibliotheek (SemPy) van semantic link.
  • Maak kennis met onderdelen van SemPy die helpen om de kloof tussen AI en BI te overbruggen. Deze onderdelen zijn onder andere:
    • FabricDataFrame- een pandas-achtige structuur die is uitgebreid met aanvullende semantische informatie.
    • Handige functies waarmee u semantische modellen kunt ophalen, waaronder onbewerkte gegevens, configuraties en metingen.

Vereisten

  • Selecteer Werkruimten in het linkernavigatiedeelvenster om uw werkruimte te zoeken en te selecteren. Deze werkruimte wordt uw huidige werkruimte.

  • Download het semantische PBIX.pbix-model van een retailanalyse en upload het naar uw werkruimte.

Volgen in het notitieblok

De notebook powerbi_measures_tutorial.ipynb begeleidt deze zelfstudie.

Als u het bijbehorende notitieblok voor deze zelfstudie wilt openen, volgt u de instructies in Uw systeem voorbereiden voor zelfstudies voor gegevenswetenschap om het notebook te importeren in uw werkruimte.

Als u liever de code van deze pagina kopieert en plakt, kunt u een nieuw notitieblok maken.

Zorg ervoor dat u een lakehouse aan het notebook koppelt voordat u begint met het uitvoeren van code.

Het notebook instellen

In deze sectie stelt u een notebookomgeving in met de benodigde modules en gegevens.

  1. Installeren SemPy vanuit PyPI met behulp van de %pip inline-installatiemogelijkheid in het notebook:

    %pip install semantic-link
    
  2. Voer de benodigde importbewerkingen uit van modules die u later nodig hebt:

    import sempy.fabric as fabric
    
  3. U kunt verbinding maken met de Power BI-werkruimte. Geef de semantische modellen in de werkruimte weer:

    fabric.list_datasets()
    
  4. Laad het semantische model. In deze zelfstudie gebruikt u het semantische PBIX-voorbeeldmodel van een retailanalyse:

    dataset = "Retail Analysis Sample PBIX"
    

Werkruimtemetingen vermelden

Maak een lijst met metingen in het semantische model, waarbij de functie van list_measures SemPy als volgt wordt gebruikt:

fabric.list_measures(dataset)

Metingen evalueren

In deze sectie evalueert u metingen op verschillende manieren, met behulp van de functie van evaluate_measure SemPy.

Een onbewerkte meting evalueren

Gebruik in de volgende code de functie van evaluate_measure SemPy om een vooraf geconfigureerde meting te berekenen die 'Gemiddelde grootte van verkoopgebied' wordt genoemd. U kunt de onderliggende formule voor deze meting zien in de uitvoer van de vorige cel.

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

Een meting evalueren met groupby_columns

U kunt de uitvoer van de meting groeperen op bepaalde kolommen door de extra parameter groupby_columnsop te geven:

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

In de vorige code hebt u gegroepeerd op de kolommen Chain en DistrictName de Store tabel in het semantische model.

Een meting evalueren met filters

U kunt de filters parameter ook gebruiken om specifieke waarden op te geven die het resultaat voor bepaalde kolommen kan bevatten:

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

In de vorige code Store is dit de naam van de tabel, Territory de naam van de kolom en PA een van de waarden die het filter toestaat.

Een meting evalueren in meerdere tabellen

U kunt de meting groeperen op kolommen die meerdere tabellen in het semantische model omvatten.

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

Meerdere metingen evalueren

Met de functie evaluate_measure kunt u id's van meerdere metingen opgeven en de berekende waarden uitvoeren in hetzelfde DataFrame:

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

Power BI XMLA-connector gebruiken

De standaard-semantische modelclient wordt ondersteund door de REST API's van Power BI. Als er problemen zijn met het uitvoeren van query's met deze client, is het mogelijk om de back-end over te schakelen naar de XMLA-interface van Power BI met behulp van use_xmla=True. De SemPy-parameters blijven hetzelfde voor metingberekening met 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)

Bekijk andere zelfstudies voor semantische koppeling /SemPy: