Condividi tramite


Esplorare e convalidare le relazioni nei modelli semantici e nei DataFrame

Questo articolo illustra come usare le funzioni di collegamento semantico SemPy per individuare e convalidare le relazioni nei modelli semantici di Power BI e nei dataframe pandas.

Nell'analisi scientifica dei dati e nell'apprendimento automatico, la comprensione della struttura e delle relazioni nei dati è importante. Power BI consente di modellare e visualizzare queste strutture e relazioni. Per ottenere altre informazioni dettagliate o creare modelli di Machine Learning, usare funzioni di collegamento semantico nei moduli della libreria SemPy.

I data scientist e gli analisti aziendali usano le funzioni SemPy per elencare, visualizzare e convalidare le relazioni nei modelli semantici di Power BI oppure trovare e convalidare le relazioni nei dataframe pandas.

Prerequisiti

  • Creare un nuovo notebook per copiare e incollare il codice nelle celle.

  • Per Spark 3.4 e versioni successive, il collegamento semantico è disponibile nel runtime predefinito quando si usa Fabric, quindi non è necessario installarlo. Per Spark 3.3 o versioni precedenti, o per eseguire l'aggiornamento alla versione più recente del collegamento semantico, eseguire il comando seguente:

    %pip install -U semantic-link
    
  • Aggiungere una lakehouse al notebook

Elencare le relazioni nei modelli semantici

La funzione list_relationships nel modulo sempy.fabric restituisce un elenco di tutte le relazioni trovate in un modello semantico di Power BI. L'elenco consente di comprendere la struttura dei dati e il modo in cui sono connesse tabelle e colonne diverse.

Questa funzione funziona usando il collegamento semantico per fornire DataFrame annotati. I DataFrame includono i metadati necessari per comprendere le relazioni all'interno del modello semantico. I DataFrame annotati semplificano l'analisi della struttura del modello semantico e lo usano nei modelli di Machine Learning o in altre attività di analisi dei dati.

Per usare la funzione list_relationships, è prima necessario importare il modulo sempy.fabric. Chiamare quindi la funzione usando il nome o l'UUID del modello semantico di Power BI, come illustrato nell'esempio seguente:

import sempy.fabric as fabric

fabric.list_relationships("my_dataset")

Il codice precedente chiama la list_relationships funzione con un modello semantico di Power BI denominato my_dataset. La funzione restituisce un dataframe pandas con una riga per ogni relazione, in modo da poter esplorare e analizzare rapidamente le relazioni nel modello semantico.

Nota

Il notebook, il modello semantico set di dati di Power BI e il lakehouse possono trovarsi nella stessa area di lavoro o in aree di lavoro diverse. Per impostazione predefinita, SemPy tenta di accedere al modello semantico da:

  • area di lavoro del lakehouse, se un lakehouse è stato associato al notebook.
  • area di lavoro del notebook, se non è associato alcun lakehouse.

Se il modello semantico non si trova in una di queste aree di lavoro, è necessario specificare l'area di lavoro del modello semantico quando si chiama un metodo SemPy.

Visualizzare le relazioni nei modelli semantici

Usare la plot_relationship_metadata funzione per visualizzare le relazioni in un modello semantico e scoprire come è strutturato il modello. Questa funzione crea un grafico che mostra le connessioni tra tabelle e colonne, semplificando la visualizzazione dei diversi elementi correlati.

Ecco un esempio di come usare la plot_relationship_metadata funzione :

import sempy.fabric as fabric
from sempy.relationships import plot_relationship_metadata

relationships = fabric.list_relationships("my_dataset")
plot_relationship_metadata(relationships)

Nell'esempio la list_relationships funzione ottiene le relazioni nel modello semantico my_dataset e la plot_relationship_metadata funzione crea un grafo per visualizzare tali relazioni.

Personalizzare il grafico scegliendo le colonne da includere, impostando come gestire le chiavi mancanti e aggiungendo altri attributi graphviz .

Convalidare le relazioni nei modelli semantici

Usare la list_relationship_violations funzione per controllare le relazioni nel modello semantico e individuare eventuali problemi o incoerenze. La list_relationship_violations funzione controlla le tabelle per assicurarsi che corrispondano alle relazioni nel modello semantico.

Questa funzione consente di trovare incoerenze con la molteplicità delle relazioni e risolvere i problemi prima che influiscano sull'analisi dei dati o sui modelli di Machine Learning.

Per usare la list_relationship_violations funzione, importare il sempy.fabric modulo e leggere le tabelle dal modello semantico. Chiamare quindi la funzione con un dizionario che esegue il mapping dei nomi di tabella ai dataframe con il contenuto della tabella.

Il codice dell'esempio seguente illustra come elencare le violazioni delle relazioni:

import sempy.fabric as fabric

tables = {
    "Sales": fabric.read_table("my_dataset", "Sales"),
    "Products": fabric.read_table("my_dataset", "Products"),
    "Customers": fabric.read_table("my_dataset", "Customers"),
}

fabric.list_relationship_violations(tables)

Il codice precedente chiama la list_relationship_violations funzione con un dizionario con le tabelle Sales, Products e Customers del modello semantico my_dataset . È possibile personalizzare la funzione impostando una soglia di copertura, scegliendo come gestire le chiavi mancanti e impostando il numero di chiavi mancanti da segnalare.

La funzione restituisce un dataframe pandas con una riga per ogni violazione della relazione, in modo da individuare e risolvere rapidamente i problemi nel modello semantico. Usare la list_relationship_violations funzione per mantenere coerente e accurato il modello semantico, in modo da creare modelli di Machine Learning più affidabili e ottenere informazioni dettagliate migliori dai dati.

Trovare relazioni nei pandas DataFrame

Le list_relationshipsfunzioni , plot_relationships_dfe list_relationship_violations nel modulo Fabric sono strumenti avanzati per l'esplorazione delle relazioni nei modelli semantici. In alcuni casi, è necessario trovare relazioni in altre origini dati, ad esempio i dataframe pandas.

Usare la find_relationships funzione nel sempy.relationship modulo per trovare relazioni nei dataframe pandas.

La find_relationships funzione nel sempy.relationships modulo consente ai data scientist e agli analisti aziendali di trovare potenziali relazioni in un elenco di dataframe pandas. Questa funzione consente di individuare le connessioni tra tabelle e colonne, in modo da ottenere altre informazioni sui dati e sul modo in cui sono correlati gli elementi.

Ecco come trovare relazioni nei dataframe pandas:

from sempy.relationships import find_relationships

tables = [df_sales, df_products, df_customers]

find_relationships(tables)

Il codice precedente chiama la find_relationships funzione con un elenco di tre dataframe pandas: df_sales, df_productse df_customers. La funzione restituisce un dataframe pandas con una riga per ogni potenziale relazione, in modo da poter esplorare e analizzare le relazioni nei dati.

Personalizzare la funzione impostando una soglia di copertura, una soglia di somiglianza del nome, un elenco di relazioni da escludere e decidere se includere relazioni molti-a-molti.

Convalidare le relazioni nei pandas DataFrame

Dopo aver individuato potenziali relazioni nei DataFrame di pandas usando la funzione find_relationships, usare la funzione list_relationship_violations per convalidare queste relazioni e identificare eventuali problemi o incoerenze.

La list_relationship_violations funzione controlla le tabelle per assicurarsi che corrispondano alle relazioni individuate. Usare questa funzione per trovare incoerenze con la molteplicità di relazioni specificata, in modo da poter risolvere i problemi prima che influiscano sull'analisi dei dati o sui modelli di Machine Learning.

Di seguito è riportato un esempio che illustra come trovare violazioni delle relazioni nei dataframe pandas:

from sempy.relationships import find_relationships, list_relationship_violations

tables = [df_sales, df_products, df_customers]
relationships = find_relationships(tables)

list_relationship_violations(tables, relationships)

L'esempio chiama la funzione list_relationship_violations con tre DataFrame pandas: df_sales, df_products e df_customers, insieme alle relazioni del DataFrame dalla funzione find_relationships. La list_relationship_violations funzione restituisce un dataframe pandas con una riga per ogni violazione della relazione, in modo da individuare e risolvere rapidamente eventuali problemi nei dati.

Personalizzare la funzione impostando una soglia di copertura, scegliendo come gestire le chiavi mancanti e definendo il numero di chiavi mancanti da segnalare.

Usare la list_relationship_violations funzione con i dataframe pandas per mantenere i dati coerenti e accurati. In questo modo è possibile creare modelli di Machine Learning affidabili e ottenere informazioni più approfondite dai dati.