REFRESH (MATERIALIZED VIEW lub STREAMING TABLE)

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL

Odśwież dane w tabeli strumieniowej lub widoku materializowanego. Dane są domyślnie odświeżane synchronicznie. Stan odświeżania można śledzić, wykonując polecenie DESCRIBE EXTENDED.

Uwaga

Operacje tworzenia i odświeżania w zmaterializowanych widokach i tabelach przesyłania strumieniowego są obsługiwane przez bezserwerowe potoki lakeflow. Eksplorator wykazu umożliwia wyświetlanie szczegółowych informacji o potokach tworzenia kopii zapasowych w interfejsie użytkownika. Zobacz Co to jest Eksplorator wykazu?.

Uwaga

REFRESH MATERIALIZED VIEW dotyczy również zmaterializowanych widoków metryk. Użyj go, aby ręcznie odświeżyć materializacje, które są kopią zapasową widoku metryki. Zobacz Materialization for metric views (Materializacja widoków metryk).

Składnia

REFRESH { MATERIALIZED VIEW | [ STREAMING ] TABLE } table_name
  [ FULL ] [ WHERE predicate ] [ SYNC | ASYNC ]

W tym samym poleceniu można określić dowolny podzbiór FULLwartości , WHEREi SYNC lub ASYNC .

Parametry

  • table_name

    Identyfikuje zmaterializowany widok lub tabelę przesyłania strumieniowego do odświeżenia. Nazwa nie może zawierać specyfikacji czasowej ani specyfikacji opcji. Jeśli nie można odnaleźć obiektu usługi Azure Databricks, wystąpi błąd TABLE_OR_VIEW_NOT_FOUND .

  • PEŁNY

    Czy wykonać pełne odświeżanie.

    • W przypadku zmaterializowanych widoków pełne odświeżanie przetwarza wszystkie dane dostępne w źródle.
    • W przypadku tabel przesyłania strumieniowego pełne odświeżanie obcina tabelę i przetwarza wszystkie dane dostępne w źródle przy użyciu najnowszej definicji tabeli przesyłania strumieniowego.

    Nie zaleca się wywoływania pełnych odświeżeń w źródłach, które nie przechowują całej historii danych lub mają krótkie okresy przechowywania, takie jak Kafka, ponieważ pełne odświeżanie obcina istniejące dane. Odzyskanie starych danych może nie być możliwe, jeśli dane nie są już dostępne w źródle.

  • WHERE predykat

    Dotyczy:sprawdzanie oznaczonej tak tabeli przesyłania strumieniowego utworzonej za pomocą klauzuli FLOW REPLACE WHERE

    Zastępuje predykat przepływu REPLACE WHERE dla tego pojedynczego odświeżania. Odświeżanie usuwa tylko wiersze pasujące predicate z obiektu docelowego i ponownie je skompiluje ze źródła. Zdefiniowany predykat przepływu pozostaje niezmieniony i jest stosowany ponownie podczas następnego odświeżania, dlatego zastąpienie predykatu jest jednorazową operacją, która nie modyfikuje definicji tabeli. Użyj go na potrzeby jednorazowych uzupełnień lub poprawek. Zobacz Zastępowanie WHERE przepływów dla autonomicznych tabel przesyłania strumieniowego.

    Klauzula jest obsługiwana WHERE tylko w tabeli przesyłania strumieniowego, której przepływ został utworzony za pomocą FLOW REPLACE WHEREpolecenia . Określenie WHERE dowolnej innej tabeli przesyłania strumieniowego lub w zmaterializowanym widoku zwraca błąd.

  • SYNC

    Czy przeprowadzić synchroniczne odświeżanie. Polecenie jest zablokowane do momentu utworzenia zmaterializowanego widoku lub tabeli strumieniowej i zakończenia początkowego ładowania danych.

    To jest zachowanie domyślne.

  • ASYNC

    Czy przeprowadzić odświeżanie asynchroniczne, które uruchamia zadanie w tle w potokach lakeflow. Polecenie zwraca natychmiast przed zakończeniem ładowania danych, dostarczając link do potoku obsługującego zmaterializowany widok lub tabelę przesyłania strumieniowego. Możesz odwiedzić link, aby wyświetlić stan odświeżania.

    Należy określić ASYNC , czy chcesz wykonywać operacje odświeżania asynchronicznego. Operacja jest wykonywana synchronicznie, jeśli nie określono słowa kluczowego.

Przykłady

-- Refreshes the materialized view to reflect the latest available data
> REFRESH MATERIALIZED VIEW catalog.schema.view_name;

-- Refreshes the streaming table to process the latest available data
-- The current catalog and schema will be used to qualify the table
> REFRESH STREAMING TABLE st_name;

-- Truncates the table and processes all data from scratch for the streaming table
> REFRESH STREAMING TABLE cat.db.st_name FULL;

-- Overrides the REPLACE WHERE predicate for a single asynchronous refresh.
-- Only rows matching id = 3 are recomputed. The flow's static predicate is unchanged.
> REFRESH STREAMING TABLE rep_st WHERE id = 3 ASYNC;