Dela via


Utforska och validera relationer i semantiska modeller och dataramar

I den här artikeln lär du dig att använda SemPy-semantiska länkfunktioner för att identifiera och verifiera relationer i dina Power BI-semantiska modeller och Pandas DataFrames.

Inom datavetenskap och maskininlärning är det viktigt att förstå strukturen och relationerna inom dina data. Power BI är ett kraftfullt verktyg som gör att du kan modellera och visualisera dessa strukturer och relationer. Om du vill få fler insikter eller skapa maskininlärningsmodeller kan du gå djupare genom att använda semantiska länkfunktioner i SemPy-biblioteksmodulerna.

Dataforskare och affärsanalytiker kan använda SemPy-funktioner för att lista, visualisera och validera relationer i Power BI-semantiska modeller eller hitta och validera relationer i Pandas DataFrames.

Förutsättningar

  • Skapa en ny anteckningsbok för att kopiera/klistra in kod i celler.

  • För Spark 3.4 och senare är semantisk länk tillgänglig i standardkörningen när du använder Infrastrukturresurser, och du behöver inte installera den. Kör följande kommando för Spark 3.3 eller senare eller för att uppdatera till den senaste versionen av semantisk länk:

    %pip install -U semantic-link
    
  • Lägg till ett sjöhus i anteckningsboken.

Lista relationer i semantiska modeller

Funktionen list_relationships i modulen sempy.fabric returnerar en lista över alla relationer som finns i en Power BI-semantisk modell. Listan hjälper dig att förstå strukturen för dina data och hur olika tabeller och kolumner är anslutna.

Den här funktionen fungerar med hjälp av semantisk länk för att tillhandahålla kommenterade DataFrames. DataFrames innehåller nödvändiga metadata för att förstå relationerna i den semantiska modellen. De kommenterade DataFrames gör det enkelt att analysera semantikmodellens struktur och använda den i maskininlärningsmodeller eller andra dataanalysuppgifter.

Om du vill använda list_relationships funktionen importerar du först modulen sempy.fabric . Sedan anropar du funktionen med hjälp av namnet eller UUID för din Power BI-semantikmodell, som du ser i följande exempel:

import sempy.fabric as fabric

fabric.list_relationships("my_dataset")

Föregående kod anropar list_relationships funktionen med en Power BI-semantisk modell med namnet my_dataset. Funktionen returnerar en Pandas DataFrame med en rad per relation, så att du enkelt kan utforska och analysera relationerna i semantikmodellen.

Kommentar

Notebook-filen, Power BI-datauppsättningens semantiska modell och lakehouse kan finnas på samma arbetsyta eller på olika arbetsytor. Som standard försöker SemPy komma åt din semantiska modell från:

  • Arbetsytan i ditt sjöhus, om du bifogat ett sjöhus till din anteckningsbok.
  • Arbetsytan i anteckningsboken, om det inte finns någon bifogad lakehouse.

Om din semantiska modell inte finns på någon av dessa arbetsytor måste du ange arbetsytan för din semantiska modell när du anropar en SemPy-metod.

Visualisera relationer i semantiska modeller

Funktionen plot_relationship_metadata hjälper dig att visualisera relationer i en semantisk modell så att du kan få en bättre förståelse för modellens struktur. Den här funktionen skapar ett diagram som visar anslutningarna mellan tabeller och kolumner. Diagrammet gör det lättare att förstå semantikmodellens struktur och hur olika element är relaterade.

I följande exempel visas hur du plot_relationship_metadata använder funktionen:

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

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

I föregående kod list_relationships hämtar funktionen relationerna i den my_dataset semantiska modellen, och plot_relationship_metadata funktionen skapar ett diagram för att visualisera relationerna.

Du kan anpassa diagrammet genom att definiera vilka kolumner som ska inkluderas, ange hur nycklar som saknas ska hanteras och fler graphviz-attribut .

Verifiera relationer i semantiska modeller

Nu när du har en bättre förståelse för relationerna i din semantiska modell kan du använda list_relationship_violations funktionen för att verifiera dessa relationer och identifiera eventuella problem eller inkonsekvenser. Funktionen list_relationship_violations hjälper dig att verifiera innehållet i dina tabeller för att säkerställa att de matchar de relationer som definierats i din semantiska modell.

