Udostępnij za pomocą


ALTER MATERIALIZED VIEW

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL

Zmienia metadane skojarzone z widokiem.

Umożliwia wykonanie dowolnej z następujących akcji:

  • Dodaj harmonogram odświeżania istniejącego zmaterializowanego widoku.
  • Zmień istniejący harmonogram odświeżania dla zmaterializowanego widoku.
  • Zrezygnować z harmonogramu odświeżania zmaterializowanego widoku. Jeśli harmonogram zostanie porzucony, obiekt musi zostać odświeżony ręcznie, aby odzwierciedlić najnowsze dane.

Aby dodać lub zmienić komentarz dotyczący zmaterializowanego widoku, użyj polecenia COMMENT ON.

Uwaga

Zmiana zestawu danych utworzonego przez potok w sposób sprzeczny z logiką definiującą zapytanie SQL może spowodować cofnięcie niektórych modyfikacji. Zobacz Using commands with Lakeflow Spark Deklaratative Pipelines (Używanie ALTER poleceń z potokami deklaratywnymi platformy Spark w usłudze Lakeflow).

Składnia

ALTER MATERIALIZED VIEW view_name
  {
    { ADD | ALTER } schedule |
    DROP SCHEDULE |
    ALTER COLUMN column_clause |
    SET ROW FILTER clause |
    DROP ROW FILTER |
    SET TAGS clause |
    UNSET TAGS clause }

  schedule
    { SCHEDULE [ REFRESH ] schedule_clause |
      TRIGGER ON UPDATE [ AT MOST EVERY trigger_interval ] }

  schedule_clause
    { EVERY number { HOUR | HOURS | DAY | DAYS | WEEK | WEEKS } |
      CRON cron_string [ AT TIME ZONE timezone_id ] }

  column_clause
    column_identifier
    { COMMENT clause |
      SET MASK clause |
      DROP MASK |
      SET TAGS clause |
      UNSET TAGS clause }

Parametry

  • view_name

    Nazwa zmaterializowanego widoku, aby zmienić definicję elementu . Nazwa nie może zawierać specyfikacji czasowej.

  • harmonogram

    Dodaj lub zmień instrukcję SCHEDULE lub TRIGGER w zmaterializowanym widoku.

    Uwaga

    Nie można zmodyfikować harmonogramu materializowanego widoku utworzonego za pomocą Lakeflow Spark Declarative Pipelines za pomocą tego polecenia. Użyj edytora potoków.

    • SCHEDULE [ REFRESH ] schedule_clause

      • EVERY number { HOUR | HOURS | DAY | DAYS | WEEK | WEEKS }

        Aby zaplanować odświeżanie okresowo, użyj składni EVERY. Jeśli określono składnię EVERY, tabela do przesyłania strumieniowego lub widok materializowany jest odświeżany okresowo w określonym interwale na podstawie podanej wartości, takiej jak HOUR, HOURS, DAY, DAYS, WEEKlub WEEKS. W poniższej tabeli wymieniono zaakceptowane wartości całkowite dla number.

        Jednostka czasu Wartość całkowita
        HOUR or HOURS 1 <= H <= 72
        DAY or DAYS 1 <= D <= 31
        WEEK or WEEKS 1 <= W <= 8

        Uwaga

        Liczba pojedyncza i mnoga dołączonej jednostki czasowej są semantycznie równoważne.

      • CRON cron_string [ AT TIME ZONE timezone_id ]

        Aby zaplanować odświeżanie za pomocą wartości cron Quartz. Akceptowane są prawidłowe time_zone_values . AT TIME ZONE LOCAL nie jest obsługiwana.

        Jeśli AT TIME ZONE jest nieobecny, używana jest strefa czasowa sesji. Jeśli AT TIME ZONE jest nieobecny, a strefa czasowa sesji nie jest ustawiona, zostanie zgłoszony błąd. SCHEDULEjest semantycznie równoważne .SCHEDULE REFRESH

    • TRIGGER ON UPDATE [ AT MOST EVERY trigger_interval ]

      Ważne

      Funkcja TRIGGER ON UPDATE jest dostępna w wersji beta.

      Ustawia zmaterializowany widok do odświeżenia po zaktualizowaniu nadrzędnego źródła danych, co najwyżej raz na minutę. Ustaw wartość , AT MOST EVERY aby wymagać co najmniej minimalnego czasu między odświeżeniami.

      Nadrzędne źródła danych muszą być zewnętrznymi lub zarządzanymi tabelami delty (w tym zmaterializowanymi widokami lub tabelami przesyłania strumieniowego) albo widokami zarządzanymi, których zależności są ograniczone do obsługiwanych typów tabel.

      Włączenie zdarzeń plików może sprawić, że wyzwalacze będą bardziej wydajne i zwiększa niektóre limity dotyczące aktualizacji wyzwalacza.

      Jest trigger_interval to instrukcja INTERVAL , która jest co najmniej 1 minuta.

      TRIGGER ON UPDATE ma następujące ograniczenia

      • Nie więcej niż 10 nadrzędnych źródeł danych na widok materializowany przy użyciu TRIGGER ON UPDATE.
      • Maksymalnie 1000 tabel przesyłania strumieniowego lub zmaterializowanych widoków można określić za pomocą TRIGGER ON UPDATE.
      • Klauzula AT MOST EVERY jest domyślnie ustawiona na 1 minutę i nie może być mniejsza niż 1 minuta.
  • DROP SCHEDULE

    Usuwa harmonogram z zmaterializowanego widoku.

  • ALTER COLUMN clause

    Zobacz klauzulę ALTERCOLUMN.

  • SET ROW FILTER klauzula

    Ważne

    Ta funkcja jest dostępna w publicznej wersji testowej.

    Dodaje funkcję filtru wierszy do zmaterializowanego widoku. Wszystkie kolejne zapytania do zmaterializowanego widoku otrzymują podzestaw wierszy, w których funkcja oblicza wartość logiczną TRUE. Może to być przydatne w celach szczegółowej kontroli dostępu, w których funkcja może sprawdzić tożsamość lub członkostwo w grupach użytkownika wywołującego w celu określenia, czy filtrować niektóre wiersze.

    Filtry wierszy dodane po utworzeniu są propagowane tylko do tabel podrzędnych po następnej aktualizacji. W przypadku potoków ciągłych wymaga to ponownego uruchomienia potoku.

  • DROP ROW FILTER

    Ważne

    Ta funkcja jest dostępna w publicznej wersji testowej.

    Usuwa filtr wiersza ze zmaterializowanego widoku, jeśli istnieje. Przyszłe zapytania będą zwracać wszystkie wiersze z tabeli bez automatycznego filtrowania.

  • SET TAGS ( { tag_name = tag_value } [, ...] )

    Ważne

    Ta funkcja jest dostępna w publicznej wersji testowej.

    Zastosuj tagi do zmaterializowanego widoku. Musisz mieć APPLY TAG uprawnienia do dodawania tagów do zmaterializowanego widoku.

    • tag_name

      Dosłowny STRING. Element tag_name musi być unikatowy w zmaterializowanym widoku lub kolumnie.

    • tag_value

      Dosłowny STRING.

  • UNSET TAGS ( tag_name [, ...] )

    Ważne

    Ta funkcja jest dostępna w publicznej wersji testowej.

    Usuń tagi z zmaterializowanego widoku. Musisz mieć APPLY TAG uprawnienia do usuwania tagów z zmaterializowanego widoku.

    • tag_name

      Dosłowny STRING. Element tag_name musi być unikatowy w zmaterializowanym widoku lub kolumnie.

