Condividi tramite


Estrarre e calcolare le misure di Power BI da un notebook di Jupyter

Questa esercitazione illustra come usare SemPy (anteprima) per calcolare le misure nei modelli semantici di Power BI.

In questa esercitazione apprenderai a:

  • Valutare le misure di Power BI a livello di codice usando l'interfaccia Python della libreria Di collegamenti semantici (SemPy)
  • Informazioni sui componenti SemPy che consentono di collegare l'intelligenza artificiale e bi:
    • FabricDataFrame: struttura simile a pandas migliorata con informazioni semantiche
    • Funzioni che ottengono modelli semantici, inclusi dati non elaborati, configurazioni e misure

Prerequisiti

  • Nel riquadro di spostamento selezionare Aree di lavoro, quindi selezionare l'area di lavoro per impostarla come area di lavoro corrente.

  • Scaricare il modello semantico PBIX.pbix dell'esempio di analisi delle vendite al dettaglio e caricarlo nell'area di lavoro.

Seguire la procedura nel notebook

Questa esercitazione è accompagnata dal notebook powerbi_measures_tutorial.ipynb.

Configurare il notebook

In questa sezione viene configurato un ambiente notebook.

  1. Eseguire l'installazione SemPy da PyPI usando %pip inline nel notebook.

    %pip install semantic-link-sempy
    
  2. Importare i moduli che verranno usati in un secondo momento.

    import sempy.fabric as fabric
    
  3. Connettersi all'area di lavoro di Power BI ed elencare i modelli semantici nell'area di lavoro.

    fabric.list_datasets()
    
  4. Caricare il modello semantico. In questa esercitazione si userà il modello semantico Retail Analysis Sample.

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

Elencare le misure dell'area di lavoro

Usare SemPy list_measures per elencare le misure in un modello semantico:

fabric.list_measures(dataset)

Valutare le misure

Usare la funzione di evaluate_measure SemPy per valutare le misure in modi diversi.

Valutare una misura non elaborata

Usare la funzione di evaluate_measure SemPy per calcolare la misura preconfigurata denominata "Average Selling Area Size".

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

Valutare una misura con groupby_columns

Raggruppare il risultato in base alle colonne usando il groupby_columns parametro :

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

Questo codice raggruppa per Store[Chain] e Store[DistrictName].

Valutare una misura con filtri

Usare il parametro per limitare i filters risultati a valori di colonna specifici:

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

In questo esempio, Store è la tabella, Territory è la colonna e PA è un valore consentito.

Valutare una misura tra più tabelle

Raggruppare le colonne in base a più tabelle nel modello semantico.

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

Valutare più misure

La evaluate_measure funzione consente di fornire più identificatori di misura e di restituire i valori calcolati in un singolo DataFrameoggetto :

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

Usare il connettore XMLA di Power BI

Il client del modello semantico predefinito usa le API REST di Power BI. Se le query hanno esito negativo con questo client, passare all'endpoint XMLA di Power BI impostando use_xmla=True. I parametri SemPy sono gli stessi per i calcoli delle misure con 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)

Vedere altre esercitazioni semantiche e SemPy: