Freigeben über


ALTER MATERIALIZED VIEW

Gilt für:mit Häkchen bei Ja versehen Databricks SQL

Ändert Metadaten, die der Sicht zugeordnet sind.

Ermöglicht das Ausführen der folgenden Aktionen:

  • Fügen Sie einen Zeitplan für das Aktualisieren einer vorhandenen materialisierten Sicht hinzu.
  • Ändern eines vorhandenen Aktualisierungszeitplans für eine materialisierte Ansicht
  • Löschen des Aktualisierungszeitplans für eine materialisierte Sicht Wenn der Zeitplan gelöscht wird, muss das Objekt manuell aktualisiert werden, um die neuesten Daten widerzuspiegeln.

Um einen Kommentar zu einer materialisierten Ansicht hinzuzufügen oder zu ändern, verwenden Sie COMMENT ON.

Hinweis

Das Ändern eines in einer Pipeline erstellten Datasets in einer Weise, die dem definierenden SQL widerspricht, kann dazu führen, dass einige Änderungen zurückgesetzt werden. Siehe Verwenden von ALTER Befehlen mit Lakeflow Spark Declarative Pipelines.

Syntax

ALTER MATERIALIZED VIEW view_name
  {
    { ADD | ALTER } schedule |
    DROP SCHEDULE |
    ALTER COLUMN column_clause |
    SET ROW FILTER clause |
    DROP ROW FILTER |
    SET TAGS clause |
    UNSET TAGS clause }

  schedule
    { SCHEDULE [ REFRESH ] schedule_clause |
      TRIGGER ON UPDATE [ AT MOST EVERY trigger_interval ] }

  schedule_clause
    { EVERY number { HOUR | HOURS | DAY | DAYS | WEEK | WEEKS } |
      CRON cron_string [ AT TIME ZONE timezone_id ] }

  column_clause
    column_identifier
    { COMMENT clause |
      SET MASK clause |
      DROP MASK |
      SET TAGS clause |
      UNSET TAGS clause }

Parameter

  • view_name

    Der Name der materialisierten Ansicht, um die Definition zu ändern. Der Name darf keine temporale Spezifikation enthalten.

  • Zeitplan

    Fügen Sie eine oder eine SCHEDULE Anweisung zur materialisierten Ansicht hinzu oder TRIGGER ändern Sie sie.

    Hinweis

    Sie können den Zeitplan einer materialisierten Ansicht, die mit Lakeflow Spark Declarative Pipelines mit diesem Befehl erstellt wurde, nicht ändern. Verwenden Sie den Pipeline-Editor.

    • SCHEDULE [ REFRESH ] schedule_clause

      • EVERY number { HOUR | HOURS | DAY | DAYS | WEEK | WEEKS }

        Verwenden Sie EVERY die Syntax, um eine aktualisierung zu planen, die in regelmäßigen Abständen auftritt. Wenn die Syntax EVERY angegeben ist, wird die Streaming-Tabelle oder materialisierte Ansicht regelmäßig in dem angegebenen Intervall aktualisiert, basierend auf dem angegebenen Wert, z. B. HOUR, HOURS, DAY, DAYS, WEEK oder WEEKS. In der folgenden Tabelle sind die akzeptierten Werte für ganze Zahlen von number aufgeführt.

        Zeiteinheit Ganzzahliger Wert
        HOUR or HOURS 1 <= H <= 72
        DAY or DAYS 1 <= D <= 31
        WEEK or WEEKS 1 <= W <= 8

        Hinweis

        Die Singular- und Pluralformen der enthaltenen Zeiteinheit sind semantisch gleichwertig.

      • CRON cron_string [ AT TIME ZONE timezone_id ]

        Zum Planen einer Aktualisierung mithilfe eines quartz cron-Werts. Gültige time_zone_values werden akzeptiert. AT TIME ZONE LOCAL wird nicht unterstützt.

        Fehlt AT TIME ZONE, wird die Sitzungszeitzone verwendet. Wenn AT TIME ZONE fehlt und die Sitzungszeitzone nicht festgelegt ist, wird ein Fehler ausgelöst. SCHEDULE ist semantisch äquivalent mit SCHEDULE REFRESH.

    • TRIGGER ON UPDATE [ AT MOST EVERY trigger_interval ]

      Von Bedeutung

      Das TRIGGER ON UPDATE Feature befindet sich in der Betaversion.

      Legt die materialisierte Ansicht fest, die aktualisiert werden soll, wenn eine upstream-Datenquelle mindestens einmal pro Minute aktualisiert wird. Legen Sie einen Wert fest, für AT MOST EVERY den mindestens eine Mindestzeit zwischen Aktualisierungen erforderlich ist.

      Die upstream-Datenquellen müssen externe oder verwaltete Delta-Tabellen (einschließlich materialisierter Ansichten oder Streamingtabellen) oder verwaltete Ansichten sein, deren Abhängigkeiten auf unterstützte Tabellentypen beschränkt sind.

      Durch das Aktivieren von Dateiereignissen können Trigger leistungsleistungsfähiger werden und einige der Grenzwerte für Triggerupdates erhöht werden.

      Dies trigger_interval ist eine INTERVAL-Anweisung , die mindestens 1 Minute beträgt.

      TRIGGER ON UPDATE hat die folgenden Einschränkungen:

      • Nicht mehr als 10 upstream-Datenquellen pro materialisierte Ansicht bei Verwendung von TRIGGER ON UPDATE.
      • Maximal 1000 Streamingtabellen oder materialisierte Ansichten können mit TRIGGER ON UPDATEangegeben werden.
      • Die AT MOST EVERY Klausel ist standardmäßig auf 1 Minute festgelegt und darf nicht kleiner als 1 Minute sein.
  • DROP SCHEDULE

    Entfernt einen Zeitplan aus der materialisierten Ansicht.

  • ALTER COLUMN clause

    Siehe ALTER-KlauselCOLUMN.

  • SET ROW FILTER Klausel

    Von Bedeutung

    Dieses Feature befindet sich in der Public Preview.

    Fügt der materialisierten Ansicht eine Zeilenfilterfunktion hinzu. Alle nachfolgenden Abfragen der materialisierten Ansicht erhalten eine Teilmenge der Zeilen, in denen die Funktion als boolescher TRUEWert ausgewertet wird. Dies kann für eine fein abgestufte Zugriffssteuerung nützlich sein, bei der die Funktion die Identität oder Gruppenmitgliedschaften der aufrufenden Benutzer überprüfen kann, um zu entscheiden, ob bestimmte Spalten gefiltert werden sollen.

    Zeilenfilter, die nach der Erstellung hinzugefügt wurden, werden nur nach dem nächsten Update an nachgelagerte Tabellen weitergegeben. Für fortlaufende Pipelines erfordert dies einen Pipelineneustart.

  • DROP ROW FILTER

    Von Bedeutung

    Dieses Feature befindet sich in der Public Preview.

    Legt den Zeilenfilter aus der materialisierten Ansicht ab, falls vorhanden. Zukünftige Abfragen geben alle Zeilen aus der Tabelle ohne automatische Filterung zurück.

  • SET TAGS ( { tag_name = tag_value } [, ...] )

    Von Bedeutung

    Dieses Feature befindet sich in der Public Preview.

    Anwenden von Tags auf die materialisierte Ansicht. Sie müssen über die APPLY TAG-Berechtigung zum Hinzufügen von Tags zur materialisierten Ansicht verfügen.

    • tag_name

      Ein STRING-Literal. Das tag_name muss innerhalb der materialisierten Ansicht oder Spalte eindeutig sein.

    • tag_value

      Ein STRING-Literal.

  • UNSET TAGS ( tag_name [, ...] )

    Von Bedeutung

    Dieses Feature befindet sich in der Public Preview.

    Entfernen Sie Tags aus der materialisierten Ansicht. Sie benötigen die APPLY TAG Berechtigung, um Tags aus der materialisierten Ansicht zu entfernen.

    • tag_name

      Ein STRING-Literal. Das tag_name muss innerhalb der materialisierten Ansicht oder Spalte eindeutig sein.

