Delen via


Relaties in semantische modellen en dataframes verkennen en valideren

In dit artikel leert u hoe u de semantische koppelingsfuncties van SemPy gebruikt om relaties te detecteren en te valideren in uw semantische Power BI-modellen en pandas DataFrames.

In data science en machine learning is het belangrijk om inzicht te hebben in de structuur en relaties binnen uw gegevens. Power BI is een krachtig hulpprogramma waarmee u deze structuren en relaties kunt modelleren en visualiseren. Als u meer inzichten wilt krijgen of machine learning-modellen wilt bouwen, kunt u dieper ingaan met behulp van de semantische koppelingsfuncties in de SemPy-bibliotheekmodules.

Gegevenswetenschappers en bedrijfsanalisten kunnen SemPy-functies gebruiken om relaties in semantische Power BI-modellen weer te geven, te visualiseren en te valideren, of relaties in pandas DataFrames te zoeken en te valideren.

Vereisten

  • Maak een nieuw notitieblok om code in cellen te kopiëren/plakken.

  • Voor Spark 3.4 en hoger is semantische koppeling beschikbaar in de standaardruntime wanneer u Fabric gebruikt en hoeft u deze niet te installeren. Voor Spark 3.3 of lager, of als u wilt bijwerken naar de nieuwste versie van de semantische koppeling, voert u de volgende opdracht uit:

    %pip install -U semantic-link
    
  • Voeg een lakehouse toe aan uw notitieblok.

Relaties weergeven in semantische modellen

De list_relationships functie in de sempy.fabric module retourneert een lijst met alle relaties die zijn gevonden in een semantisch Power BI-model. De lijst helpt u inzicht te krijgen in de structuur van uw gegevens en hoe verschillende tabellen en kolommen zijn verbonden.

Deze functie werkt met behulp van een semantische koppeling om geannoteerde DataFrames te bieden. De DataFrames bevatten de benodigde metagegevens om inzicht te hebben in de relaties binnen het semantische model. Met de geannoteerde DataFrames kunt u de structuur van het semantische model eenvoudig analyseren en gebruiken in machine learning-modellen of andere gegevensanalysetaken.

Als u de list_relationships functie wilt gebruiken, importeert u eerst de sempy.fabric module. Vervolgens roept u de functie aan met behulp van de naam of UUID van uw semantische Power BI-model, zoals wordt weergegeven in het volgende voorbeeld:

import sempy.fabric as fabric

fabric.list_relationships("my_dataset")

Met de voorgaande code wordt de list_relationships functie aangeroepen met een semantisch Power BI-model met de naam my_dataset. De functie retourneert een Pandas DataFrame met één rij per relatie, zodat u de relaties binnen het semantische model eenvoudig kunt verkennen en analyseren.

Notitie

Uw notebook, het semantische power BI-gegevenssetmodel en lakehouse kunnen zich in dezelfde werkruimte of in verschillende werkruimten bevinden. SemPy probeert standaard toegang te krijgen tot uw semantische model vanuit:

  • De werkruimte van uw lakehouse, als u een lakehouse aan uw notitieblok hebt gekoppeld.
  • De werkruimte van uw notitieblok, als er geen lakehouse is gekoppeld.

Als uw semantische model zich niet in een van deze werkruimten bevindt, moet u de werkruimte van uw semantische model opgeven wanneer u een SemPy-methode aanroept.

Relaties in semantische modellen visualiseren

Met plot_relationship_metadata de functie kunt u relaties in een semantisch model visualiseren, zodat u een beter inzicht krijgt in de structuur van het model. Met deze functie maakt u een grafiek waarin de verbindingen tussen tabellen en kolommen worden weergegeven. De grafiek maakt het gemakkelijker om inzicht te krijgen in de structuur van het semantische model en hoe verschillende elementen zijn gerelateerd.

In het volgende voorbeeld ziet u hoe u de plot_relationship_metadata functie gebruikt:

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

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

In de voorgaande code haalt de list_relationships functie de relaties op in het my_dataset semantisch model en maakt de plot_relationship_metadata functie een grafiek om de relaties te visualiseren.

U kunt de grafiek aanpassen door te definiëren welke kolommen moeten worden opgenomen, door op te geven hoe ontbrekende sleutels moeten worden verwerkt en meer graphviz-kenmerken op te geven.

Relaties in semantische modellen valideren

Nu u een beter inzicht hebt in de relaties in uw semantische model, kunt u de list_relationship_violations functie gebruiken om deze relaties te valideren en mogelijke problemen of inconsistenties te identificeren. Met list_relationship_violations de functie kunt u de inhoud van uw tabellen valideren om ervoor te zorgen dat deze overeenkomen met de relaties die zijn gedefinieerd in uw semantische model.

