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 pandas DataFrame.

Nel data science e nell'apprendimento automatico, è importante comprendere la struttura e le relazioni all'interno dei dati. Power BI è uno strumento potente che consente di modellare e visualizzare queste strutture e relazioni. Per ottenere altre informazioni dettagliate o creare modelli di Machine Learning, è possibile approfondire l'uso delle funzioni di collegamento semantico nei moduli della libreria SemPy.

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

Prerequisiti

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

  • 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 versioni precedenti, o per eseguire l'aggiornamento alla versione più recente del collegamento semantico, eseguire il comando seguente:

    %pip install -U semantic-link
    
  • Aggiungere un 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 funzione list_relationships con un modello semantico di Power BI denominato my_dataset. La funzione restituisce un pandas DataFrame con una riga per relazione, consentendo di esplorare e analizzare facilmente le relazioni all'interno del 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

La funzione plot_relationship_metadata consente di visualizzare le relazioni in un modello semantico in modo da ottenere una migliore comprensione della struttura del modello. Questa funzione crea un grafico che visualizza le connessioni tra tabelle e colonne. Il grafico semplifica la comprensione della struttura del modello semantico e il modo in cui sono correlati elementi diversi.

L'esempio seguente illustra come usare la funzione plot_relationship_metadata:

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

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

Nel codice precedente la funzione list_relationships recupera le relazioni nel modello semantico my_dataset e la funzione plot_relationship_metadata crea un grafico per visualizzare le relazioni.

È possibile personalizzare il grafico definendo le colonne da includere, specificando come gestire le chiavi mancanti e fornendo altri attributi graphviz .

Convalidare le relazioni nei modelli semantici

Ora che si ha una migliore comprensione delle relazioni nel modello semantico, è possibile usare la funzione list_relationship_violations per convalidare queste relazioni e identificare eventuali problemi o incoerenze. La funzione list_relationship_violations consente di convalidare il contenuto delle tabelle per assicurarsi che corrispondano alle relazioni definite nel modello semantico.

Usando questa funzione, è possibile identificare le incoerenze con la molteplicità delle relazioni specificate e risolvere eventuali problemi prima che influiscano sull'analisi dei dati o sui modelli di Machine Learning.

Per usare la funzione list_relationship_violations, importare prima di tutto il modulo sempy.fabric 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 funzione list_relationship_violations con un dizionario contenente le tabelle Sales, Products e Customers dal modello semantico my_dataset . È possibile personalizzare la funzione impostando una soglia di copertura, specificando come gestire le chiavi mancanti e definendo il numero di chiavi mancanti da segnalare.

La funzione restituisce un pandas DataFrame con una riga per violazione della relazione, consentendo di identificare e risolvere facilmente eventuali problemi all'interno del modello semantico. Usando la funzione list_relationship_violations, è possibile assicurarsi che il modello semantico sia coerente e accurato, consentendo di creare modelli di Machine Learning più affidabili e ottenere informazioni più approfondite sui dati.

Trovare relazioni nei pandas DataFrame

Anche se le funzioni e list_relationships, plot_relationships_df list_relationship_violations nel modulo Fabric sono strumenti potenti per esplorare le relazioni all'interno di modelli semantici, potrebbe anche essere necessario individuare le relazioni all'interno di altre origini dati importate come pandas DataFrame.

Questo è dove entra in gioco la funzione find_relationships nel modulo sempy.relationship.

La funzione find_relationships nel modulo sempy.relationships consente ai data scientist e agli analisti aziendali di individuare potenziali relazioni all'interno di un elenco di pandas DataFrame. Usando questa funzione, è possibile identificare le possibili connessioni tra tabelle e colonne, consentendo di comprendere meglio la struttura dei dati e il modo in cui sono correlati diversi elementi.

Il codice dell'esempio seguente illustra come trovare relazioni nei pandas DataFrame:

from sempy.relationships import find_relationships

tables = [df_sales, df_products, df_customers]

find_relationships(tables)

Il codice precedente chiama la funzione find_relationships con un elenco di tre pandas DataFrame: df_sales, df_products e df_customers. La funzione restituisce un pandas DataFrame con una riga per ogni potenziale relazione, consentendo di esplorare e analizzare facilmente le relazioni all'interno dei dati.

È possibile personalizzare la funzione specificando una soglia di copertura, una soglia di somiglianza del nome, un elenco di relazioni da escludere e se includere relazioni molti-a-molti.

Convalidare le relazioni nei pandas DataFrame

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

La funzione list_relationship_violations convalida il contenuto delle tabelle per assicurarsi che corrispondano alle relazioni individuate. Usando questa funzione per identificare le incoerenze con la molteplicità delle relazioni specificate, è possibile risolvere eventuali problemi prima che influiscano sull'analisi dei dati o sui modelli di Machine Learning.

Il codice dell'esempio seguente illustra come trovare violazioni delle relazioni nei pandas DataFrame:

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)

Il codice precedente chiama la funzione list_relationship_violations con un elenco di tre pandas DataFrame, df_sales, df_productse df_customers, oltre alle relazioni DataFrame dalla funzione find_relationships. La funzione list_relationship_violations restituisce un pandas DataFrame con una riga per violazione della relazione, consentendo di identificare e risolvere facilmente eventuali problemi all'interno dei dati.

È possibile personalizzare la funzione impostando una soglia di copertura, specificando come gestire le chiavi mancanti e definendo il numero di chiavi mancanti da segnalare.

Usando la funzione list_relationship_violations con i pandas DataFrame, è possibile assicurarsi che i dati siano coerenti e accurati, consentendo di creare modelli di Machine Learning più affidabili e ottenere informazioni più approfondite sui dati.