ALTER MATERIALIZED VIEW

Platí pro:zaškrtnuto ano Databricks SQL

Změní metadata přidružená k zobrazení.

Umožňuje provádět některou z následujících akcí:

  • Přidejte, upravte nebo zahoďte plán nebo trigger pro aktualizaci existujícího materializovaného zobrazení. Pokud neexistuje žádný plán nebo aktivační událost, je potřeba objekt aktualizovat ručně, aby odrážel nejnovější data.
  • Přidejte, změňte nebo odstraňte filtr řádků pro existující materializované zobrazení.
  • Nastavte nebo zrušte nastavení značek pro existující materializované zobrazení.
  • Umožňuje změnit vlastnosti sloupce pro existující materializované zobrazení, včetně masek, značek a komentářů.

Pokud chcete přidat nebo změnit komentář k materializovanému zobrazení, použijte COMMENT ON.

Poznámka:

Změna datové sady vytvořené kanálem způsobem, který je v rozporu s definicí SQL, může způsobit vrácení některých změn. Viz Použití ALTER příkazů s deklarativními kanály Sparku Lakeflow.

Syntaxe

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

    Název materializovaného zobrazení pro změnu definice. Název nesmí obsahovat dočasnou specifikaci.

  • rozvrh

    Přidejte nebo upravte SCHEDULE příkaz v TRIGGER materializovaném zobrazení.

    Poznámka:

    Pomocí tohoto příkazu nemůžete upravit plán materializovaného zobrazení vytvořeného pomocí deklarativních kanálů Sparku Lakeflow. Použijte editor kanálu.

    • SCHEDULE [ REFRESH ] schedule_clause

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

        Pokud chcete naplánovat aktualizaci, která se pravidelně provádí, použijte EVERY syntaxi. Pokud je zadaná syntaxe EVERY, aktualizuje se streamovaná tabulka nebo materializované zobrazení pravidelně v zadaném intervalu na základě zadané hodnoty, například HOUR, HOURS, DAY, DAYS, WEEKnebo WEEKS. V následující tabulce jsou uvedeny celočíselné hodnoty pro number.

        Časová jednotka Celočíselná hodnota
        HOUR or HOURS 1 <= H <= 72
        DAY or DAYS 1 <= D <= 31
        WEEK or WEEKS 1 < = W < = 8

        Poznámka:

        Jednotné a množné číslo zahrnuté časové jednotky jsou sémanticky ekvivalentní.

      • CRON cron_string [ AT TIME ZONE timezone_id ]

        Naplánujte aktualizaci pomocí hodnoty quartz cron. Platné time_zone_values jsou přijímány. AT TIME ZONE LOCAL není podporováno.

        Výraz cron používá šest polí oddělených mezerami v pořadí: seconds minutes hours day-of-month month day-of-week. Slouží ? k day-of-month tomu, aby buď byla nezadaná, nebo day-of-week ji nechte nezadanou.

        Například SCHEDULE CRON '0 0 0 * * ?' AT TIME ZONE 'UTC' aktualizuje každý den o půlnoci UTC.

        Pokud AT TIME ZONE chybí, použije se časové pásmo relace. Pokud AT TIME ZONE chybí a časové pásmo relace není nastavené, dojde k chybě. SCHEDULE je sémanticky ekvivalentní SCHEDULE REFRESH.

    • TRIGGER ON UPDATE [ AT MOST EVERY trigger_interval ]

      Nastaví materializované zobrazení tak, aby se aktualizovalo, když se aktualizuje nadřazený zdroj dat, a to maximálně jednou za minutu. Nastavte hodnotu tak AT MOST EVERY , aby vyžadovala alespoň minimální čas mezi aktualizacemi.

      Nadřazené zdroje dat musí být externí nebo spravované tabulky Delta (včetně materializovaných zobrazení nebo streamovaných tabulek) nebo spravovaná zobrazení, jejichž závislosti jsou omezené na podporované typy tabulek.

      Povolení událostí souborů může zvýšit výkon triggerů a zvýšit některé limity pro aktualizace triggerů.

      Jedná se trigger_interval o příkaz INTERVAL , který je alespoň 1 minuta.

      TRIGGER ON UPDATE má následující omezení

      • Maximálně 10 nadřazených zdrojů dat pro materializované zobrazení při použití Triggeru ON UPDATE.
      • Pomocí triggeru ON UPDATElze zadat maximálně 1000 streamovaných tabulek nebo materializovaných zobrazení.
      • Výchozí AT MOST EVERY hodnota klauzule je 1 minuta a nesmí být menší než 1 minuta.
  • DROP SCHEDULE

    Odebere rozvrh z materializovaného zobrazení.

  • ALTER COLUMN clause

    Viz klauzule ALTERCOLUMN.

  • SET ROW FILTER klauzule

    platí pro:zaškrtněte políčko Ano Databricks SQL zaškrtněte políčko Ano Databricks Runtime 16.2 a novější

    Přidá funkci filtru řádků do materializovaného zobrazení. Všechny následné dotazy do materializovaného zobrazení získají podmnožinu řádků, kde se funkce vyhodnotí na hodnotu typu boolean TRUE. To může být užitečné pro jemně odstupňované řízení přístupu, kdy funkce může zkontrolovat identitu nebo členství ve skupině uživatele, který funkci vyvolává, a určit, zda se mají určité řádky filtrovat.

    Filtry řádků přidané po vytvoření se po příští aktualizaci rozšíří pouze do podřízených tabulek. U průběžných kanálů to vyžaduje restartování kanálu.

  • DROP ROW FILTER

    platí pro:zaškrtněte políčko Ano Databricks SQL zaškrtněte políčko Ano Databricks Runtime 16.2 a novější

    Pokud existuje, zahodí filtr řádků z materializovaného zobrazení. Budoucí dotazy vrátí všechny řádky z tabulky bez automatického filtrování.

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

    Platí pro:zaškrtnuto jako ano Databricks SQL zaškrtnuto jako ano Databricks Runtime 16.3 a vyšší

    Použití značek v materializovaném zobrazení Musíte mít APPLY TAG oprávnění k přidání značek do materializovaného zobrazení.

    • tag_name

      Literál STRING. Musí tag_name být jedinečný v rámci materializovaného zobrazení nebo sloupce.

    • tag_value

      Literál STRING.

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

    Platí pro:zaškrtnuto jako ano Databricks SQL zaškrtnuto jako ano Databricks Runtime 16.3 a vyšší

    Odeberte tagy z materializovaného zobrazení. Musíte mít APPLY TAG oprávnění k odebrání značek z materializovaného zobrazení.

    • tag_name

      Literál STRING. Musí tag_name být jedinečný v rámci materializovaného zobrazení nebo sloupce.