Met deze functie kunt u inconsistenties identificeren met de opgegeven relatie multipliciteit en eventuele problemen oplossen voordat ze van invloed zijn op uw gegevensanalyse- of machine learning-modellen.

Als u de list_relationship_violations functie wilt gebruiken, importeert u eerst de sempy.fabric module en leest u de tabellen uit uw semantische model. Vervolgens roept u de functie aan met een woordenlijst waarmee tabelnamen worden toegewezen aan de DataFrames met tabelinhoud.

In de volgende voorbeeldcode ziet u hoe u relatieschendingen kunt vermelden:

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)

Met de voorgaande code wordt de list_relationship_violations functie aangeroepen met een woordenlijst die de tabellen Sales, Products en Customers uit het my_dataset semantisch model bevat. U kunt de functie aanpassen door een dekkingsdrempel in te stellen, op te geven hoe ontbrekende sleutels moeten worden verwerkt en het aantal ontbrekende sleutels te definiëren dat moet worden vermeld.

De functie retourneert een Pandas DataFrame met één rij per relatieschending, zodat u eenvoudig eventuele problemen binnen uw semantische model kunt identificeren en oplossen. Met behulp van de list_relationship_violations functie kunt u ervoor zorgen dat uw semantische model consistent en nauwkeurig is, zodat u betrouwbaardere machine learning-modellen kunt bouwen en meer inzicht kunt krijgen in uw gegevens.

Relaties zoeken in pandas DataFrames

Hoewel de list_relationshipsfuncties plot_relationships_df en list_relationship_violations functies in de Fabric-module krachtige hulpprogramma's zijn voor het verkennen van relaties binnen semantische modellen, moet u mogelijk ook relaties detecteren in andere gegevensbronnen die zijn geïmporteerd als pandas DataFrames.

Hier komt de find_relationships functie in de sempy.relationship module aan de beurt.

De find_relationships functie in de sempy.relationships module helpt gegevenswetenschappers en bedrijfsanalisten potentiële relaties te ontdekken in een lijst met pandas DataFrames. Met deze functie kunt u mogelijke verbindingen tussen tabellen en kolommen identificeren, zodat u beter inzicht krijgt in de structuur van uw gegevens en hoe verschillende elementen zijn gerelateerd.

De volgende voorbeeldcode laat zien hoe u relaties kunt vinden in pandas DataFrames:

from sempy.relationships import find_relationships

tables = [df_sales, df_products, df_customers]

find_relationships(tables)

Met de voorgaande code wordt de find_relationships functie aangeroepen met een lijst met drie Pandas DataFrames: df_sales, df_productsen df_customers. De functie retourneert een Pandas DataFrame met één rij per potentiële relatie, zodat u de relaties binnen uw gegevens eenvoudig kunt verkennen en analyseren.

U kunt de functie aanpassen door een dekkingsdrempel, een drempelwaarde voor naam vergelijkbaarheid, een lijst met relaties die moeten worden uitgesloten en of veel-op-veel-relaties moeten worden opgenomen.

Relaties valideren in pandas DataFrames

Nadat u potentiële relaties in uw Pandas DataFrames hebt ontdekt met behulp van de find_relationships functie, kunt u de list_relationship_violations functie gebruiken om deze relaties te valideren en mogelijke problemen of inconsistenties te identificeren.

De list_relationship_violations functie valideert de inhoud van uw tabellen om ervoor te zorgen dat deze overeenkomen met de gedetecteerde relaties. Door deze functie te gebruiken om inconsistenties met de opgegeven relatie-multipliciteit te identificeren, kunt u eventuele problemen oplossen voordat ze van invloed zijn op uw gegevensanalyse- of machine learning-modellen.

De volgende voorbeeldcode laat zien hoe u relatieschendingen in pandas DataFrames kunt vinden:

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)

Met de voorgaande code wordt de list_relationship_violations functie aangeroepen met een lijst met drie pandas DataFrames, df_salesen df_products, plus df_customersde relaties DataFrame van de find_relationships functie. De list_relationship_violations functie retourneert een Pandas DataFrame met één rij per relatieschending, zodat u eenvoudig eventuele problemen in uw gegevens kunt identificeren en oplossen.

U kunt de functie aanpassen door een dekkingsdrempel in te stellen, op te geven hoe ontbrekende sleutels moeten worden verwerkt en het aantal ontbrekende sleutels te definiëren dat moet worden vermeld.

Met behulp van de list_relationship_violations functie met pandas DataFrames kunt u ervoor zorgen dat uw gegevens consistent en nauwkeurig zijn, zodat u betrouwbaardere machine learning-modellen kunt bouwen en meer inzicht krijgt in uw gegevens.