Zelfstudie: Relaties ontdekken in een semantisch model met behulp van een semantische koppeling
In deze zelfstudie ziet u hoe u met Power BI communiceert vanuit een Jupyter-notebook en relaties tussen tabellen detecteert met behulp van de SemPy-bibliotheek.
In deze zelfstudie leert u het volgende:
- Ontdek relaties in een semantisch model (Power BI-gegevensset), met behulp van de Python-bibliotheek (SemPy) van semantic Link.
- Gebruik onderdelen van SemPy die ondersteuning bieden voor integratie met Power BI en helpen bij het automatiseren van analyse van gegevenskwaliteit. Deze onderdelen zijn onder andere:
- FabricDataFrame- een pandas-achtige structuur die is uitgebreid met aanvullende semantische informatie.
- Functies voor het ophalen van semantische modellen uit een Fabric-werkruimte in uw notebook.
- Functies die de evaluatie van hypothesen over functionele afhankelijkheden automatiseren en waarmee schendingen van relaties in uw semantische modellen worden geïdentificeerd.
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 de Synapse-Datawetenschap-ervaring.
Selecteer Werkruimten in het linkernavigatiedeelvenster om uw werkruimte te zoeken en te selecteren. Deze werkruimte wordt uw huidige werkruimte.
Download het klantwinstgevendheidsvoorbeeld.pbix en het voorbeeld van klantwinstgevendheid (auto).pbix-semantische modellen uit de GitHub-opslagplaats fabric-samples en upload deze naar uw werkruimte.
Volgen in het notitieblok
De notebook powerbi_relationships_tutorial.ipynb begeleidt deze zelfstudie.
Als u het bijbehorende notitieblok voor deze zelfstudie wilt openen, volgt u de instructies in Uw systeem voorbereiden voor zelfstudies voor gegevenswetenschap om het notebook te importeren in uw werkruimte.
Als u liever de code van deze pagina kopieert en plakt, kunt u een nieuw notitieblok maken.
Zorg ervoor dat u een lakehouse aan het notebook koppelt voordat u begint met het uitvoeren van code.
Het notebook instellen
In deze sectie stelt u een notebookomgeving in met de benodigde modules en gegevens.
Installeren
SemPy
vanuit PyPI met behulp van de%pip
inline-installatiemogelijkheid in het notebook:%pip install semantic-link
Voer de benodigde importbewerkingen uit van SemPy-modules die u later nodig hebt:
import sempy.fabric as fabric from sempy.relationships import plot_relationship_metadata from sempy.relationships import find_relationships from sempy.fabric import list_relationship_violations
Importeer pandas voor het afdwingen van een configuratieoptie die helpt bij het opmaken van uitvoer:
import pandas as pd pd.set_option('display.max_colwidth', None)
Semantische modellen verkennen
In deze zelfstudie wordt gebruikgemaakt van een standaard semantisch model Customer Profitability Sample.pbix. Zie het voorbeeld klantwinstgevendheid voor Power BI voor een beschrijving van het semantische model.
Gebruik de functie van
list_datasets
SemPy om semantische modellen in uw huidige werkruimte te verkennen:fabric.list_datasets()
Voor de rest van dit notebook gebruikt u twee versies van het semantische model Customer Profitability Sample:
- Voorbeeld van klantwinstgevendheid: het semantische model dat afkomstig is van Power BI-voorbeelden met vooraf gedefinieerde tabelrelaties
- Voorbeeld van klantwinstgevendheid (automatisch): dezelfde gegevens, maar relaties zijn beperkt tot relaties die door Power BI automatisch worden gedetecteerd.
Een semantisch voorbeeldmodel extraheren met het vooraf gedefinieerde semantische model
Laadrelaties die vooraf zijn gedefinieerd en zijn opgeslagen in het semantische voorbeeld van klantwinstgevendheid , met behulp van de functie van
list_relationships
SemPy. Deze functie bevat een overzicht van het tabellaire objectmodel:dataset = "Customer Profitability Sample" relationships = fabric.list_relationships(dataset) relationships
Visualiseer het
relationships
DataFrame als een grafiek met behulp van de functie van SemPyplot_relationship_metadata
:plot_relationship_metadata(relationships)
In deze grafiek ziet u de 'grondwaar' voor relaties tussen tabellen in dit semantische model, omdat deze weerspiegelen hoe ze zijn gedefinieerd in Power BI door een expert op het gebied van onderwerp.
De detectie van relaties aanvullen
Als u bent begonnen met relaties die automatisch door Power BI zijn gedetecteerd, hebt u een kleinere set.
Visualiseer de relaties die automatisch door Power BI zijn gedetecteerd in het semantische model:
dataset = "Customer Profitability Sample (auto)" autodetected = fabric.list_relationships(dataset) plot_relationship_metadata(autodetected)
De automatische verwijdering van Power BI heeft veel relaties gemist. Bovendien zijn twee van de automatisch gedetecteerde relaties semantisch onjuist:
Executive[ID]
->Industry[ID]
BU[Executive_id]
->Industry[ID]
De relaties afdrukken als een tabel:
autodetected
Onjuiste relaties met de
Industry
tabel worden weergegeven in rijen met index 3 en 4. Gebruik deze informatie om deze rijen te verwijderen.Negeer de onjuist geïdentificeerde relaties.
autodetected.drop(index=[3,4], inplace=True) autodetected
U hebt nu de juiste, maar onvolledige relaties.
Visualiseer deze onvolledige relaties met behulp van
plot_relationship_metadata
:plot_relationship_metadata(autodetected)
Laad alle tabellen uit het semantische model met behulp van SemPy's
list_tables
enread_table
functies:tables = {table: fabric.read_table(dataset, table) for table in fabric.list_tables(dataset)['Name']} tables.keys()
Zoek relaties tussen tabellen en gebruik
find_relationships
en bekijk de logboekuitvoer om inzicht te krijgen in de werking van deze functie:suggested_relationships_all = find_relationships( tables, name_similarity_threshold=0.7, coverage_threshold=0.7, verbose=2 )
Nieuw gedetecteerde relaties visualiseren:
plot_relationship_metadata(suggested_relationships_all)
SemPy kon alle relaties detecteren.
Gebruik de
exclude
parameter om de zoekopdracht te beperken tot aanvullende relaties die eerder niet zijn geïdentificeerd:additional_relationships = find_relationships( tables, exclude=autodetected, name_similarity_threshold=0.7, coverage_threshold=0.7 ) additional_relationships
De relaties valideren
Laad eerst de gegevens uit het semantische model klantwinstgevendheidsvoorbeeld :
dataset = "Customer Profitability Sample" tables = {table: fabric.read_table(dataset, table) for table in fabric.list_tables(dataset)['Name']} tables.keys()
Controleer op overlapping van primaire en refererende sleutelwaarden met behulp van de
list_relationship_violations
functie. Geef de uitvoer van delist_relationships
functie op als invoer voorlist_relationship_violations
:list_relationship_violations(tables, fabric.list_relationships(dataset))
De relatieschendingen bieden enkele interessante inzichten. Een van de zeven waarden in
Fact[Product Key]
is bijvoorbeeld niet aanwezig enProduct[Product Key]
deze ontbrekende sleutel is50
.
Verkennende gegevensanalyse is een spannend proces en dus gegevens opschonen. Er is altijd iets dat de gegevens verbergen, afhankelijk van hoe u deze bekijkt, wat u wilt vragen, enzovoort. Semantische koppeling biedt u nieuwe hulpprogramma's die u kunt gebruiken om meer te bereiken met uw gegevens.
Gerelateerde inhoud
Bekijk andere zelfstudies voor semantische koppeling /SemPy:
- Zelfstudie: Gegevens opschonen met functionele afhankelijkheden
- Zelfstudie: Functionele afhankelijkheden analyseren in een semantisch voorbeeldmodel
- Zelfstudie: Power BI-metingen extraheren en berekenen uit een Jupyter-notebook
- Zelfstudie: Relaties ontdekken in de Synthea-gegevensset met behulp van een semantische koppeling
- Zelfstudie: Gegevens valideren met Behulp van SemPy en Grote Verwachtingen (GX) (preview)
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor