Share via


Untersuchen und Überprüfen von Beziehungen in semantischen Power BI-Modellen

In diesem Artikel erfahren Sie, wie Sie Beziehungen in Ihren semantischen Power BI-Modellen und in Pandas DataFrames mithilfe von SemPy-Modulen ermitteln und überprüfen.

In Data Science und beim maschinellen Lernen ist es wichtig, die Struktur und Beziehungen innerhalb Ihrer Daten zu verstehen. Obwohl Power BI ein leistungsfähiges Tool ist, mit dem Sie Ihre Daten modellieren und visualisieren können, müssen Sie manchmal tiefer in die Struktur eines semantischen Modells eintauchen, um mehr Erkenntnisse zu gewinnen oder Machine Learning-Modelle zu erstellen. Wissenschaftliche Fachkräfte für Daten und Business Analysts können die Beziehungen innerhalb eines semantischen Power BI-Modells oder in Pandas DataFrame mithilfe verschiedener Funktionen in der SemPy-Bibliothek untersuchen.

Sie lernen Folgendes:

  • Suchen, Visualisieren und Untersuchen von Beziehungen in einem semantischen Power BI-Modell
  • Suchen und Überprüfen von Beziehungen in einem Pandas DataFrame

Voraussetzungen

  • Navigieren Sie zur Data Science-Benutzeroberfläche in Microsoft Fabric.
  • Erstellen Sie ein neues Notebook, um Code in Zellen zu kopieren und einzufügen.
  • Um die Python-Bibliothek SemPy in Ihrem Notebookkernel zu installieren, führen Sie den folgenden Code in einer Notebookzelle aus:
    %pip install semantic-link
    
  • Fügen Sie ein Lakehouse zum Notebook hinzu. Für Spark 3.4 und höher ist der semantische Link bei Verwendung von Fabric in der Standardlaufzeit verfügbar und muss nicht installiert werden. Wenn Sie Spark 3.3 oder darunter verwenden oder auf die neueste Version von Semantic Link aktualisieren möchten, können Sie den Befehl ausführen:

python %pip install -U semantic-link  

Beziehungen in einem semantischen Modell finden

Mit der Funktion list_relationships können Sie eine Liste aller Beziehungen abrufen, die in einem semantischen Power BI-Modell gefunden wurden, damit Sie die Struktur Ihrer Daten besser verstehen und wie verschiedene Tabellen und Spalten verbunden sind.

Die Funktion nutzt Semantic Link, welches kommentierte DataFrames bereitstellt, die die notwendigen Metadaten enthalten, um die Beziehungen innerhalb des semantischen Modells zu verstehen. Auf diese Weise können Sie die Struktur des semantischen Modells einfach analysieren und in Ihren Machine Learning-Modellen oder anderen Datenanalyseaufgaben verwenden.

Um die list_relationships-Funktion zu verwenden, müssen Sie zuerst das sempy.fabric-Modul importieren. Anschließend können Sie die Funktion mit dem Namen oder der UUID Ihres semantischen Power BI-Modells aufrufen, wie im folgenden Code gezeigt:

import sempy.fabric as fabric

fabric.list_relationships("my_dataset")

Der vorherige Code zeigt, dass die list_relationships Funktion mit einem semantischen Power BI-Modell mit dem Namen my_dataset aufgerufen wird. Die Funktion gibt einen Pandas DataFrame mit einer Zeile pro Beziehung zurück, sodass Sie die Beziehungen innerhalb des semantischen Modells einfach untersuchen und analysieren können.

Tipp

Ihr Notebook, Ihr semantisches Modell (Power BI-Dataset) und Ihr Lakehouse können sich im selben Arbeitsbereich oder in verschiedenen Arbeitsbereichen befinden. SemPy versucht standardmäßig, an folgenden Stellen auf Ihr semantisches Modell zuzugreifen:

  • Im Arbeitsbereich Ihres Lakehouse, wenn Sie ein Lakehouse an Ihr Notebook angefügt haben
  • Im Arbeitsbereich Ihres Notebooks, wenn kein Lakehouse angefügt ist

