Delen via


REFRESH POLICY-component (pijplijnen)

Belangrijk

Deze functie bevindt zich in de bètaversie. Werkruimtebeheerders kunnen de toegang tot deze functie beheren vanaf de pagina Previews . Zie Azure Databricks-previews beheren.

Hiermee voegt u een vernieuwingsbeleid toe aan de gerealiseerde weergave, waarmee u kunt bepalen wanneer u het vernieuwen incrementeel wilt maken. Is van toepassing op de CREATE MATERIALIZED VIEW instructie (pijplijnen ).

Zie Incrementeel vernieuwen voor gerealiseerde weergaven voor meer informatie over incrementele vernieuwing. U kunt controleren of een SQL-query incrementeel kan worden uitgevoerd met de EXPLAIN CREATE MATERIALIZED VIEW instructie in Databricks SQL. Zie EXPLAIN CREATE MATERIALIZED VIEW.

Syntaxis

REFRESH POLICY refresh_policy

refresh_policy:
  AUTO | INCREMENTAL | INCREMENTAL STRICT | FULL

Parameterwaarden

  • refresh_policy

    Hiermee definieert u een vernieuwingsbeleid voor de gerealiseerde weergave. Als u de REFRESH POLICY optie weglaat, AUTO is dit het standaardbeleid.

    Het vernieuwingsbeleid definieert hoe een vernieuwing incrementele verwerking van de gerealiseerde weergave afhandelt.

    • AUTO

      Het systeem selecteert automatisch incrementeel of volledig vernieuwen, op basis van het kostenmodel.

      Staat Gedrag
      Incrementeel is beschikbaar voor het vernieuwen. Maakt gebruik van het kostenmodel om te bepalen welke goedkoper, incrementeel of volledig is.
      Incrementeel is niet beschikbaar voor vernieuwen. Voert een volledige vernieuwing uit.
      Maken of opnieuw initialiseren is vereist (bijvoorbeeld bij schemawijziging) Voert een volledige vernieuwing uit.
    • INCREMENTAL

      Het systeem gebruikt indien mogelijk incrementele vernieuwingen. Als CREATEde query niet kan worden incrementeel gemaakt, mislukt de instructie maken.

      Staat Gedrag
      Incrementeel is beschikbaar voor het vernieuwen. Voert een incrementele vernieuwing uit.
      Incrementeel is niet beschikbaar voor het vernieuwen. Voert een volledige vernieuwing uit.
      Het maken of opnieuw initialiseren is vereist, maar incrementeel maken is mogelijk voor de query. Voert een volledige vernieuwing uit.
      Het maken of opnieuw initialiseren is vereist en incrementeel maken is niet mogelijk voor de query. De bewerking mislukt.
    • INCREMENTAL STRICT

      Het systeem maakt gebruik van incrementele vernieuwingen. Als CREATEde query niet kan worden incrementeel gemaakt, mislukt de instructie maken.

      Staat Gedrag
      Incrementeel is beschikbaar voor het vernieuwen. Voert een incrementele vernieuwing uit.
      Incrementeel is niet beschikbaar voor het vernieuwen. De vernieuwing mislukt.
      Het maken of opnieuw initialiseren is vereist, maar incrementeel maken is mogelijk voor de query. Voert een volledige vernieuwing uit.
      Het maken of opnieuw initialiseren is vereist en incrementeel maken is niet mogelijk voor de query. De bewerking mislukt.
    • FULL

      Het systeem gebruikt altijd een volledige vernieuwing.

      Staat Gedrag
      Incrementeel is beschikbaar voor het vernieuwen. Voert een volledige vernieuwing uit.
      Incrementeel is niet beschikbaar voor het vernieuwen. Voert een volledige vernieuwing uit.
      Het maken of opnieuw initialiseren is vereist. Voert een volledige vernieuwing uit.

Gedrag bij fouten

Wanneer een vernieuwing mislukt omdat het niet kan voldoen aan het vernieuwingsbeleid (voor REFRESH POLICY INCREMENTAL (STRICT)), retourneert het systeem een foutklasse MATERIALIZED_VIEW_NOT_INCREMENTALIZABLE met gedetailleerde informatie die de reden beschrijft waarom het niet incrementeel kan worden gemaakt:

  • AGGREGATE_NOT_TOP_NODE: GROUP BY met complexe expressies erboven wordt deze niet ondersteund.
  • EXPRESSION_NOT_DETERMINSTIC: Een niet-deterministische functie, zoals RAND, wordt gebruikt in de query.
  • INPUT_NOT_IN_DELTA: Een of meer brongegevenssets zijn geen Delta-tabellen.
  • OPERATOR_NOT_INCREMENTALIZABLE: Een operator, zoals een complexe join, voorkomt incrementeelisering.
  • ROW_TRACKING_NOT_ENABLED: Voor brontabellen waarvoor het bijhouden van rijen is vereist, is het bijhouden van rijen niet ingeschakeld.
  • SUBQUERY_EXPRESSION_NOT_INCREMENTALIZABLE: Een of meer subquery's in uw query kunnen niet incrementeel worden uitgevoerd.
  • UDF_NOT_DETERMINISTIC: Een of meer UDF's die in de expressie worden gebruikt, worden niet gemarkeerd als deterministisch.
  • WINDOW_WITHOUT_PARTITION_BY: Vensterspecificaties zonder PARTITION_BY zijn niet incrementeel te maken.

Zie Incrementeel vernieuwen voor gerealiseerde weergaven om te begrijpen wat een query incrementeel maakt.

Als u wilt controleren of een SQL-query incrementalizeerbaar is, gebruikt u de EXPLAIN CREATE MATERIALIZED VIEW instructie in Databricks SQL. Zie EXPLAIN CREATE MATERIALIZED VIEW.

Voorbeelden

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