ALTER-Klausel COLUMN

Von Bedeutung

Dieses Feature befindet sich in der Public Preview.

Ändert eine Eigenschaft oder die Position einer Spalte.

Syntax

  ALTER COLUMN
    column_identifier
    { COMMENT comment |
      SET MASK mask_clause |
      DROP MASK |
      SET TAGS clause |
      UNSET TAGS clause }

Parameter

  • column_identifier

    Der Name der Spalte, die geändert werden soll.

  • COMMENT comment

    Ändert die Beschreibung der column_name-Spalte. comment muss ein STRING-Literal sein.

  • SET MASK-Klausel

    Fügt eine Spaltenmaskierungsfunktion hinzu, um sensible Daten zu anonymisieren. Alle nachfolgenden Abfragen aus dieser Spalte erhalten das Ergebnis der Auswertung dieser Funktion über der Spalte anstelle des ursprünglichen Werts der Spalte. Dies kann für eine präzise Zugriffssteuerung nützlich sein, bei der die Funktion die Identität oder Gruppenmitgliedschaft der aufrufenden Benutzenden überprüfen kann, um zu bestimmen, ob der Wert zurückgezogen werden soll.

    Spaltenmasken, die nach der Erstellung hinzugefügt wurden, werden erst mit dem nächsten Update in nachfolgende Tabellen weitergegeben. Für fortlaufende Pipelines erfordert dies einen Pipelineneustart.

  • DROP MASK

    Entfernt das Spaltenformat für diese Spalte, sofern vorhanden. Zukünftige Abfragen aus dieser Spalte erhalten die ursprünglichen Werte der Spalte.

  • SET TAGS ( { tag_name = tag_value } [, ...] )

    Wenden Sie Tags auf die Spalte an. Sie benötigen die Berechtigung APPLY TAG, um Tags zur Spalte hinzufügen zu können.

    • tag_name

      Ein STRING-Literal. tag_name muss innerhalb der Tabelle oder Spalte eindeutig sein.

    • tag_value

      Ein STRING-Literal.

  • UNSET TAGS ( tag_name [, ...] )

    Entfernen Sie die angegebenen Tags aus der Spalte. Sie benötigen die Berechtigung APPLY TAG, um Tags aus der Spalte entfernen zu können.

    • tag_name

      Ein STRING-Literal. tag_name muss innerhalb der Tabelle oder Spalte eindeutig sein.

Beispiele

-- Adds a schedule to refresh the materialized view whenever its upstream data gets updated.
> ALTER MATERIALIZED VIEW my_mv
    ADD TRIGGER ON UPDATE;

-- Alters the schedule to refresh the materialized view when its upstream data
-- gets updated, and make sure the update frequency is no more than 1 update
-- per hour.
> ALTER MATERIALIZED VIEW my_mv
    ALTER TRIGGER ON UPDATE AT MOST EVERY INTERVAL 1 hour;

-- Alters the schedule to run every two hours for a materialized view
> ALTER MATERIALIZED VIEW my_mv
    ALTER SCHEDULE EVERY 2 HOURS;

-- Alters the schedule to refresh a materialized view once a day
-- at midnight in Los Angeles
> ALTER MATERIALIZED VIEW my_mv
    ALTER SCHEDULE CRON '0 0 0 * * ? *' AT TIME ZONE 'America/Los_Angeles';

-- Drops the schedule for a materialized view
> ALTER MATERIALIZED VIEW my_mv
    DROP SCHEDULE;

-- Adds a column comment
> ALTER MATERIALIZED VIEW my_mv
    ALTER COLUMN my_column_name COMMENT 'test'