Wenn sich Ihr semantisches Modell nicht im Standardarbeitsbereich befindet, auf den SemPy versucht zuzugreifen, müssen Sie beim Aufrufen einer SemPy-Methode den Arbeitsbereich Ihres semantischen Modells angeben.

Beziehungen in einem semantischen Modell visualisieren

Die plot_relationship_metadata-Funktion hilft Ihnen beim Visualisieren von Beziehungen in einem semantischen Power BI-Modell, sodass Sie ein besseres Verständnis der Struktur des semantischen Modells erhalten können.

Mithilfe dieser Funktion können Sie ein Diagramm erstellen, in dem die Verbindungen zwischen Tabellen und Spalten angezeigt werden, wodurch die Struktur des semantischen Modells und die Art der Beziehung zwischen verschiedenen Elementen einfacher zu verstehen sind.

Im folgenden Code wird die Verwendung der plot_relationship_metadata-Funktion veranschaulicht.

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

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

Im vorherigen Code ruft die list_relationships-Funktion die Beziehungen im semantischen Power BI-Modell my_dataset ab, und die plot_relationship_metadata-Funktion erstellt ein Diagramm, um diese Beziehungen zu visualisieren.

Sie können das Diagramm anpassen, indem Sie angeben, welche Spalten einbezogen werden sollen, wie fehlende Schlüssel behandelt werden sollen, und indem Sie weitere Graphviz-Attribute bereitstellen.

Untersuchen von Beziehungsverstößen in einem semantischen Modell

Nachdem Sie nun ein besseres Verständnis der Beziehungen innerhalb Ihres semantischen Power BI-Modells haben, ist es wichtig, diese Beziehungen zu überprüfen und potenzielle Probleme oder Inkonsistenzen zu identifizieren. Hier kommt die list_relationship_violations-Funktion ins Spiel.

Mithilfe der list_relationship_violations-Funktion können Sie den Inhalt Ihrer Tabellen überprüfen, um sicherzustellen, dass sie den Beziehungen entsprechen, die in Ihrem semantischen Power BI-Modell definiert sind. Mithilfe dieser Funktion können Sie Inkonsistenzen mit der angegebenen Beziehungsmultiplizität identifizieren und alle Probleme beheben, bevor sie sich auf Ihre Datenanalyse oder Machine Learning-Modelle auswirken.

Um die list_relationship_violations-Funktion zu verwenden, müssen Sie zuerst das sempy.fabric-Modul importieren und die Tabellen aus Ihrem semantischen Power BI-Modell lesen. Anschließend können Sie die Funktion mit einem Wörterbuch aufrufen, das Tabellennamen den DataFrames mit Tabelleninhalt zuordnet.

Der folgende Code zeigt, wie Beziehungsverstöße aufgelistet werden:

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)

Im vorherigen Code wird die list_relationship_violations-Funktion mit einem Wörterbuch aufgerufen, das die Tabellen Sales, Productsund Customers aus dem semantischen Power BI-Modell my_dataset enthält. Die Funktion gibt einen Pandas DataFrame mit einer Zeile pro Beziehungsverstoß zurück, sodass Sie Probleme innerhalb Ihres semantischen Modells einfach identifizieren und beheben können.

Sie können die Funktion anpassen, indem Sie angeben, wie fehlende Schlüssel behandelt werden sollen, indem Sie einen Abdeckungsschwellenwert festlegen und die Anzahl der zu meldenden fehlenden Schlüssel definieren.

Mithilfe der list_relationship_violations -Funktion können Sie sicherstellen, dass Ihr semantisches Power BI-Modell konsistent und präzise ist, sodass Sie zuverlässigere Machine Learning-Modelle erstellen und tiefere Einblicke in Ihre Daten gewinnen können.