Genom att använda den här funktionen kan du identifiera inkonsekvenser med den angivna relations multipliciteten och åtgärda eventuella problem innan de påverkar dataanalysen eller maskininlärningsmodellerna.

Om du vill använda list_relationship_violations funktionen importerar du först modulen sempy.fabric och läser tabellerna från din semantiska modell. Sedan anropar du funktionen med en ordlista som mappar tabellnamn till DataFrames med tabellinnehåll.

Följande exempelkod visar hur du listar relationsöverträdelser:

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)

Föregående kod anropar list_relationship_violations funktionen med en ordlista som innehåller tabellerna Försäljning, Produkter och Kunder från my_dataset semantisk modell. Du kan anpassa funktionen genom att ange ett täckningströskelvärde, ange hur nycklar som saknas ska hanteras och hur många nycklar som saknas att rapportera.

Funktionen returnerar en Pandas DataFrame med en rad per relationsöverträdelse, så att du enkelt kan identifiera och åtgärda eventuella problem i din semantiska modell. Med hjälp list_relationship_violations av funktionen kan du se till att din semantiska modell är konsekvent och korrekt, så att du kan skapa mer tillförlitliga maskininlärningsmodeller och få djupare insikter om dina data.

Hitta relationer i Pandas DataFrames

list_relationshipsFunktionerna och plot_relationships_dflist_relationship_violations i Fabric-modulen är kraftfulla verktyg för att utforska relationer inom semantiska modeller, men du kan också behöva identifiera relationer inom andra datakällor som importerats som Pandas DataFrames.

Det är här funktionen find_relationships i modulen sempy.relationship spelar in.

Funktionen find_relationships i modulen sempy.relationships hjälper dataforskare och affärsanalytiker att identifiera potentiella relationer i en lista över Pandas DataFrames. Med den här funktionen kan du identifiera möjliga anslutningar mellan tabeller och kolumner, så att du bättre kan förstå strukturen för dina data och hur olika element är relaterade.

Följande exempelkod visar hur du hittar relationer i Pandas DataFrames:

from sempy.relationships import find_relationships

tables = [df_sales, df_products, df_customers]

find_relationships(tables)

Föregående kod anropar find_relationships funktionen med en lista över tre Pandas DataFrames: df_sales, df_productsoch df_customers. Funktionen returnerar en Pandas DataFrame med en rad per potentiell relation, så att du enkelt kan utforska och analysera relationerna i dina data.

Du kan anpassa funktionen genom att ange ett tröskelvärde för täckning, ett tröskelvärde för namnlikhet, en lista över relationer som ska undantas och om många-till-många-relationer ska inkluderas.

Verifiera relationer i Pandas DataFrames

När du har identifierat potentiella relationer i dina Pandas DataFrames med hjälp find_relationships av funktionen kan du använda list_relationship_violations funktionen för att verifiera dessa relationer och identifiera eventuella problem eller inkonsekvenser.

Funktionen list_relationship_violations validerar innehållet i dina tabeller för att säkerställa att de matchar de identifierade relationerna. Genom att använda den här funktionen för att identifiera inkonsekvenser med den angivna relations multipliciteten kan du åtgärda eventuella problem innan de påverkar dina dataanalyser eller maskininlärningsmodeller.

Följande exempelkod visar hur du hittar relationsöverträdelser i Pandas DataFrames:

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)

Föregående kod anropar list_relationship_violations funktionen med en lista över tre Pandas DataFrames, df_sales, df_productsoch df_customers, plus relationerna DataFrame från find_relationships funktionen. Funktionen list_relationship_violations returnerar en Pandas DataFrame med en rad per relationsöverträdelse, så att du enkelt kan identifiera och åtgärda eventuella problem i dina data.

Du kan anpassa funktionen genom att ange ett täckningströskelvärde, ange hur nycklar som saknas ska hanteras och hur många nycklar som saknas att rapportera.

Genom att använda list_relationship_violations funktionen med Pandas DataFrames kan du se till att dina data är konsekventa och korrekta, så att du kan skapa mer tillförlitliga maskininlärningsmodeller och få djupare insikter om dina data.