Tutorial: Beziehungen in einem semantischen Modell mithilfe von semantischen Links entdecken
In diesem Tutorial wird veranschaulicht, wie Sie mit Power BI aus einem Jupyter-Notizbuch interagieren und Beziehungen zwischen Tabellen mithilfe der SemPy-Bibliothek erkennen.
In diesem Tutorial lernen Sie Folgendes:
- Beziehungen in einem semantischen Modell (Power BI-Dataset) mithilfe der Python-Bibliothek von semantischen Links (SemPy) entdecken.
- Verwenden Sie Komponenten von SemPy, welche die Integration in Power BI unterstützen und die Datenqualitätsanalyse automatisieren. Zu diesen Komponenten gehören:
- FabricDataFrame: eine Pandas-ähnliche Struktur, die um zusätzliche semantische Informationen erweitert wurde.
- Funktionen zum Abrufen von semantischen Modellen aus einem Fabric-Arbeitsbereich in Ihr Notizbuch.
- Funktionen, welche die Auswertung von Hypothesen zu funktionalen Abhängigkeiten automatisieren und Verstöße gegen Beziehungen in Ihren semantischen Modellen identifizieren.
Voraussetzungen
Erwerben Sie ein Microsoft Fabric-Abonnement. Registrieren Sie sich alternativ für eine kostenlose Microsoft Fabric-Testversion.
Melden Sie sich bei Microsoft Fabric an.
Wechseln Sie zur Synapse-Data Science-Benutzeroberfläche, indem Sie den Umschalter für die Benutzeroberfläche auf der linken Seite Ihrer Homepage verwenden.
Wählen Sie im linken Navigationsbereich Arbeitsbereiche aus, um Ihren Arbeitsbereich zu suchen und auszuwählen. Dieser Arbeitsbereich wird zu Ihrem aktuellen Arbeitsbereich.
Laden Sie die semantischen Modelle Customer Profitability Sample.pbix- und das Customer Profitability Sample (auto).pbix aus dem GitHub-Repository für Fabric-Beispiele herunter, und laden Sie sie in Ihren Arbeitsbereich hoch.
Das Notebook für das Tutorial
Das powerbi_relationships_tutorial.ipynb-Notizbuch begleitet dieses Tutorial.
Um das zugehörige Notebook für dieses Tutorial zu öffnen, befolgen Sie die Anweisungen unter Vorbereiten Ihres Systems für Data-Science-Tutorials zum Importieren des Notebooks in Ihren Arbeitsbereich.
Wenn Sie den Code lieber von dieser Seite kopieren und einfügen möchten, können Sie auch ein neues Notebook erstellen.
Fügen Sie unbedingt ein Lakehouse an das Notebook an, bevor Sie mit der Ausführung von Code beginnen.
Einrichten des Notebooks
In diesem Abschnitt richten Sie eine Notizbuchumgebung mit den erforderlichen Modulen und Daten ein.
Installieren Sie
SemPy
über PyPI mithilfe der%pip
-Inlineinstallationsfunktion innerhalb des Notizbuchs:%pip install semantic-link
Führen Sie die erforderlichen Importvorgänge von Modulen durch, die Sie später benötigen:
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
Importieren Sie Pandas zum Erzwingen einer Konfigurationsoption, die bei der Ausgabeformatierung hilft:
import pandas as pd pd.set_option('display.max_colwidth', None)
Entdecken von semantischen Modellen
In diesem Tutorial wird ein standardmäßiges semantisches Beispielmodell Customer Profitability Sample.pbix verwendet. Eine Beschreibung des semantischen Modells finden Sie unter Customer Profitability-Beispiel für Power BI.
Verwenden Sie die SemPy
list_datasets
Funktion, um semantische Modelle in Ihrem aktuellen Arbeitsbereich zu erkunden:fabric.list_datasets()
Für den Rest dieses Notebooks verwenden Sie zwei Versionen des semantischen Modells Customer Profitability-Beispiel:
- Beispiel für die Kundenrentabilität: Das Dataset aus Power BI-Beispielen mit vordefinierten Tabellenbeziehungen
- Beispiel für die Kundenrentabilität (auto): Dieselben Daten, aber die Beziehungen sind auf diejenigen beschränkt, die Power BI automatisch ermitteln würde.
Extrahieren eines Beispiels für ein semantisches Modell mit seinem vordefinierten semantischen Modell
Laden von Beziehungen, die im semantischen Modell der Kundenprofitabilität vordefiniert und gespeichert sind, mithilfe der SemPy
list_relationships
Funktion. Diese Funktion führt aus dem Tabellarischen Objektmodell auf:dataset = "Customer Profitability Sample" relationships = fabric.list_relationships(dataset) relationships
Visualisieren Sie den
relationships
-DataFrame als Diagramm mithilfe derplot_relationship_metadata
-Funktion von SemPy:plot_relationship_metadata(relationships)
Dieses Diagramm zeigt die „Bodenwahrheit“ für Beziehungen zwischen Tabellen in diesem semantischen Modell, da es widerspiegelt, wie sie in Power BI von einem Fachexperten definiert wurden.
Ergänzen der Beziehungsermittlung
Wenn Sie mit Beziehungen begonnen haben, die von Power BI automatisch erkannt werden, verfügen Sie über einen kleineren Satz.
Visualisieren Sie die Beziehungen, die Power BI automatisch im sematischen Modell erkannt hat:
dataset = "Customer Profitability Sample (auto)" autodetected = fabric.list_relationships(dataset) plot_relationship_metadata(autodetected)
Die automatische Erkennung von Power BI hat viele Beziehungen verpasst. Darüber hinaus sind zwei der automatisch erkannten Beziehungen semantisch falsch:
Executive[ID]
->Industry[ID]
BU[Executive_id]
->Industry[ID]
Anzeigen der Beziehungen als Tabelle:
autodetected
Falsche Beziehungen zur
Industry
-Tabelle werden in Zeilen mit Index 3 und 4 angezeigt. Verwenden Sie diese Informationen, um diese Zeilen zu entfernen.Verwerfen Sie die falsch identifizierten Beziehungen.
autodetected.drop(index=[3,4], inplace=True) autodetected
Jetzt haben Sie die richtigen, aber unvollständigen Beziehungen.
Visualisieren Sie diese unvollständigen Beziehungen mithilfe von
plot_relationship_metadata
:plot_relationship_metadata(autodetected)
Laden Sie alle Tabellen aus dem semantischen Modell mithilfe von SemPys
list_tables
undread_table
Funktionen:tables = {table: fabric.read_table(dataset, table) for table in fabric.list_tables(dataset)['Name']} tables.keys()
Suchen Sie Beziehungen zwischen Tabellen mithilfe von
find_relationships
und überprüfen Sie die Protokollausgabe, um einige Einblicke in die Funktionsweise dieser Funktion zu erhalten:suggested_relationships_all = find_relationships( tables, name_similarity_threshold=0.7, coverage_threshold=0.7, verbose=2 )
Visualisieren Sie neu ermittelte Beziehungen:
plot_relationship_metadata(suggested_relationships_all)
SemPy konnte alle Beziehungen erkennen.
Verwenden Sie den
exclude
-Parameter, um die Suche auf zusätzliche Beziehungen zu beschränken, die zuvor nicht identifiziert wurden:additional_relationships = find_relationships( tables, exclude=autodetected, name_similarity_threshold=0.7, coverage_threshold=0.7 ) additional_relationships
Überprüfen der Beziehungen
Laden Sie zunächst die Daten aus dem semantischen Modell-Beispiel zur Kundenrentabilität:
dataset = "Customer Profitability Sample" tables = {table: fabric.read_table(dataset, table) for table in fabric.list_tables(dataset)['Name']} tables.keys()
Suchen Sie mithilfe der
list_relationship_violations
-Funktion nach Überlappungen von Primär- und Fremdschlüsselwerten. Geben Sie die Ausgabe derlist_relationships
-Funktion als Input anlist_relationship_violations
:list_relationship_violations(tables, fabric.list_relationships(dataset))
Die Beziehungsverstöße bieten einige interessante Einblicke. Beispielsweise ist einer von sieben Werten in
Fact[Product Key]
nicht inProduct[Product Key]
vorhanden, und dieser fehlende Schlüssel ist50
.
Explorative Datenanalyse und auch Datenreinigung sind spannende Prozesse. Es gibt immer etwas, was die Daten verstecken, je nachdem, wie Sie sie betrachten, was Sie fragen möchten und so weiter. Semantic Link bietet Ihnen neue Tools, mit denen Sie mehr mit Ihren Daten erreichen können.
Zugehöriger Inhalt
Sehen Sie sich weitere Tutorials zu Semantic Link und SemPy an:
- Tutorial: Bereinigung von Daten mit funktionalen Abhängigkeiten
- Tutorial: Analysieren von funktionalen Abhängigkeiten in einem semantischen Beispielmodell
- Tutorial: Extrahieren und Berechnen von Power BI-Measures aus einem Jupyter-Notizbuch
- Tutorial: Entdecken von Beziehungen im Synthea-Dataset mithilfe von Semantic Link
- Tutorial: Überprüfen von Daten mithilfe von SemPy und Great Expectations (GX) (Vorschau)
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für