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.
Mithilfe von Spark-Ansichten in Microsoft Fabric können Sie komplexe Datenmodellierungslogik abstrahieren und einen vereinfachten Zugriff ermöglichen, ohne Daten zu duplizieren. Ansichten speichern keine Daten – sie führen die zugrunde liegende Abfrage jedes Mal aus, wenn Sie sie auswählen, sodass Sie Echtzeitergebnisse erhalten.
Wenn Sie mit materialisierten Seeansichten vertraut sind, die Ergebnisse als Delta-Dateien beibehalten (häufig in Medallion-Architekturen verwendet), bieten Spark-Ansichten eine einfache Alternative, wenn Sie die Daten nicht speichern müssen.
Dieser Artikel beschreibt, wie man Spark-Ansichten in schema-fähigen Seehäusern erstellt und verwaltet, wobei Ansichten in OneLake gespeichert und im Lakehouse Explorer sichtbar sind. Wenn Sie mit nicht schemafähigen Lakehouses arbeiten, lesen Sie Informationen zu Spark-Ansichten mit nicht schemafähigen Lakehouses.
Wie werden Spark-Ansichten gespeichert?
In schemafähigen Lakehouses werden Ansichtsmetadaten zusammen mit Ihren Tabellen in OneLake gespeichert, aber als Dateien und nicht als Ordner. Dieser Ansatz:
- Verhindert Namenskonflikte zwischen Ansichten und Tabellen
- Verwendet eine spezielle Dateieigenschaft, die es Engines ermöglicht, das Objekt als Ansicht zu identifizieren.
Derzeit können nur Spark und das Lakehouse Spark-Ansichten lesen. Andere Fabric-Workloads, z. B. SQL-Analyseendpunkt oder semantische Modelle, erkennen noch keine Spark-Ansichten.
Erstellen einer Spark-Ansicht
Verwenden Sie zum Erstellen einer Spark-Ansicht eine Notebook-Sitzung mit einem schema-aktivierten Lakehouse als Ihr standardmäßiges Lakehouse. Ausführen einer Spark SQL-Anweisung mit CREATE OR REPLACE VIEW:
CREATE OR REPLACE VIEW my_view AS
SELECT * FROM my_table WHERE status = 'active'
Sie können beispielsweise eine Ansicht erstellen, die zum Filtern von Umsatzdaten für eine bestimmte Region benannt ny_sales ist.
Die Ansicht erscheint im Lakehouse-Explorer unter deinem Schema nach dem Aktualisieren.
Cross-Lakehouse-Abfragen
Spark-Ansichten können auf Daten aus mehreren Lakehouses zugreifen. Verbinden Sie Tabellen aus unterschiedlichen Lakehouses – oder sogar aus verschiedenen Arbeitsbereichen – in einer einzigen Ansicht.
CREATE OR REPLACE VIEW my_view AS
SELECT * FROM myworkspace.mylakehouse.schema.my_table as a
JOIN otherworkspace.otherlakehouse.schema.my_other_table as b
ON a.identifier=b.identifier WHERE a.status = 'active'
Geben Sie den Ansichtsspeicherort an
Erstellen Sie Ansichten in Ihrem Standardseehaus, oder geben Sie einen vierteiligen Namen für jedes Seehaus an, auf das Sie Zugriff haben:
CREATE OR REPLACE VIEW myworkspace.mylakehouse.schema.my_view AS
SELECT * FROM my_table WHERE status = 'active'
Weitere Informationen zur Benennung von vier Teilen finden Sie unter Cross-Workspace Spark SQL-Abfragen.
Ansichten in Lakehouse Explorer verwalten
Nach der Erstellung erscheint deine Spark-Ansicht im Lakehouse-Explorer neben deinen Tabellen. Im Kontextmenü der Ansicht haben Sie folgende Möglichkeiten:
Umbenennen der Ansicht
Löschen der Ansicht
Anzeigen von Eigenschaften, einschließlich der zugrunde liegenden Abfragedefinition
Spark-Ansichten mit nicht schemafähigen Seehäusern
Wenn das Standard-Lakehouse Ihres Notizbuchs nicht schema-unterstützt ist, werden Spark-Views im Metastore erstellt. Diese Spark-Ansichten sind in Lakehouse Explorer nicht sichtbar. Nur in OneLake gespeicherte Ansichten erscheinen in Lakehouse Explorer.
Wenn Sie eine in OneLake gespeicherte Spark-Ansicht für ein nicht schemafähiges Lakehouse erstellen möchten, verwenden Sie eine Notizbuchsitzung mit einem schemafähigen Lakehouse als Standard, und verweisen Sie in Ihrer Abfrage auf das nicht schemafähige Lakehouse:
CREATE OR REPLACE VIEW myworkspace.non_schema_lakehouse.my_view AS
SELECT * FROM myworkspace.non_schema_lakehouse.my_table AS table
WHERE table.status = 'active'