REFRESH (MATERIALIZED VIEW oder STREAMING TABLE)

Gilt für:Häkchen Databricks SQL

Aktualisieren Sie die Daten für eine Streamingtabelle oder eine materialisierte Sicht. Die Daten werden standardmäßig synchron aktualisiert. Sie können den Status der Aktualisierung nachverfolgen, indem Sie DESCRIBE EXTENDED ausführen.

Hinweis

Erstellen und Aktualisieren von Vorgängen für materialisierte Ansichten und Streamingtabellen werden von serverlosen Lakeflow-Pipelines unterstützt. Sie können mit dem Katalog-Explorer Details zu den unterstützenden Pipelines auf der Benutzeroberfläche anzeigen. Weitere Informationen finden Sie unter Was ist der Katalog-Explorer?.

Hinweis

REFRESH MATERIALIZED VIEW gilt auch für materialisierte Metrikansichten. Verwenden Sie sie, um die Materialisierungen, die eine Metrikansicht sichern, manuell zu aktualisieren. Siehe Materialisierung für Metrikansichten.

Syntax

REFRESH { MATERIALIZED VIEW | [ STREAMING ] TABLE } table_name
  [ FULL ] [ WHERE predicate ] [ SYNC | ASYNC ]

Sie können eine beliebige Teilmenge von FULL, WHERE, und oder ASYNCSYNC in demselben Befehl angeben.

Parameter

  • table_name

    Gibt die materialisierte Sicht oder Streamingtabelle an, die aktualisiert werden soll. Der Name darf keine zeitliche Spezifikation oder Optionsspezifikation enthalten. Wenn das Objekt nicht gefunden wird, löst Azure Databricks den Fehler TABLE_OR_VIEW_NOT_FOUND aus.

  • VOLL

    Gibt an, ob eine vollständige Aktualisierung ausgeführt werden soll.

    • Bei materialisierten Sichten verarbeitet eine vollständige Aktualisierung alle Daten, die in der Quelle verfügbar sind.
    • Bei Streamingtabellen wird bei einer vollständigen Aktualisierung die Tabelle abgeschnitten, und alle in der Quelle verfügbaren Daten werden mit der neuesten Definition der Streamingtabelle verarbeitet.

    Es wird nicht empfohlen, vollständige Aktualisierungen für Quellen aufzurufen, die den gesamten Verlauf der Daten nicht beibehalten oder kurze Aufbewahrungsfristen haben, z. B. Kafka, da die vollständige Aktualisierung die vorhandenen Daten abschneidet. Möglicherweise können Sie alte Daten nicht wiederherstellen, wenn die Daten in der Quelle nicht mehr verfügbar sind.

  • WHEREPrädikat

    Gilt für:check markierte Ja-Streamingtabelle , die mit einer FLOW REPLACE WHERE Klausel erstellt wurde

    Überschreibt das Prädikat des Flusses REPLACE WHERE für diese einzelne Aktualisierung. Die Aktualisierung löscht nur die Zeilen, die mit dem Ziel übereinstimmen predicate , und kompensiert sie aus der Quelle. Das definierte Prädikat des Flusses ist unverändert und wird bei der nächsten Aktualisierung erneut angewendet, sodass eine Prädikatüberschreibung ein einmaliger Vorgang ist, der die Tabellendefinition nicht ändert. Verwenden Sie sie für einmalige Rückfüllungen oder Korrekturen. Siehe ERSETZEN-Flüsse WHERE für eigenständige Streamingtabellen.

    Die WHERE Klausel wird nur für eine Streamingtabelle unterstützt, deren Fluss mit FLOW REPLACE WHERE. Wenn Sie eine andere Streamingtabelle oder eine materialisierte Ansicht angeben WHERE , wird ein Fehler zurückgegeben.

  • SYNC

    Gibt an, ob eine synchrone Aktualisierung ausgeführt werden soll. Der Befehl blockiert, bis die materialisierte Sicht oder die Streamingtabelle erstellt wurde und der anfängliche Datenladevorgang abgeschlossen ist.

    Dies ist die Standardeinstellung.

  • ASYNCHRON

    Gibt an, ob eine asynchrone Aktualisierung ausgeführt werden soll, die einen Hintergrundauftrag für Lakeflow-Pipelines startet. Der Befehl wird unmittelbar vor Abschluss der Datenladevorgang mit einer Verknüpfung zur Pipeline zurückgegeben, die die materialisierte Ansicht oder Streamingtabelle sichert. Sie können den Link besuchen, um den Status der Aktualisierung anzuzeigen.

    Sie müssen ASYNC angeben, wenn Sie asynchrone Aktualisierungen ausführen möchten. Der Vorgang wird synchron ausgeführt, wenn kein Schlüsselwort angegeben wird.

Beispiele

-- Refreshes the materialized view to reflect the latest available data
> REFRESH MATERIALIZED VIEW catalog.schema.view_name;

-- Refreshes the streaming table to process the latest available data
-- The current catalog and schema will be used to qualify the table
> REFRESH STREAMING TABLE st_name;

-- Truncates the table and processes all data from scratch for the streaming table
> REFRESH STREAMING TABLE cat.db.st_name FULL;

-- Overrides the REPLACE WHERE predicate for a single asynchronous refresh.
-- Only rows matching id = 3 are recomputed. The flow's static predicate is unchanged.
> REFRESH STREAMING TABLE rep_st WHERE id = 3 ASYNC;