Condividi tramite


Esercitazione: Estrarre e calcolare le misure di Power BI da un Jupyter Notebook

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

In questa esercitazione apprenderai a:

  • Valutare le misure di Power BI in modo programmatico tramite un'interfaccia Python della libreria Python (SemPy) del collegamento semantico.
  • Acquisire familiarità con i componenti di SemPy che consentono di colmare il divario tra IA e BI. Questi componenti includono:
    • FabricDataFrame: una struttura simile a pandas migliorata con informazioni semantiche aggiuntive.
    • Funzioni utili che consentono di recuperare modelli semantici, inclusi dati non elaborati, configurazioni e misure.

Prerequisiti

  • Selezionare Aree di lavoro nel riquadro di spostamento sinistro per trovare e selezionare l'area di lavoro. Questa area di lavoro diventa l'area di lavoro corrente.

  • Scaricare il modello semantico Retail Analysis Sample PBIX.pbix e caricarlo nell'area di lavoro.

Seguire la procedura nel notebook

Il notebook powerbi_measures_tutorial.ipynb accompagna questa esercitazione.

Per aprire il notebook di accompagnamento per questa esercitazione, seguire le istruzioni riportate in Preparare il sistema per le esercitazioni di data science per importare il notebook nell'area di lavoro.

Se si preferisce copiare e incollare il codice da questa pagina, è possibile creare un nuovo notebook.

Assicurarsi di collegare un lakehouse al notebook prima di iniziare a eseguire il codice.

Configurare il notebook

In questa sezione viene configurato un ambiente notebook con i moduli e i dati necessari.

  1. Installare SemPy da PyPI usando la funzionalità di installazione in linea %pip all'interno del notebook:

    %pip install semantic-link
    
  2. Eseguire le importazioni necessarie di moduli che serviranno in un secondo momento:

    import sempy.fabric as fabric
    
  3. È possibile connettersi all'area di lavoro di Power BI. Elencare i modelli semantici nell'area di lavoro:

    fabric.list_datasets()
    
  4. Caricare il modello semantico. In questa esercitazione si usa il modello semantico Retail Analysis Sample PBIX:

    dataset = "Retail Analysis Sample PBIX"
    

Elencare le misure dell'area di lavoro

Elencare le misure nel modello semantico usando la funzione list_measures di SemPy come indicato di seguito:

fabric.list_measures(dataset)

Valutare le misure

In questa sezione si valutano le misure in vari modi, usando la funzione evaluate_measure di SemPy.

Valutare una misura non elaborata

Nel codice seguente usare la funzione evaluate_measure di SemPy per calcolare una misura preconfigurata denominata "Average Selling Area Size". È possibile visualizzare la formula sottostante per questa misura nell'output della cella precedente.

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

Valutare una misura con groupby_columns

È possibile raggruppare l'output della misura in base a determinate colonne specificando il parametro aggiuntivo groupby_columns:

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

Nel codice precedente il raggruppamento è stato effettuato in base alle colonne Chain e DistrictName della tabella Store nel modello semantico.

Valutare una misura con filtri

È anche possibile usare il parametro filters per specificare valori specifici che il risultato può contenere per colonne specifiche:

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

Nel codice precedente, Store è il nome della tabella, Territory è il nome della colonna e PA è uno dei valori consentiti dal filtro.

Valutare una misura tra più tabelle

È possibile raggruppare la misura in base a colonne che si estendono su più tabelle nel modello semantico.

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

Valutare più misure

La funzione evaluate_measure consente di fornire identificatori di più misure e restituire i valori calcolati nello stesso DataFrame:

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 è supportato dalle API REST di Power BI. Se si verificano problemi durante l'esecuzione di query con questo client, è possibile passare dal back-end all'interfaccia XMLA di Power BI usando use_xmla=True. I parametri SemPy rimangono invariati per il calcolo 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 per il collegamento semantico/SemPy: