Utforska och validera relationer i semantiska modeller och dataramar

Den här artikeln visar hur du använder SemPy-semantiska länkfunktioner för att identifiera och verifiera relationer i Power BI-semantiska modeller och Pandas DataFrames.

Inom datavetenskap och maskininlärning är det viktigt att förstå strukturen och relationerna i dina data. Med Power BI kan du modellera och visualisera dessa strukturer och relationer. Om du vill få fler insikter eller skapa maskininlärningsmodeller använder du semantiska länkfunktioner i SemPy-biblioteksmoduler.

Dataforskare och affärsanalytiker använder 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 notebook-fil för att kopiera och klistra in kod i celler.

  • För Spark 3.4 och senare är semantisk länk tillgänglig i grundkörningen när du använder Fabric, så 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 lakehouse i din anteckningsbok

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 för varje relation, så att du snabbt kan utforska och analysera relationer 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

plot_relationship_metadata Använd funktionen för att visualisera relationer i en semantisk modell och lära dig hur modellen är strukturerad. Den här funktionen skapar ett diagram som visar anslutningar mellan tabeller och kolumner, vilket gör det lättare att se hur olika element är relaterade.

Här är ett exempel på 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 exemplet list_relationships hämtar funktionen relationerna i den my_dataset semantiska modellen, och plot_relationship_metadata funktionen skapar ett diagram för att visa dessa relationer.

Anpassa diagrammet genom att välja vilka kolumner som ska inkluderas, ange hur nycklar som saknas ska hanteras och lägga till fler graphviz-attribut .

Verifiera relationer i semantiska modeller

list_relationship_violations Använd funktionen för att kontrollera relationer i din semantiska modell och hitta eventuella problem eller inkonsekvenser. Funktionen list_relationship_violations kontrollerar dina tabeller för att se till att de matchar relationerna i din semantiska modell.

Den här funktionen hjälper dig att hitta inkonsekvenser med relations multiplicitet och åtgärda problem innan de påverkar dina dataanalyser eller maskininlärningsmodeller.

Om du vill använda list_relationship_violations funktionen importerar du modulen sempy.fabric och läser tabellerna från din semantiska modell. Anropa sedan 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 med tabellerna Försäljning, Produkter och Kunder från my_dataset semantisk modell. Du kan anpassa funktionen genom att ange ett tröskelvärde för täckning, välja hur nycklar som saknas ska hanteras och hur många nycklar som saknas ska rapporteras.

Funktionen returnerar en Pandas DataFrame med en rad för varje relationsöverträdelse, så att du snabbt kan hitta och åtgärda problem i din semantiska modell. list_relationship_violations Använd funktionen för att hålla semantikmodellen konsekvent och korrekt, så att du skapar mer tillförlitliga maskininlärningsmodeller och får bättre insikter från dina data.

Hitta relationer i Pandas DataFrames

Funktionerna list_relationships, plot_relationships_dfoch list_relationship_violations i Fabric-modulen är kraftfulla verktyg för att utforska relationer i semantiska modeller. Ibland behöver du hitta relationer i andra datakällor, till exempel Pandas DataFrames.

find_relationships Använd funktionen i modulen sempy.relationship för att hitta relationer i Pandas DataFrames.

Funktionen find_relationships i modulen sempy.relationships låter dataforskare och affärsanalytiker hitta potentiella relationer i en lista över Pandas DataFrames. Den här funktionen hjälper dig att upptäcka anslutningar mellan tabeller och kolumner, så att du lär dig mer om dina data och hur dess element relaterar.

Så här hittar du 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 för varje potentiell relation, så att du kan utforska och analysera relationer i dina data.

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 hittat potentiella relationer i dina Pandas DataFrames med hjälp av find_relationships-funktionen, använder du list_relationship_violations-funktionen för att verifiera dessa relationer och identifiera eventuella problem eller inkonsekvenser.

Funktionen list_relationship_violations kontrollerar dina tabeller för att se till att de matchar de identifierade relationerna. Använd den här funktionen för att hitta inkonsekvenser med den angivna relations multipliciteten, så att du kan åtgärda problem innan de påverkar dina dataanalyser eller maskininlärningsmodeller.

Här är ett exempel som 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)

Exemplet anropar list_relationship_violations-funktionen med tre pandas DataFrames: df_sales, df_products och df_customers, tillsammans med relationerna DataFrame från find_relationships-funktionen. Funktionen list_relationship_violations returnerar en Pandas DataFrame med en rad för varje relationsöverträdelse, så att du snabbt kan hitta och åtgärda eventuella problem i dina data.

Anpassa funktionen genom att ange ett täckningströskelvärde, välja hur du ska hantera saknade nycklar och definiera hur många nycklar som saknas att rapportera.

list_relationship_violations Använd funktionen med Pandas DataFrames för att hålla dina data konsekventa och korrekta. Detta hjälper dig att skapa tillförlitliga maskininlärningsmodeller och få djupare insikter från dina data.