ALTER COLUMN klauzula

Ważne

Ta funkcja jest dostępna w publicznej wersji testowej.

Zmienia właściwość lub lokalizację kolumny.

Składnia

  ALTER COLUMN
    column_identifier
    { COMMENT comment |
      SET MASK mask_clause |
      DROP MASK |
      SET TAGS clause |
      UNSET TAGS clause }

Parametry

  • column_identifier

    Nazwa kolumny, która ma zostać zmieniona.

  • COMMENT comment

    Zmienia opis kolumny column_name . comment musi być dosłowną wartością STRING.

  • SET KLAUZULA MASKA

    Dodaje funkcję maski kolumn do anonimowości poufnych danych. Wszystkie kolejne zapytania z tej kolumny otrzymają wynik oceny tej funkcji w kolumnie zamiast oryginalnej wartości kolumny. Może to być przydatne w celach szczegółowej kontroli dostępu, w których funkcja może sprawdzić tożsamość lub członkostwo w grupach użytkownika wywołującego w celu określenia, czy zredagować wartość.

    Maski kolumn dodane po utworzeniu są propagowane tylko do tabel podrzędnych po następnej aktualizacji. W przypadku potoków ciągłych wymaga to ponownego uruchomienia potoku.

  • DROP MASK

    Usuwa maskę kolumn dla tej kolumny, jeśli istnieje. Przyszłe zapytania z tej kolumny otrzymają oryginalne wartości kolumny.

  • SET TAGS ( { tag_name = tag_value } [, ...] )

    Zastosuj tagi do kolumny. Musisz mieć APPLY TAG uprawnienia do dodawania tagów do kolumny.

    • tag_name

      Dosłowny STRING. Element tag_name musi być unikatowy w tabeli lub kolumnie.

    • tag_value

      Dosłowny STRING.

  • UNSET TAGS ( tag_name [, ...] )

    Usuń podane tagi z kolumny. Musisz mieć APPLY TAG uprawnienia do usuwania tagów z kolumny.

    • tag_name

      Dosłowny STRING. Element tag_name musi być unikatowy w tabeli lub kolumnie.

Przykłady

-- Adds a schedule to refresh the materialized view whenever its upstream data gets updated.
> ALTER MATERIALIZED VIEW my_mv
    ADD TRIGGER ON UPDATE;

-- Alters the schedule to refresh the materialized view when its upstream data
-- gets updated, and make sure the update frequency is no more than 1 update
-- per hour.
> ALTER MATERIALIZED VIEW my_mv
    ALTER TRIGGER ON UPDATE AT MOST EVERY INTERVAL 1 hour;

-- Alters the schedule to run every two hours for a materialized view
> ALTER MATERIALIZED VIEW my_mv
    ALTER SCHEDULE EVERY 2 HOURS;

-- Alters the schedule to refresh a materialized view once a day
-- at midnight in Los Angeles
> ALTER MATERIALIZED VIEW my_mv
    ALTER SCHEDULE CRON '0 0 0 * * ? *' AT TIME ZONE 'America/Los_Angeles';

-- Drops the schedule for a materialized view
> ALTER MATERIALIZED VIEW my_mv
    DROP SCHEDULE;

-- Adds a column comment
> ALTER MATERIALIZED VIEW my_mv
    ALTER COLUMN my_column_name COMMENT 'test'