Share via


Relaties in semantische modellen en dataframes verkennen en valideren

In dit artikel leest u hoe u semPy-semantische koppelingsfuncties gebruikt om relaties te detecteren en te valideren in semantische Power BI-modellen en pandas DataFrames.

In data science en machine learning is het belangrijk om inzicht te krijgen in de structuur en relaties in uw gegevens. Met Power BI kunt u deze structuren en relaties modelleren en visualiseren. Als u meer inzichten wilt krijgen of machine learning-modellen wilt bouwen, gebruikt u semantische koppelingsfuncties in SemPy-bibliotheekmodules.

Gegevenswetenschappers en bedrijfsanalisten gebruiken SemPy-functies 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 te kopiëren en in cellen te plakken.

  • Voor Spark 3.4 en hoger is semantische koppeling beschikbaar in de standaardruntime wanneer u Fabric gebruikt, dus u hoeft 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
    
  • Een lakehouse toevoegen 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 voor elke relatie, zodat u snel relaties in het semantische model 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

Gebruik de plot_relationship_metadata functie om relaties in een semantisch model te visualiseren en te leren hoe het model is gestructureerd. Met deze functie maakt u een grafiek waarin verbindingen tussen tabellen en kolommen worden weergegeven, zodat u gemakkelijker kunt zien hoe verschillende elementen zijn gerelateerd.

Hier volgt een voorbeeld van het gebruik van de plot_relationship_metadata functie:

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

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

In het voorbeeld haalt de list_relationships functie de relaties op in het my_dataset semantisch model en maakt de plot_relationship_metadata functie een grafiek om deze relaties weer te geven.

Pas de grafiek aan door te kiezen welke kolommen u wilt opnemen, instellen hoe ontbrekende sleutels moeten worden verwerkt en meer graphviz-kenmerken toe te voegen.

Relaties in semantische modellen valideren

Gebruik de list_relationship_violations functie om relaties in uw semantische model te controleren en eventuele problemen of inconsistenties te vinden. De list_relationship_violations functie controleert uw tabellen om ervoor te zorgen dat ze overeenkomen met de relaties in uw semantische model.

Met deze functie kunt u inconsistenties met meerdere relaties vinden en 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 de sempy.fabric module en leest u de tabellen uit uw semantische model. Roep vervolgens de functie aan met een woordenlijst waarmee tabelnamen worden toegewezen aan 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 met de tabellen Sales, Products en Customers uit het my_dataset semantisch model. U kunt de functie aanpassen door een dekkingsdrempel in te stellen, te kiezen hoe ontbrekende sleutels moeten worden verwerkt en door het aantal ontbrekende sleutels te rapporteren.

De functie retourneert een Pandas DataFrame met één rij voor elke relatieschending, zodat u snel problemen in uw semantische model kunt vinden en oplossen. Gebruik de list_relationship_violations functie om uw semantische model consistent en nauwkeurig te houden, zodat u betrouwbaardere machine learning-modellen bouwt en betere inzichten krijgt uit uw gegevens.

Relaties zoeken in pandas DataFrames

De list_relationships, plot_relationships_dfen list_relationship_violations functies in de Fabric-module zijn krachtige hulpprogramma's voor het verkennen van relaties in semantische modellen. Soms moet u relaties vinden in andere gegevensbronnen, zoals pandas DataFrames.

Gebruik de find_relationships functie in de sempy.relationship module om relaties te vinden in pandas DataFrames.

Met find_relationships de functie in de sempy.relationships module kunnen gegevenswetenschappers en bedrijfsanalisten potentiële relaties vinden in een lijst met pandas DataFrames. Met deze functie kunt u verbindingen tussen tabellen en kolommen herkennen, zodat u meer informatie krijgt over uw gegevens en hoe de elementen zich verhouden.

U kunt als volgt relaties 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 voor elke potentiële relatie, zodat u relaties in uw gegevens kunt verkennen en analyseren.

Pas de functie aan door een dekkingsdrempel in te stellen, een drempelwaarde voor naambetrouwbaarheid, 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 gevonden met behulp van de find_relationships functie, gebruikt u de list_relationship_violations functie om deze relaties te valideren en eventuele problemen of inconsistenties te identificeren.

De list_relationship_violations functie controleert uw tabellen om ervoor te zorgen dat deze overeenkomen met de gedetecteerde relaties. Gebruik deze functie om inconsistenties te vinden met de opgegeven relatie multipliciteit, zodat u problemen kunt oplossen voordat ze van invloed zijn op uw gegevensanalyse- of machine learning-modellen.

Hier volgt een voorbeeld van het vinden van relatieschendingen in 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)

In het voorbeeld wordt de list_relationship_violations functie aangeroepen met drie pandas DataFrames: df_sales, df_products, df_customers, en de relaties-DataFrame van de find_relationships functie. De list_relationship_violations functie retourneert een Pandas DataFrame met één rij voor elke relatieschending, zodat u snel eventuele problemen in uw gegevens kunt vinden en oplossen.

Pas de functie aan door een dekkingsdrempel in te stellen, te kiezen hoe ontbrekende sleutels moeten worden verwerkt en te definiëren hoeveel ontbrekende sleutels moeten worden weergegeven.

Gebruik de list_relationship_violations functie met pandas DataFrames om uw gegevens consistent en nauwkeurig te houden. Zo kunt u betrouwbare machine learning-modellen bouwen en meer inzicht krijgen in uw gegevens.