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
Skaffa en Microsoft Fabric-prenumeration. Eller registrera dig för en kostnadsfri utvärderingsversion av Microsoft Fabric.
Logga in på Microsoft Fabric.
Använd upplevelseväxlaren längst ned till vänster på startsidan för att växla till Fabric.
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
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_relationships
Funktionerna och plot_relationships_df
list_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_products
och 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_products
och 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.
Relaterat innehåll
- Lär dig mer om semantiska funktioner
- Kom igång med SemPy-referensdokumentationen
- Självstudie: Identifiera relationer i en semantisk modell med hjälp av semantisk länk
- Självstudie: Identifiera relationer i Synthea-datauppsättningen med hjälp av semantisk länk
- Identifiera, utforska och validera funktionella beroenden i dina data