Klauzule ALTER COLUMN

Změní vlastnost nebo umístění sloupce.

Syntaxe

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

Parametry

  • column_identifier

    Název sloupce, který má být změněn.

  • COMMENT comment

    platí pro:zaškrtněte políčko Ano Databricks SQL zaškrtněte políčko Ano Databricks Runtime 16.2 a novější

    Změní popis column_name sloupce. comment musí být STRING literál.

  • SET Klauzule MASK

    platí pro:zaškrtněte políčko Ano Databricks SQL zaškrtněte políčko Ano Databricks Runtime 16.2 a novější

    Přidá funkci masky sloupce pro anonymizaci citlivých dat. Všechny následné dotazy z tohoto sloupce obdrží výsledek vyhodnocení této funkce místo původní hodnoty sloupce. To může být užitečné pro podrobné řízení přístupu, kdy funkce může zkontrolovat identitu nebo skupinové členství vyvolávajícího uživatele a určit, zda má být hodnota zredigována.

    Masky sloupců přidané po vytvoření se po příští aktualizaci rozšíří pouze do podřízených tabulek. U průběžných kanálů to vyžaduje restartování kanálu.

  • DROP MASK

    platí pro:zaškrtněte políčko Ano Databricks SQL zaškrtněte políčko Ano Databricks Runtime 16.2 a novější

    Odebere masku sloupce pro tento sloupec( pokud existuje). Budoucí dotazy z tohoto sloupce obdrží původní hodnoty sloupce.

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

    Platí pro:zaškrtnuto jako ano Databricks SQL zaškrtnuto jako ano Databricks Runtime 16.3 a vyšší

    Použijte značky u sloupce. Ke přidávání značek do sloupce potřebujete APPLY TAG oprávnění.

    • tag_name

      Literál STRING. Musí tag_name být jedinečný v tabulce nebo sloupci.

    • tag_value

      Literál STRING.

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

    Platí pro:zaškrtnuto jako ano Databricks SQL zaškrtnuto jako ano Databricks Runtime 16.3 a vyšší

    Odstraňte zadané značky ze sloupce. Musíte mít APPLY TAG oprávnění k odebrání značek ze sloupce.

    • tag_name

      Literál STRING. Musí tag_name být jedinečný v tabulce nebo sloupci.

Příklady

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