Sdílet prostřednictvím


REFRESH Klauzule POLICY (kanály)

Důležité

Tato funkce je v beta verzi. Správci pracovního prostoru můžou řídit přístup k této funkci ze stránky Previews . Podívejte se na Správa náhledů Azure Databricks.

Přidá do materializovaného zobrazení zásadu aktualizace, která řídí, kdy se má aktualizace inkrementovat. Platí pro CREATE MATERIALIZED VIEW příkaz (pipelines).

Další informace o přírůstkové aktualizaci najdete v tématu Přírůstková aktualizace materializovaných zobrazení. Pomocí příkazu v Databricks SQL SQL můžete zkontrolovat, jestli je dotaz SQL přírůstkový EXPLAIN CREATE MATERIALIZED VIEW . Viz EXPLAIN CREATE MATERIALIZED VIEW.

Syntaxe

REFRESH POLICY refresh_policy

refresh_policy:
  AUTO | INCREMENTAL | INCREMENTAL STRICT | FULL

Parametry

  • refresh_policy

    Definuje zásadu aktualizace pro materializované zobrazení. Pokud je tento REFRESH POLICY parametr vynechán, AUTO jedná se o výchozí zásadu.

    Zásady aktualizace definují, jak aktualizace zpracovává přírůstkovou inkrementizaci materializovaného zobrazení.

    • AUTO

      Systém na základě modelu nákladů automaticky vybere přírůstkovou nebo úplnou aktualizaci.

      Stát Chování
      Přírůstkové aktualizace jsou k dispozici. Používá nákladový model k určení, která je levnější, přírůstková nebo úplná.
      Přírůstkové aktualizace nejsou k dispozici. Provede úplnou aktualizaci.
      Je vyžadováno vytvoření nebo opětovné inicializace (například při změně schématu). Provede úplnou aktualizaci.
    • INCREMENTAL

      Pokud je to možné, systém používá přírůstkové aktualizace. Pokud CREATEdotaz nelze inkrementalizovat, příkaz create selže.

      Stát Chování
      Přírůstkové aktualizace jsou k dispozici. Provede přírůstkovou aktualizaci.
      Přírůstková aktualizace není k dispozici. Provede úplnou aktualizaci.
      Vyžaduje se vytvoření nebo opětovné inicializace, ale pro dotaz je možné inicializaci přírůstkově. Provede úplnou aktualizaci.
      Je vyžadováno vytvoření nebo opětovné inicializace a pro dotaz není možné přírůstkovou inicializaci. Operace selže.
    • INCREMENTAL STRICT

      Systém používá přírůstkové aktualizace. Pokud CREATEdotaz nelze inkrementalizovat, příkaz create selže.

      Stát Chování
      Přírůstkové aktualizace jsou k dispozici. Provede přírůstkovou aktualizaci.
      Přírůstková aktualizace není k dispozici. Aktualizace se nezdaří.
      Vyžaduje se vytvoření nebo opětovné inicializace, ale pro dotaz je možné inicializaci přírůstkově. Provede úplnou aktualizaci.
      Je vyžadováno vytvoření nebo opětovné inicializace a pro dotaz není možné přírůstkovou inicializaci. Operace selže.
    • FULL

      Systém vždy používá úplnou aktualizaci.

      Stát Chování
      Přírůstkové aktualizace jsou k dispozici. Provede úplnou aktualizaci.
      Přírůstková aktualizace není k dispozici. Provede úplnou aktualizaci.
      Je vyžadováno vytvoření nebo opětovné inicializace. Provede úplnou aktualizaci.

Chování při selhání

Pokud aktualizace selže, protože nemůže splnit zásady aktualizace (pro REFRESH POLICY INCREMENTAL (STRICT)), systém vrátí chybovou třídu MATERIALIZED_VIEW_NOT_INCREMENTALIZABLE s podrobnými informacemi, které popisují důvod, proč není přírůstkové:

  • AGGREGATE_NOT_TOP_NODE: GROUP BY s výše uvedenými komplexními výrazy se nepodporuje.
  • EXPRESSION_NOT_DETERMINSTIC: V dotazu se používá ne deterministická funkce, například RAND.
  • INPUT_NOT_IN_DELTA: Jedna nebo více zdrojových datových sad nejsou tabulky Delta.
  • OPERATOR_NOT_INCREMENTALIZABLE: Operátor, například komplexní spojení, zabraňuje inkrementalizaci.
  • ROW_TRACKING_NOT_ENABLED: Zdrojové tabulky, které vyžadují sledování řádků, nemají povolené sledování řádků.
  • SUBQUERY_EXPRESSION_NOT_INCREMENTALIZABLE: Jeden nebo více poddotazů v dotazu není možné inkrementovat.
  • UDF_NOT_DETERMINISTIC: Jeden nebo více UDF použitých ve výrazu není označeno jako deterministické.
  • WINDOW_WITHOUT_PARTITION_BY: Specifikace oken bez PARTITION_BY inkrementovatelných.

Informace o tom, co dělá dotaz inkrementalizovatelný, najdete v tématu Přírůstková aktualizace materializovaných zobrazení.

Pokud chcete zkontrolovat, jestli je dotaz SQL přírůstkový, použijte EXPLAIN CREATE MATERIALIZED VIEW příkaz v Databricks SQL. Viz EXPLAIN CREATE MATERIALIZED VIEW.

Examples

-- 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;