Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Dieser Artikel enthält eine Übersicht über die ältere Syntax und das Verhalten für das virtuelle LIVE Schema.
Das LIVE virtuelle Schema ist ein legacy-Feature von Lakeflow Spark Declarative Pipelines und gilt als veraltet. Sie können weiterhin den Legacyveröffentlichungsmodus und das LIVE virtuelle Schema für Pipelines verwenden, die mit diesem Modus erstellt wurden.
Databricks empfiehlt, alle Pipelines in den neuen Veröffentlichungsmodus zu migrieren. Sie haben zwei Optionen für die Migration:
- Verschieben Sie Tabellen (einschließlich materialisierter Ansichten und Streamingtabellen) aus einer Legacypipeline in eine Pipeline, die den standardveröffentlichungsmodus verwendet. Informationen zum Verschieben von Tabellen zwischen Pipelines finden Sie unter "Verschieben von Tabellen zwischen Pipelines".
- Aktivieren Sie den Standardveröffentlichungsmodus in einer Pipeline, die derzeit den Legacyveröffentlichungsmodus verwendet. Siehe Aktivieren des Standardveröffentlichungsmodus in einer Pipeline.
Beide Methoden sind unidirektionale Migrationen. Tabellen können nicht wieder in den Legacymodus migriert werden.
Die Unterstützung für ältere LIVE virtuellen Schemas und den Legacy-Veröffentlichungsmodus wird in einer zukünftigen Version von Azure Databricks entfernt.
Hinweis
Legacy-Publishing-Mode-Pipelines werden im Summary-Feld der Einstellungen-Benutzeroberfläche von Lakeflow Spark Declarative Pipelines angezeigt. Sie können auch bestätigen, dass eine Pipeline den Legacy-Veröffentlichungsmodus verwendet, wenn das target Feld in der JSON-Spezifikation für die Pipeline festgelegt ist.
Sie können die Pipelinekonfigurations-UI nicht verwenden, um neue Pipelines mit dem älteren Veröffentlichungsmodus zu erstellen. Wenn Sie neue Pipelines mit der älteren LIVE-Syntax bereitstellen müssen, wenden Sie sich an Ihren Databricks-Kundenbetreuer.
Was ist das LIVE-virtuelle Schema?
Hinweis
Das LIVE virtuelle Schema ist nicht mehr erforderlich, um die Datasetabhängigkeit im Standardveröffentlichungsmodus für Lakeflow Spark Declarative Pipelines zu analysieren.
Das LIVE Schema ist ein Programmierkonzept in Lakeflow Spark Declarative Pipelines, das eine virtuelle Grenze für alle Datasets definiert, die in einer Pipeline erstellt oder aktualisiert wurden. Standardmäßig ist das LIVE Schema nicht direkt an Datasets in einem veröffentlichten Schema gebunden. Stattdessen kann das LIVE Schema die Logik in einer Pipeline planen und ausführen, auch wenn ein Benutzer Datasets nicht in einem Schema veröffentlichen möchte.
In Pipelines im Legacyveröffentlichungsmodus können Sie das Schlüsselwort LIVE verwenden, um lesend auf andere Datensätze in der aktuellen Pipeline zuzugreifen, z. B. SELECT * FROM LIVE.bronze_table. Im Standardveröffentlichungsmodus für neue Lakeflow Spark Declarative Pipelines wird diese Syntax im Hintergrund ignoriert, was bedeutet, dass nicht qualifizierte Bezeichner das aktuelle Schema verwenden. Siehe Festlegen des Zielkatalogs und des Schemas.
Legacyveröffentlichungsmodus für Pipelines
Das LIVE virtuelle Schema wird mit dem legacy-Veröffentlichungsmodus für Lakeflow Spark Declarative Pipelines verwendet. Alle Tabellen, die vor dem 5. Februar 2025 erstellt wurden, verwenden standardmäßig den Legacyveröffentlichungsmodus.
In der folgenden Tabelle wird das Verhalten für alle materialisierten Ansichten und Streamingtabellen beschrieben, die in einer Pipeline im Legacy-Veröffentlichungsmodus erstellt oder aktualisiert wurden:
| Speicheroption | Speicherort oder Katalog | Zielschema | Verhalten |
|---|---|---|---|
| Hive metastore | Keine angegeben | Keine angegeben | Dataset-Metadaten und -daten werden im DBFS-Root gespeichert. Für den Hive-Metaspeicher sind keine Datenbankobjekte registriert. |
| Hive metastore | Ein URI oder Dateipfad zum Cloudobjektspeicher. | Keine angegeben | Datasetmetadaten und -daten werden am angegebenen Speicherort gespeichert. Für den Hive-Metaspeicher sind keine Datenbankobjekte registriert. |
| Hive metastore | Keine angegeben | Ein vorhandenes oder neues Schema im Hive-Metaspeicher. | Dataset-Metadaten und -daten werden im DBFS-Root gespeichert. Alle materialisierten Sichten und Streamingtabellen in der Pipeline werden im angegebenen Schema im Hive-Metastore veröffentlicht. |
| Hive metastore | Ein URI oder Dateipfad zum Cloudobjektspeicher. | Ein vorhandenes oder neues Schema im Hive-Metaspeicher. | Datasetmetadaten und -daten werden am angegebenen Speicherort gespeichert. Alle materialisierten Sichten und Streamingtabellen in der Pipeline werden im angegebenen Schema im Hive-Metastore veröffentlicht. |
| Unity-Katalog | Ein vorhandener Unity Catalog-Katalog. | Keine angegeben | Datasetmetadaten und -daten werden am Standardspeicherort gespeichert, der dem Zielkatalog zugeordnet ist. Im Unity-Katalog sind keine Datenbankobjekte registriert. |
| Unity-Katalog | Ein vorhandener Unity Catalog-Katalog. | Ein vorhandenes oder neues Schema im Unity-Katalog. | Datasetmetadaten und -daten werden am Standardspeicherort gespeichert, der dem Zielschema oder Katalog zugeordnet ist. Alle materialisierten Sichten und Streamingtabellen in der Pipeline werden im angegebenen Schema in Unity Catalog veröffentlicht. |
Aktualisieren des Quellcodes aus dem LIVE-Schema
Pipelines, die für die Ausführung mit dem neuen Standardveröffentlichungsmodus konfiguriert sind, ignorieren die LIVE Schemasyntax automatisch. Standardmäßig verwenden alle Tabellenlese den Katalog und das Schema, das in der Pipelinekonfiguration angegeben ist.
Für die meisten vorhandenen Pipelines hat diese Verhaltensänderung keine Auswirkungen, da das Legacy-LIVE-Verhalten des virtuellen Schemas ebenso Lesevorgänge an den im Pipeline-Konfiguration angegebenen Katalog und das Schema weiterleitet.
Von Bedeutung
Legacy-Code mit Leseoperationen, die den Standardkatalog und das Schema des Arbeitsbereichs nutzen, erfordern Aktualisierungen des Codes. Betrachten Sie die folgende materialisierte Ansichtsdefinition:
CREATE MATERIALIZED VIEW silver_table
AS SELECT * FROM raw_data
Im Legacyveröffentlichungsmodus verwendet ein nicht qualifizierter Lesevorgang aus der raw_data-Tabelle den Standardkatalog und das Standardschema des Arbeitsbereichs, z. B. main.default.raw_data. Im neuen Standardpipelinemodus sind der standardmäßig verwendete Katalog und das Schema in der Pipelinekonfiguration festgelegt. Um sicherzustellen, dass dieser Code wie erwartet funktioniert, aktualisieren Sie den Verweis so, dass er den vollqualifizierten Bezeichner für die Tabelle verwendet, wie im folgenden Beispiel:
CREATE MATERIALIZED VIEW silver_table
AS SELECT * FROM main.default.raw_data
Arbeiten mit Ereignisprotokollen für Legacyveröffentlichungsmodus-Pipelines in Unity Catalog
Von Bedeutung
TVF event_log ist für Pipelines im Legacyveröffentlichungsmodus verfügbar, die Tabellen in Unity Catalog veröffentlichen. Das Standardverhalten für neue Pipelines veröffentlicht das Ereignisprotokoll im Zielkatalog und Schema, der bzw. das für die Pipeline konfiguriert ist. Siehe Abfrage des Ereignisprotokolls.
Tabellen, die mit dem Hive-Metastore konfiguriert sind, weisen auch unterschiedliche Unterstützung und Verhalten des Ereignisprotokolls auf. Siehe "Arbeiten mit dem Ereignisprotokoll für Hive-Metastore-Pipelines".
Wenn Ihre Pipeline Tabellen im Unity-Katalog mit dem älteren Veröffentlichungsmodus veröffentlicht, müssen Sie die event_logTabellenwertfunktion (TVF) verwenden, um das Ereignisprotokoll für die Pipeline abzurufen. Sie rufen das Ereignisprotokoll für eine Pipeline ab, indem Sie die Pipeline-ID oder einen Tabellennamen an die TVF übergeben. So rufen Sie beispielsweise die Ereignisprotokolldatenschätze für die Pipeline mit der ID 04c78631-3dd7-4856-b2a6-7d84e9b2638b ab:
SELECT * FROM event_log("04c78631-3dd7-4856-b2a6-7d84e9b2638b")
So rufen Sie die Ereignisprotokolldatensätze für die Pipeline ab, welche die Tabelle my_catalog.my_schema.table1 erstellt oder besitzt:
SELECT * FROM event_log(TABLE(my_catalog.my_schema.table1))
Um die TVF aufzurufen, müssen Sie einen freigegebenen Cluster oder ein SQL-Warehouse verwenden. Sie können z. B. den SQL-Editor verwenden, der mit einem SQL Warehouse verbunden ist.
Um das Abfragen von Ereignissen für eine Pipeline zu vereinfachen, kann der Besitzer der Pipeline eine Ansicht über die event_log-TVF erstellen. Das folgende Beispiel erstellt eine Ansicht über dem Ereignisprotokoll für eine Pipeline. Diese Ansicht wird in den Beispielereignisprotokollabfragen in diesem Artikel verwendet.
Hinweis
- Der
event_logTVF kann nur vom Pipelinebesitzer aufgerufen werden. - Sie können die
event_logTabellenwertfunktion in einer Pipeline oder Abfrage nicht verwenden, um auf die Ereignisprotokolle mehrerer Pipelines zuzugreifen. - Sie können eine Ansicht, die über die
event_logTabellenwertfunktion erstellt wurde, nicht für andere Benutzer freigeben.
CREATE VIEW event_log_raw AS SELECT * FROM event_log("<pipeline-ID>");
Ersetzen Sie <pipeline-ID> mit dem eindeutigen Bezeichner für die Pipeline. Die ID finden Sie im Bereich "Pipelinedetails " in der Benutzeroberfläche von Lakeflow Spark Declarative Pipelines.
Jede Instanz einer Pipelineausführung wird als Update bezeichnet. Sie möchten häufig Informationen für das neueste Update extrahieren. Führen Sie die folgende Abfrage aus, um den Bezeichner für das neueste Update zu suchen und in der temporären latest_update_id-Ansicht zu speichern. Diese Ansicht wird in den Beispielereignisprotokollabfragen in diesem Artikel verwendet:
CREATE OR REPLACE TEMP VIEW latest_update AS SELECT origin.update_id AS id FROM event_log_raw WHERE event_type = 'create_update' ORDER BY timestamp DESC LIMIT 1;