Udostępnij przez


REFRESH KLAUZULA POLICY (potoki)

Ważne

Ta funkcja jest dostępna w wersji beta. Administratorzy obszaru roboczego mogą kontrolować dostęp do tej funkcji ze strony Podglądy . Zobacz Zarządzanie wersjami zapoznawczami usługi Azure Databricks.

Dodaje zasady odświeżania do zmaterializowanego widoku, kontrolując, kiedy zwiększać odświeżanie. Dotyczy instrukcji CREATE MATERIALIZED VIEW (pipelines).

Aby dowiedzieć się więcej na temat przyrostowego odświeżania, zobacz Odświeżanie przyrostowe dla zmaterializowanych widoków. Możesz sprawdzić, czy zapytanie SQL jest przyrostowe, za pomocą EXPLAIN CREATE MATERIALIZED VIEW instrukcji w usłudze Databricks SQL. Zobacz: EXPLAIN CREATE MATERIALIZED VIEW.

Składnia

REFRESH POLICY refresh_policy

refresh_policy:
  AUTO | INCREMENTAL | INCREMENTAL STRICT | FULL

Parametry

  • refresh_policy

    Definiuje zasady odświeżania dla zmaterializowanego widoku. REFRESH POLICY Jeśli parametr zostanie pominięty, AUTO to zasady domyślne.

    Zasady odświeżania określają sposób obsługi odświeżania przyrostowego zmaterializowanego widoku.

    • AUTO

      System automatycznie wybiera odświeżanie przyrostowe lub pełne na podstawie modelu kosztów.

      State Zachowanie
      Odświeżanie przyrostowe jest dostępne. Używa modelu kosztów, aby określić, który jest tańszy, przyrostowy lub pełny.
      Odświeżanie przyrostowe nie jest dostępne. Wykonuje pełne odświeżanie.
      Tworzenie lub ponowne inicjowanie jest wymagane (na przykład w przypadku zmiany schematu) Wykonuje pełne odświeżanie.
    • INCREMENTAL

      System używa odświeżania przyrostowego, jeśli jest to możliwe. W systemie CREATE, jeśli nie można zwiększać zapytania, instrukcja create kończy się niepowodzeniem.

      State Zachowanie
      Odświeżanie przyrostowe jest dostępne. Wykonuje odświeżanie przyrostowe.
      Odświeżanie przyrostowe nie jest dostępne. Wykonuje pełne odświeżanie.
      Tworzenie lub ponowne inicjowanie jest wymagane, ale dla zapytania jest możliwe przyrostowe. Wykonuje pełne odświeżanie.
      Tworzenie lub ponowne inicjowanie jest wymagane, a przyrostowa nie jest możliwa dla zapytania. Operacja kończy się niepowodzeniem.
    • INCREMENTAL STRICT

      System używa odświeżania przyrostowego. W systemie CREATE, jeśli nie można zwiększać zapytania, instrukcja create kończy się niepowodzeniem.

      State Zachowanie
      Odświeżanie przyrostowe jest dostępne. Wykonuje odświeżanie przyrostowe.
      Odświeżanie przyrostowe nie jest dostępne. Odświeżanie kończy się niepowodzeniem.
      Tworzenie lub ponowne inicjowanie jest wymagane, ale dla zapytania jest możliwe przyrostowe. Wykonuje pełne odświeżanie.
      Tworzenie lub ponowne inicjowanie jest wymagane, a przyrostowa nie jest możliwa dla zapytania. Operacja kończy się niepowodzeniem.
    • FULL

      System zawsze używa pełnego odświeżania.

      State Zachowanie
      Odświeżanie przyrostowe jest dostępne. Wykonuje pełne odświeżanie.
      Odświeżanie przyrostowe nie jest dostępne. Wykonuje pełne odświeżanie.
      Wymagane jest utworzenie lub ponowne zainicjowanie. Wykonuje pełne odświeżanie.

Zachowanie w przypadku awarii

Gdy odświeżanie kończy się niepowodzeniem, ponieważ nie może spełniać zasad odświeżania (dla REFRESH POLICY INCREMENTAL (STRICT)), system zwraca klasę MATERIALIZED_VIEW_NOT_INCREMENTALIZABLE błędów ze szczegółowymi informacjami opisujący przyczynę braku możliwości przyrostowego:

  • AGGREGATE_NOT_TOP_NODE: GROUP BY z wyrażeniami złożonymi powyżej nie jest obsługiwany.
  • EXPRESSION_NOT_DETERMINSTIC: Funkcja niedeterministyczna, na przykład RAND, jest używana w zapytaniu.
  • INPUT_NOT_IN_DELTA: Co najmniej jeden źródłowy zestaw danych nie jest tabelami różnicowymi.
  • OPERATOR_NOT_INCREMENTALIZABLE: Operator, taki jak złożone sprzężenie, uniemożliwia przyrostowe tworzenie.
  • ROW_TRACKING_NOT_ENABLED: Tabele źródłowe wymagające śledzenia wierszy nie mają włączonego śledzenia wierszy.
  • SUBQUERY_EXPRESSION_NOT_INCREMENTALIZABLE: Co najmniej jedno podzapytywanie w zapytaniu nie jest zwiększalne.
  • UDF_NOT_DETERMINISTIC: co najmniej jeden uDF używany w wyrażeniu nie jest oznaczony jako deterministyczny.
  • WINDOW_WITHOUT_PARTITION_BY: specyfikacje okien bez PARTITION_BY nie są przyrostowe.

Aby zrozumieć, co sprawia, że zapytanie jest przyrostowe, zobacz Odświeżanie przyrostowe dla zmaterializowanych widoków.

Aby sprawdzić, czy zapytanie SQL jest przyrostowe, użyj EXPLAIN CREATE MATERIALIZED VIEW instrukcji w usłudze Databricks SQL. Zobacz: EXPLAIN CREATE MATERIALIZED VIEW.

Przykłady

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