Share via


Power BI-Konnektivität mit semantischem Link und Microsoft Fabric

Power BI-Konnektivität ist der Kern von Semantic Link. In diesem Artikel erfahren Sie mehr über die Möglichkeiten, wie Semantic Link Verbindungen mit semantischen Modellen für Benutzer des Python-Pandas-Ökosystems und des Apache Spark-Ökosystems bereitstellt.

Ein semantisches Modell stellt in der Regel den Goldstandard an Daten dar und ist das Ergebnis der vorgelagerten Datenverarbeitung und -verfeinerung. Wirtschaftsanalysten können Power BI-Berichte aus semantischen Modellen erstellen und diese Berichte verwenden, um Geschäftsentscheidungen voranzutreiben. Darüber hinaus können sie ihr Domänenwissen und ihre Geschäftslogik in Power BI-Measures codieren. Zudem können wissenschaftliche Fachkräfte für Daten mit denselben semantischen Modellen arbeiten, aber in der Regel in einer anderen Codeumgebung oder Sprache. In solchen Fällen kann es notwendig werden, dass die Datenwissenschaftler die Geschäftslogik duplizieren, was zu kritischen Fehlern führen kann.

Semantic Link überbrückt diese Lücke zwischen den semantischen Modellen und Synapse Data Science in Microsoft Fabric. Dadurch wird Wirtschaftsanalysten und Datenwissenschaftlern eine Möglichkeit geboten, nahtlos zusammenzuarbeiten und den Datenkonflikt zu reduzieren. Semantic Link bietet Konnektivität zu:

  • Python Pandas-Ökosystem über die SemPy Python-Bibliothek und
  • Semantische Modelle über den nativen Spark-Connector , der PySpark, Spark SQL, R und Scala unterstützt.

Datenkonnektivität über die SemPy Python-Bibliothek für Pandas-Benutzer

Die SemPy Python-Bibliothek ist Teil des Semantic Link-Features und richtet sich an Pandas-Benutzer*innen. SemPy bietet Funktionen, die den Datenabruf aus Tabellen, Berechnungen von Measuresund Ausführungen von DAX-Abfragen und -Metadaten umfassen.

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  

SemPy erweitert auch Pandas Dataframes mit zusätzlichen Metadaten, die aus der Power BI-Datenquelle heraus verbreitet wurden. Die Metadaten umfassen:

  • Power BI-Datenkategorien:
    • Geografisch: Adresse, Ort, Stadt usw.
    • URL: Web-URL, Bild-URL
    • Strichcode
  • Beziehungen zwischen Tabellen
  • Hierarchien

Unterstützung für Spark (PySpark, Spark SQL, R und Scala)

Mit dem nativen Spark-Connector für Semantic Link können Spark-Benutzer*innen auf Power BI-Tabellen und -Measures zugreifen. Der Connector ist sprachunabhängig und unterstützt PySpark, Spark SQL, R und Scala.

Um den nativen Spark-Connector zu verwenden, werden semantische Modelle als Spark-Namespaces dargestellt und Power BI-Tabellen als Spark-Tabellen transparent verfügbar gemacht.

Konfigurieren von Spark für die Verwendung des nativen Power BI Spark-Connectors:

spark.conf.set("spark.sql.catalog.pbi", "com.microsoft.azure.synapse.ml.powerbi.PowerBICatalog")

# Optionally, configure the workspace using its ID
# Resolve workspace name to ID using fabric.resolve_workspace_id("My workspace")
# Replace 00000000-0000-0000-0000-000000000000 with your own workspace ID
# spark.conf.set("spark.sql.catalog.pbi.workspace, "00000000-0000-0000-0000-000000000000")

Alle Tabellen im semantischen Modell Sales Datasetauflisten:

%%sql
SHOW TABLES FROM pbi.`Sales Dataset`

Anzeigen von Daten aus der Tabelle Customer im semantischen Modell Sales Dataset:

%%sql
SELECT * FROM pbi.`Sales Dataset`.Customer

Power BI-Measures sind über die virtuelle _Metrics-Tabelle zugänglich, um relationale Spark SQL mit mehrdimensionaler Power BI zu überbrücken. Im folgenden Beispiel sind Total Revenue und Revenue Budget Measures, die im semantischen Modell Sales Dataset definiert sind, während die verbleibenden Spalten Dimensionen sind. Die Aggregationsfunktion (z. B AVG) wird für Measures ignoriert und dient nur zur Konsistenz mit SQL.

Der Connector unterstützt prädikatbezogenes Pushdown der Berechnung von Spark-Ausdrücken in das Power BI-Modul, zum Beispiel von Customer[State] in ('CA', 'WA'), wodurch die Nutzung des optimierten Power BI-Moduls ermöglicht wird.

SELECT
    `Customer[Country/Region]`,
    `Industry[Industry]`,
    AVG(`Total Revenue`),
    AVG(`Revenue Budget`)
FROM
    pbi.`Sales Dataset`.`_Metrics`
WHERE
    `Customer[State]` in ('CA', 'WA')
GROUP BY
    `Customer[Country/Region]`,
    `Industry[Industry]`

Datenerweiterung mit Power BI-Measures

Der add_measure-Vorgang ist ein leistungsfähiges Feature von Semantic Link, mit dem Sie Daten mit Measures aus dem semantischen Modell erweitern können. Der add_measure-Vorgang ist nur in der SemPy Python-Bibliothek verfügbar und wird nicht vom nativen Spark-Connector unterstützt. Weitere Informationen zur add_measure-Methode finden Sie unter add_measure in der FabricDataFrame-Klasse

Um die SemPy-Python-Bibliothek zu verwenden, müssen Sie sie zuerst in Ihrem Notebook-Kernel installieren, indem Sie diesen Code in einer Notebook-Zelle ausführen:

Tipp

Im Code-Beispiel wird davon ausgegangen, dass Sie manuell einen FabricDataFrame mit Daten erstellt haben, die Sie mit Measures aus einem semantischen Modell erweitern möchten.

# %pip and import only needs to be done once per notebook
%pip install semantic-link
from sempy.fabric import FabricDataFrame

df = FabricDataFrame({
        "Sales Agent": ["Agent 1", "Agent 1", "Agent 2"],
        "Customer[Country/Region]": ["US", "GB", "US"],
        "Industry[Industry]": ["Services", "CPG", "Manufacturing"],
    }
)

joined_df = df.add_measure(["Total Revenue", "Total Budget"], dataset="Sales Dataset")

Der add_measure-Vorgang führt die folgenden Schritte aus:

  • Löst Spaltennamen auf: Die Spaltennamen im FabricDataFrame werden in Power BI-Dimensionen aufgelöst. Spaltennamen, die nicht im angegebenen semantischen Modell aufgelöst werden können, werden ignoriert (Informationen dazu finden Sie bei der unterstützten DAX-Syntax).
  • Definiert die Gruppierung nach Spalten mithilfe der aufgelösten Spaltennamen.
  • Berechnet ein oder mehrere Measures auf der Ebene der Gruppe.
  • Filtert das Ergebnis nach den vorhandenen Zeilen im FabricDataFrame.