Teilen über


REFRESH POLICY-Klausel

Gilt für:mit Häkchen markiert: Ja Databricks SQL mit Häkchen markiert: Ja Databricks Runtime

Von Bedeutung

Dieses Feature befindet sich in der Betaversion. Arbeitsbereichsadministratoren können den Zugriff auf dieses Feature über die Vorschauseite steuern. Siehe Verwalten von Azure Databricks-Vorschauen.

Fügt der materialisierten Ansicht eine Aktualisierungsrichtlinie hinzu, die steuert, wann die Aktualisierung inkrementellisiert werden soll. Gilt für die CREATE MATERIALIZED VIEW Anweisung.

Weitere Informationen zur Inkrementierung finden Sie unter Inkrementelle Aktualisierung für materialisierte Ansichten. Mit der EXPLAIN CREATE MATERIALIZED VIEW Anweisung können Sie überprüfen, ob eine SQL-Abfrage inkrementell ist. Siehe EXPLAIN CREATE MATERIALIZED VIEW.

Syntax

REFRESH POLICY refresh_policy

refresh_policy:
  AUTO | INCREMENTAL | INCREMENTAL STRICT | FULL

Die Parameter

  • refresh_policy

    Definiert eine Aktualisierungsrichtlinie für die materialisierte Ansicht. Wenn dies REFRESH POLICY nicht angegeben wird, AUTO ist die Standardrichtlinie.

    Die Aktualisierungsrichtlinie definiert, wie eine Aktualisierung die Inkrementierung der materialisierten Ansicht behandelt.

    • AUTO

      Das System wählt automatisch eine inkrementelle oder vollständige Aktualisierung basierend auf dem Kostenmodell aus.

      Staat Verhalten
      Inkrementell ist für die Aktualisierung verfügbar. Verwendet das Kostenmodell, um zu bestimmen, welches billiger, inkrementell oder vollständig ist.
      Inkrementell ist für die Aktualisierung nicht verfügbar. Führt eine vollständige Aktualisierung aus.
      Erstellen oder Erneute Initialisieren ist erforderlich (z. B. bei Schemaänderung) Führt eine vollständige Aktualisierung aus.
    • INCREMENTAL

      Das System verwendet nach Möglichkeit inkrementelle Aktualisierungen. Wenn CREATEdie Abfrage nicht inkrementellisiert werden kann, schlägt die Erstellung fehl.

      Staat Verhalten
      Inkrementell ist für die Aktualisierung verfügbar. Führt eine inkrementelle Aktualisierung aus.
      Inkrementell ist für die Aktualisierung nicht verfügbar. Führt eine vollständige Aktualisierung aus.
      Die Erstellung oder Erneute Initialisierung ist erforderlich, die inkrementelle Inkrementierung ist jedoch für die Abfrage möglich. Führt eine vollständige Aktualisierung aus.
      Die Erstellung oder Erneute Initialisierung ist erforderlich, und die Inkrementierung ist für die Abfrage nicht möglich. Der Vorgang schlägt fehl.
    • INCREMENTAL STRICT

      Das System verwendet inkrementelle Aktualisierungen. Wenn CREATEdie Abfrage nicht inkrementellisiert werden kann, schlägt die Erstellung fehl.

      Staat Verhalten
      Inkrementell ist für die Aktualisierung verfügbar. Führt eine inkrementelle Aktualisierung aus.
      Inkrementell ist für die Aktualisierung nicht verfügbar. Bei der Aktualisierung tritt ein Fehler auf.
      Die Erstellung oder Erneute Initialisierung ist erforderlich, die inkrementelle Inkrementierung ist jedoch für die Abfrage möglich. Führt eine vollständige Aktualisierung aus.
      Die Erstellung oder Erneute Initialisierung ist erforderlich, und die Inkrementierung ist für die Abfrage nicht möglich. Der Vorgang schlägt fehl.
    • FULL

      Das System verwendet immer eine vollständige Aktualisierung.

      Staat Verhalten
      Inkrementell ist für die Aktualisierung verfügbar. Führt eine vollständige Aktualisierung aus.
      Inkrementell ist für die Aktualisierung nicht verfügbar. Führt eine vollständige Aktualisierung aus.
      Die Erstellung oder Erneute Initialisierung ist erforderlich. Führt eine vollständige Aktualisierung aus.

Verhalten bei Fehlern

Wenn eine Aktualisierung fehlschlägt, da sie die Aktualisierungsrichtlinie (für REFRESH POLICY INCREMENTAL (STRICT)) nicht erfüllen kann, gibt das System eine Fehlerklasse MATERIALIZED_VIEW_NOT_INCREMENTALIZABLE mit detaillierten Informationen zurück, die den Grund für die Inkrementierung nicht beschreiben. Beispiel:

  • OPERATOR_NOT_SUPPORTED: Ein Operator, z. B. eine komplexe Verknüpfung, verhindert die Inkrementierung.
  • EXPRESSION_NOT_DETERMINSTIC: Eine nicht deterministische Funktion, z RAND. B. , wird in der Abfrage verwendet.

Informationen dazu, was eine Abfrage inkrementell machen kann, finden Sie unter "Inkrementelle Aktualisierung für materialisierte Ansichten".

Verwenden Sie die EXPLAINCREATE MATERIALIZED VIEW Anweisung, um zu überprüfen, ob eine SQL-Abfrage inkrementell ist. Siehe EXPLAIN CREATE MATERIALIZED VIEW.

Examples

-- Create a materialized view with an incremental policy
CREATE MATERIALIZED VIEW IF NOT EXISTS my_mv
REFRESH POLICY INCREMENTAL
AS SELECT a, sum(b) FROM my_catalog.example.my_table GROUP BY a;