Condividi tramite


Connettività di Power BI con collegamento semantico

La connettività di Power BI è alla base del collegamento semantico in Microsoft Fabric. Questo articolo descrive i modi in cui il collegamento semantico fornisce connettività ai modelli semantici per gli utenti degli ecosistemi Python pandas e Apache Spark.

Un modello semantico rappresenta in genere uno standard di dati elevato che è il risultato dell'elaborazione e del perfezionamento dei dati upstream. Gli analisti aziendali possono:

  • Codificare le informazioni sul dominio e la logica di business in misure di Power BI.
  • Creare report di Power BI usando modelli semantici.
  • Usare questi report per prendere decisioni aziendali.

Quando i data scientist che lavorano con gli stessi modelli semantici tentano di duplicare la logica di business in diversi ambienti di codice o linguaggi, possono verificarsi errori critici. Il collegamento semantico consente di colmare il divario tra i modelli semantici e l'esperienza di data science di Synapse in Microsoft Fabric per consentire agli analisti aziendali e ai data scientist di collaborare senza problemi e ridurre la mancata corrispondenza dei dati.

Il collegamento semantico offre connettività a:

  • Ecosistema Pandas Python tramite la libreria SemPy Python.
  • Modelli semantici tramite il connettore nativo Spark che supporta PySpark, Spark SQL, R e Scala.

Connettività dei dati tramite la libreria SemPy Python per gli utenti pandas

La libreria SemPy Python fa parte della funzionalità di collegamento semantico e serve gli utenti pandas. La funzionalità SemPy include il recupero dei dati dalle tabelle, il calcolo delle misure e l'esecuzione di query e metadati DI DATA Analysis Expressions (DAX).

  • Per Spark 3.4 e versioni successive, il collegamento semantico è disponibile nel runtime predefinito quando si usa Fabric e non è necessario installarlo.

  • Per Spark 3.3 o versione successiva o per eseguire l'aggiornamento alla versione più recente del collegamento semantico, eseguire il comando seguente:

    %pip install -U semantic-link
    

SemPy estende anche i dataframe pandas con metadati aggiunti propagati dall'origine dati di Power BI. Questi metadati includono:

  • Categorie di dati di Power BI:
    • Geografico: Indirizzo, luogo, città
    • URL: URL Web, URL immagine
    • Codice a barre
  • Relazioni tra tabelle
  • Gerarchie

Il connettore nativo Spark di collegamento semantico consente agli utenti di Spark di accedere a tabelle e misure di Power BI. Il connettore è indipendente dal linguaggio e supporta PySpark, Spark SQL, R e Scala.

Per usare il connettore nativo Spark, si rappresentano modelli semantici come spazi dei nomi Spark ed espongono in modo trasparente le tabelle di Power BI come tabelle Spark.

Il comando seguente configura Spark per l'uso del connettore nativo di Power BI Spark per Spark SQL:

spark.conf.set("spark.sql.catalog.pbi", "com.microsoft.azure.synapse.ml.powerbi.PowerBICatalog")

# Optionally, configure the workspace using its ID
# Resolve workspace name to ID using fabric.resolve_workspace_id("My workspace")
# Replace 00000000-0000-0000-0000-000000000000 with your own workspace ID
# spark.conf.set("spark.sql.catalog.pbi.workspace, "00000000-0000-0000-0000-000000000000")

Il comando seguente elenca tutte le tabelle in un modello semantico denominato Sales Dataset:

%%sql
SHOW TABLES FROM pbi.`Sales Dataset`

Il comando seguente visualizza i dati della Customer tabella nel modello Sales Datasetsemantico :

%%sql
SELECT * FROM pbi.`Sales Dataset`.Customer

Le misure di Power BI sono accessibili tramite la tabella virtuale _Metrics per collegare Spark SQL relazionale con Power BI multidimensionale. Nell'esempio Total Revenue seguente e Revenue Budget sono misure definite nel Sales Dataset modello semantico e le altre colonne sono dimensioni. Le funzioni di aggregazione come AVG vengono ignorate per le misure e sono presenti solo per garantire la coerenza con SQL.

Il connettore supporta il push del predicato verso il basso dei calcoli, ad Customer[State] in ('CA', 'WA') esempio dalle espressioni Spark nel motore di Power BI, per consentire l'uso del motore ottimizzato di Power BI.

SELECT
    `Customer[Country/Region]`,
    `Industry[Industry]`,
    AVG(`Total Revenue`),
    AVG(`Revenue Budget`)
FROM
    pbi.`Sales Dataset`.`_Metrics`
WHERE
    `Customer[State]` in ('CA', 'WA')
GROUP BY
    `Customer[Country/Region]`,
    `Industry[Industry]`

Aumento dei dati con misure di Power BI

L'operazione add_measure è una potente funzionalità di collegamento semantico che consente di aumentare i dati con misure provenienti da modelli semantici. Questa operazione è disponibile solo nella libreria SemPy Python e non è supportata nel connettore nativo Spark. Per altre informazioni sul add_measure metodo , vedere add_measure nella documentazione della FabricDataFrame classe.

Per usare la libreria SemPy Python, installarla nel kernel del notebook eseguendo il codice seguente in una cella del notebook:

# %pip and import only needs to be done once per notebook
%pip install semantic-link
from sempy.fabric import FabricDataFrame

Nell'esempio di codice seguente si presuppone che si disponga di un FabricDataFrame esistente con dati da aumentare con le misure di un modello semantico.

df = FabricDataFrame({
        "Sales Agent": ["Agent 1", "Agent 1", "Agent 2"],
        "Customer[Country/Region]": ["US", "GB", "US"],
        "Industry[Industry]": ["Services", "CPG", "Manufacturing"],
    }
)

joined_df = df.add_measure(["Total Revenue", "Total Budget"], dataset="Sales Dataset")

Il add_measure metodo esegue i passaggi seguenti:

  1. Risolve i nomi delle colonne in FabricDataFrame in dimensioni di Power BI. L'operazione ignora tutti i nomi di colonna che non possono essere risolti all'interno del modello semantico specificato. Per altre informazioni, vedere la sintassi DAX supportata.
  2. Definisce le group by colonne usando i nomi di colonna risolti.
  3. Calcola una o più misure a group by livello di .
  4. Filtra il risultato in base alle righe esistenti in FabricDataFrame.