Suchen von Beziehungen in Pandas DataFrames

Während die Funktionen list_relationships, plot_relationships_df und list_relationship_violations im Fabric-Modul leistungsstarke Tools zum Untersuchen von Beziehungen innerhalb von semantischen Modellen sind, müssen Sie möglicherweise auch Beziehungen aus anderen Datenquellen in Form von Pandas DataFrames erkunden.

Hier kommt die find_relationships-Funktion im sempy.relationship-Modul ins Spiel.

Die find_relationships-Funktion hilft wissenschaftlichen Fachkräften für Daten und Business Analysts, potenzielle Beziehungen in einer Liste von Pandas DataFrames zu ermitteln.

Mithilfe dieser Funktion können Sie mögliche Verbindungen zwischen Tabellen und Spalten identifizieren, sodass Sie die Struktur Ihrer Daten besser verstehen und wie verschiedene Elemente miteinander verknüpft sind.

Der folgende Code zeigt, wie Beziehungen in einem Pandas DataFrame gefunden werden:

from sempy.relationships import find_relationships

tables = [df_sales, df_products, df_customers]

find_relationships(tables)

Im vorherigen Code wird die find_relationships-Funktion mit einer Liste von drei Pandas DataFrames aufgerufen: df_sales, df_productsund df_customers. Die Funktion gibt einen Pandas DataFrame mit einer Zeile pro potenzieller Beziehung zurück, sodass Sie die Beziehungen innerhalb Ihrer Daten einfach untersuchen und analysieren können.

Sie können die Funktion anpassen, indem Sie einen Abdeckungsschwellenwert, einen Schwellenwert für die Namensgleichheit, eine Liste der auszuschließenden Beziehungen angeben und festlegen, ob n:n-Beziehungen einbezogen werden sollen.

Überprüfen von Beziehungen in Pandas DataFrames

Nachdem Sie mithilfe der find_relationships-Funktion potenzielle Beziehungen innerhalb Ihrer Pandas DataFrames entdeckt haben, ist es wichtig, diese Beziehungen zu validieren und mögliche Probleme oder Inkonsistenzen zu identifizieren. Hier kommt die list_relationship_violations-Funktion aus dem sempy.relationships-Modul ins Spiel.

Die list_relationship_violations-Funktion soll Ihnen dabei helfen, den Inhalt Ihrer Tabellen zu überprüfen und sicherzustellen, dass sie den ermittelten Beziehungen entsprechen.

Mithilfe dieser Funktion können Sie Inkonsistenzen mit der angegebenen Beziehungsmultiplizität identifizieren und alle Probleme beheben, bevor sie sich auf Ihre Datenanalyse oder Machine Learning-Modelle auswirken.

Der folgende Code zeigt, wie Beziehungen in einem Pandas DataFrame gefunden werden:

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)

Im vorherigen Code wird die list_relationship_violations-Funktion mit einer Liste von drei Pandas DataFrames (df_sales, df_productsund df_customers) und dem Beziehungs-DataFrame aufgerufen, der anhand der find_relationships-Funktion ermittelt wurde. Dielist_relationship_violations-Funktion gibt einen Pandas DataFrame mit einer Zeile pro Beziehungsverstoß zurück, sodass Sie Probleme innerhalb Ihrer Daten einfach identifizieren und beheben können.

Sie können die Funktion anpassen, indem Sie angeben, wie fehlende Schlüssel behandelt werden sollen, indem Sie einen Abdeckungsschwellenwert festlegen und die Anzahl der zu meldenden fehlenden Schlüssel definieren.

Mithilfe der list_relationship_violations-Funktion mit Pandas DataFrames können Sie sicherstellen, dass Ihre Daten konsistent und präzise ist, sodass Sie zuverlässigere Machine Learning-Modelle erstellen und tiefere Einblicke in Ihre Daten gewinnen können.