Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Lernprogramm wird gezeigt, wie Sie ein Jupyter-Notizbuch verwenden, um mit Power BI zu interagieren und Beziehungen zwischen Tabellen mit der SemPy-Bibliothek zu erkennen.
In diesem Lernprogramm erfahren Sie, wie Sie:
- Entdecken Sie Beziehungen in einem Semantikmodell (Power BI-Dataset) mithilfe der Python-Bibliothek (SemPy) des semantischen Links.
- Verwenden Sie SemPy-Komponenten, die in Power BI integriert sind, und automatisieren Sie die Datenanalyse. Zu diesen Komponenten gehören:
-
FabricDataFrame- eine pandasähnliche Struktur, die mit semantischen Informationen erweitert wird - Funktionen, die semantische Modelle aus einem Fabric-Arbeitsbereich in Ihr Notizbuch ziehen
- Funktionen, die funktionsbezogene Abhängigkeiten testen und Beziehungsverstöße in Ihren semantischen Modellen identifizieren
-
Voraussetzungen
Holen Sie sich ein Microsoft Fabric-Abonnement. Oder registrieren Sie sich für eine kostenlose Microsoft Fabric-Testversion.
Melden Sie sich bei Microsoft Fabrican.
Wechseln Sie zu Fabric, indem Sie den Benutzeroberflächenschalter auf der unteren linken Seite Ihrer Startseite verwenden.
Wechseln Sie im Navigationsbereich zu "Arbeitsbereiche ", und wählen Sie dann Ihren Arbeitsbereich aus, um ihn als aktuellen Arbeitsbereich festzulegen.
Laden Sie die Kundenrentabilität Beispiel.pbix und die Kundenrentabilität Beispiel (auto).pbix-Semantikmodelle aus dem fabric-samples GitHub-Repository herunter und laden Sie sie dann in Ihren Arbeitsbereich hoch.
Notebook für das Tutorial
Verwenden Sie das powerbi_relationships_tutorial.ipynb-Notizbuch , um ihnen zu folgen.
Zum Öffnen des zugehörigen Notizbuchs für dieses Lernprogramm folgen Sie den Anweisungen in Vorbereiten Ihres Systems für Data Science-Lernprogramme, um das Notizbuch in Ihren Arbeitsbereich zu importieren.
Wenn Sie den Code lieber von dieser Seite kopieren und einfügen möchten, können Sie ein neues Notizbucherstellen.
Fügen Sie ein Lakehouse an das Notebook an, bevor Sie mit der Ausführung von Code beginnen.
Einrichten des Notizbuchs
Richten Sie eine Notizbuchumgebung mit den benötigten Modulen und Daten ein.
Installieren Sie das
semantic-linkPaket von PyPI mithilfe des%pipInlinebefehls im Notizbuch.%pip install semantic-linkImportieren Sie die
sempyModule, die Sie später verwenden werden.import sempy.fabric as fabric from sempy.relationships import plot_relationship_metadata from sempy.relationships import find_relationships from sempy.fabric import list_relationship_violationsImportieren Sie die
pandasBibliothek, und legen Sie eine Anzeigeoption für die Ausgabeformatierung fest.import pandas as pd pd.set_option('display.max_colwidth', None)
## Explore semantic models
This tutorial uses the Customer Profitability Sample semantic model [_Customer Profitability Sample.pbix_](https://github.com/microsoft/fabric-samples/blob/main/docs-samples/data-science/datasets/Customer%20Profitability%20Sample.pbix). Learn about the semantic model in [Customer Profitability sample for Power BI](/power-bi/create-reports/sample-customer-profitability).
- Use SemPy's `list_datasets` function to explore semantic models in your current workspace:
```python
fabric.list_datasets()
Verwenden Sie für den Rest dieses Notizbuchs zwei Versionen des Kundenprofitabilitäts-Semantikmodells.
- Beispiel für die Kundenrentabilität: das semantische Modell, wie in den Power BI-Beispielen mit vordefinierten Tabellenbeziehungen angegeben
- Beispiel für die Kundenrentabilität (auto): dieselben Daten, aber Beziehungen sind auf diejenigen beschränkt, die von Power BI automatisch erfasst werden
Extrahieren vordefinierter Beziehungen aus dem Beispielsemantikmodell
Laden Sie die vordefinierten Beziehungen im Semantikmodell des Kundenrentabilitätsbeispiels mithilfe der Funktion
list_relationshipsvon SemPy. Die Funktion listet Beziehungen aus dem Tabellarischen Objektmodell (TOM) auf.dataset = "Customer Profitability Sample" relationships = fabric.list_relationships(dataset) relationshipsVisualisieren Sie den
relationshipsDataFrame als Diagramm mithilfe derplot_relationship_metadataFunktion SemPy.plot_relationship_metadata(relationships)Dieses Diagramm zeigt die Beziehungen zwischen Tabellen in diesem semantischen Modell, wie in Power BI von einem Fachexperten definiert.
Ermitteln zusätzlicher Beziehungen
Wenn Sie mit Beziehungen beginnen, die von Power BI automatisch erkannt werden, haben Sie eine kleinere Datenmenge.
Visualisieren Sie die Beziehungen, die Power BI automatisch im Semantikmodell erkannt hat:
dataset = "Customer Profitability Sample (auto)" autodetected = fabric.list_relationships(dataset) plot_relationship_metadata(autodetected)Die automatische Erkennung von Power BI übersieht viele Beziehungen. Außerdem sind zwei der automatisch erkannten Beziehungen semantisch falsch:
-
Executive[ID]->Industry[ID] -
BU[Executive_id]->Industry[ID]
-
Drucken der Beziehungen als Tabelle:
autodetectedDie Zeilen 3 und 4 weisen falsche Beziehungen zu der Tabelle
Industryauf. Entfernen Sie diese Zeilen.Verwerfen Sie die falsch identifizierten Beziehungen.
# Remove rows 3 and 4 which point incorrectly to Industry[ID] autodetected = autodetected[~autodetected.index.isin([3, 4])]Jetzt haben Sie korrekte, aber unvollständige 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_tablesundread_tableFunktionen, und suchen Sie dann Beziehungen zwischen Tabellen mithilfefind_relationshipsvon . Überprüfen Sie die Protokollausgabe, um 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 erkennt alle Beziehungen.
Verwenden Sie den parameter
exclude, 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 von Beziehungen
Laden Sie zunächst Daten aus dem Semantikmodell des Kundenrentabilitätsbeispiels .
dataset = "Customer Profitability Sample" tables = {table: fabric.read_table(dataset, table) for table in fabric.list_tables(dataset)['Name']} tables.keys()Überprüfen Sie, ob sich der Primär- und Fremdschlüssel mit der
list_relationship_violationsFunktion überlappen. Übergeben Sie die Ausgabe derlist_relationshipsFunktion anlist_relationship_violations.list_relationship_violations(tables, fabric.list_relationships(dataset))Die Ergebnisse zeigen nützliche Einblicke. Beispielsweise ist einer von sieben Werten in
Fact[Product Key]Product[Product Key]nicht vorhanden, und der fehlende Schlüssel ist50.Explorative Datenanalyse und Datenreinigung sind iterativ. Was Sie lernen, hängt von Ihren Fragen ab und wie Sie die Daten untersuchen. Der semantische Link fügt Tools hinzu, mit denen Sie mehr mit Ihren Daten erledigen können.
Verwandte Inhalte
Erkunden Sie weitere Lernprogramme für semantischen Link und SemPy:
- Lernprogramm: Bereinigen von Daten mit funktionalen Abhängigkeiten
- Lernprogramm: Analysieren funktionaler Abhängigkeiten in einem Beispielsemantikmodell
- Lernprogramm: Extrahieren und Berechnen von Power BI-Measures aus einem Jupyter-Notizbuch
- Lernprogramm: Ermitteln von Beziehungen im Synthea-Dataset mit semantischer Verknüpfung
- Lernprogramm: Überprüfen von Daten mithilfe von SemPy and Great Expectations (GX)