Share via


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

Deze zelfstudie laat zien hoe u SemPy (preview) gebruikt om metingen te berekenen in semantische Power BI-modellen.

In deze zelfstudie leert u het volgende:

  • Power BI-metingen programmatisch evalueren met behulp van de Python-interface van de Semantic Link-bibliotheek (SemPy)
  • Meer informatie over SemPy-onderdelen die helpen AI en BI te overbruggen.
    • FabricDataFrame: pandas-achtige structuur verbeterd met semantische informatie
    • Functies die semantische modellen ophalen, waaronder onbewerkte gegevens, configuraties en metingen

Vereisten

  • Selecteer werkruimten in het navigatiedeelvenster en selecteer vervolgens uw werkruimte om deze in te stellen als de huidige werkruimte.

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

Volg mee in het notitieblok

De powerbi_measures_tutorial.ipynb notebook begeleidt deze zelfstudie.

Het notebook instellen

In deze sectie stelt u een notebookomgeving in.

  1. Installeer SemPy vanuit PyPI met behulp van %pip inline in het notebook.

    %pip install semantic-link-sempy
    
  2. Importeer de modules die u later gaat gebruiken.

    import sempy.fabric as fabric
    
  3. Maak verbinding met de Power BI-werkruimte en vermeld de semantische modellen in de werkruimte.

    fabric.list_datasets()
    
  4. Laad het semantische model. In deze zelfstudie gebruikt u het voorbeeld semantisch model voor retailanalyse.

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

Werkruimtemetingen vermelden

Gebruik SemPy's list_measures om metingen in een semantisch model weer te geven:

fabric.list_measures(dataset)

Metingen evalueren

Gebruik de functie van evaluate_measure SemPy om metingen op verschillende manieren te evalueren.

Een onbewerkte meting evalueren

Gebruik de functie van evaluate_measure SemPy om de vooraf geconfigureerde meting met de naam Gemiddelde verkoopgebiedgrootte te berekenen.

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

Een meting evalueren met groupby_columns

Groepeer het resultaat op kolommen met behulp van de groupby_columns parameter:

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

Deze code groepeert op basis van Store[Chain] en Store[DistrictName].

Een meting evalueren met filters

Gebruik de filters parameter om resultaten te beperken tot specifieke kolomwaarden:

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

In dit voorbeeld Store is de tabel, Territory de kolom en PA een toegestane waarde.

Een meting evalueren in meerdere tabellen

Groeperen op kolommen in meerdere tabellen in het semantische model.

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

Meerdere metingen evalueren

Met de evaluate_measure functie kunt u meerdere meting-id's opgeven en de berekende waarden in één DataFramewaarde retourneren:

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 maakt gebruik van de Power BI REST API's. Als query's mislukken met deze client, schakelt u over naar het Power BI XMLA-eindpunt door deze in te stellen use_xmla=True. SemPy-parameters zijn hetzelfde voor metingberekeningen 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 semantische koppelingen en SemPy-zelfstudies: