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
Haal een Microsoft Fabric-abonnement op. Of meld u aan voor een gratis proefversie van Microsoft Fabric.
Meld u aan bij Microsoft Fabric.
Gebruik de ervaringswisselaar aan de linkerkant van de startpagina om over te schakelen naar Fabric.
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
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_relationships
functies 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_products
en 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_sales
en df_products
, plus df_customers
de 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.
Gerelateerde inhoud
- Meer informatie over semantische functies
- Aan de slag met de SemPy-referentiedocumentatie
- Zelfstudie: Relaties ontdekken in een semantisch model met behulp van een semantische koppeling
- Zelfstudie: Relaties ontdekken in de Synthea-gegevensset met behulp van een semantische koppeling
- Functionele afhankelijkheden in uw gegevens detecteren, verkennen en valideren