Udostępnij przez


REFRESH KLAUZULA POLICY

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime

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 .

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ą instrukcji EXPLAIN CREATE MATERIALIZED VIEW . 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. Jeśli CREATEzapytanie nie jest możliwe do przyrostowego, tworzenie 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. Jeśli CREATEzapytanie nie jest możliwe do przyrostowego, tworzenie 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 zakończy się niepowodzeniem, ponieważ nie może spełnić zasad odświeżania (dla REFRESH POLICY INCREMENTAL (STRICT)), system zwraca klasę MATERIALIZED_VIEW_NOT_INCREMENTALIZABLE błędów ze szczegółowymi informacjami, które opisują przyczynę braku możliwości przyrostowego. Przykład:

  • OPERATOR_NOT_SUPPORTED: Operator, taki jak złożone sprzężenie, uniemożliwia przyrostowe tworzenie.
  • EXPRESSION_NOT_DETERMINSTIC: Funkcja niedeterministyczna, na przykład RAND, jest używana w zapytaniu.

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 instrukcji EXPLAINCREATE MATERIALIZED VIEW . Zobacz: EXPLAIN CREATE MATERIALIZED VIEW.

Przykłady

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