Поделиться через


ALTER MATERIALIZED VIEW

Область применения:галочка установлена на Databricks SQL

Изменяет метаданные, связанные с представлением.

Позволяет выполнить одно из следующих действий:

  • Добавьте расписание обновления существующего материализованного представления.
  • Измените существующее расписание обновления для материализованного представления.
  • Отмените расписание периодического обновления для материализованного представления. Если расписание удалено, объект необходимо обновить вручную, чтобы отразить последние данные.

Чтобы добавить или изменить комментарий к материализованному представлению, используйте COMMENT ON.

Примечание.

Изменение созданного конвейером набора данных таким образом, что противоречит определению SQL, может привести к отмене некоторых изменений. См . статью "Использование ALTER команд с декларативными конвейерами Spark Lakeflow".

Синтаксис

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 }

Параметры

  • view_name

    Имя материализованного представления для изменения определения. Имя не должно содержать временную спецификацию.

  • расписание

    Добавьте или измените SCHEDULETRIGGER инструкцию в материализованном представлении.

    Примечание.

    Невозможно изменить расписание материализованного представления, созданного с помощью декларативных конвейеров Lakeflow Spark, с помощью этой команды. Используйте редактор конвейера.

    • SCHEDULE [ REFRESH ] schedule_clause

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

        Чтобы запланировать периодические обновления, используйте синтаксис EVERY. Если указан синтаксис EVERY, то потоковая таблица или материализованное представление периодически обновляется с заданным интервалом на основе указанного значения, например HOUR, HOURS, DAY, DAYS, WEEKили WEEKS. В следующей таблице перечислены принятые целые значения для number.

        Единица времени Целочисленное значение
        HOUR or HOURS 1 <= H <= 72
        DAY or DAYS 1 <= D <= 31
        WEEK or WEEKS 1 <= W <= 8

        Примечание.

        Единственное и множественное число включенной единицы времени семантически эквивалентны.

      • CRON cron_string [ AT TIME ZONE timezone_id ]

        Чтобы запланировать обновление с использованием значения quartz cron . Принимаются допустимые значения time_zone_values. Функция AT TIME ZONE LOCAL не поддерживается.

        Если AT TIME ZONE нет, используется часовой пояс сеанса. Если AT TIME ZONE отсутствует, а часовой пояс сеанса не задан, возникает ошибка. SCHEDULE семантически эквивалентен SCHEDULE REFRESH.

    • TRIGGER ON UPDATE [ AT MOST EVERY trigger_interval ]

      Это важно

      Эта TRIGGER ON UPDATE функция доступна в бета-версии.

      Задает материализованное представление для обновления при обновлении вышестоящего источника данных не более одного раза в минуту. Задайте значение, для AT MOST EVERY которых требуется по крайней мере минимальное время между обновлениями.

      Исходные источники данных должны быть внешними или управляемыми таблицами Delta (включая материализованные представления или потоковые таблицы), или управляемыми представлениями, зависимости которых ограничены поддерживаемыми типами таблиц.

      Включение событий файлов может повысить производительность триггеров и увеличить некоторые ограничения на обновления триггеров.

      Это trigger_interval инструкция INTERVAL , которая составляет не менее 1 минуты.

      TRIGGER ON UPDATE имеет следующие ограничения

      • При использовании TRIGGER ON UPDATE не более 10 исходных источников данных для каждого материализованного представления.
      • С помощью TRIGGER ON UPDATEможно указать не более 1000 потоковых таблиц или материализованных представлений.
      • Предложение AT MOST EVERY по умолчанию равно 1 минуте и не может быть меньше 1 минуты.
  • DROP SCHEDULE

    Удаляет расписание из материализованного представления.

  • ALTER COLUMN clause

    См. раздел ALTERCOLUMN.

  • пункт SETROW FILTER

    Это важно

    Эта функция доступна в общедоступной предварительной версии.

    Добавляет функцию фильтра строк в материализованное представление. Все последующие запросы к материализованному представлению получают подмножество строк, где функция принимает логическое значение TRUE. Это может быть полезно для точного контроля доступа, где функция может проверить удостоверение или членство в группах вызывающего пользователя, чтобы определить, следует ли фильтровать определенные строки.

    Фильтры строк, добавленные после создания, распространяются только на подчиненные таблицы после следующего обновления. Для непрерывных конвейеров это требует перезапуска конвейера.

  • DROP ROW FILTER

    Это важно

    Эта функция доступна в общедоступной предварительной версии.

    Удаляет фильтр строк из материализованного представления, если таковой имеется. Будущие запросы возвращают все строки из таблицы без автоматической фильтрации.

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

    Это важно

    Эта функция доступна в общедоступной предварительной версии.

    Примените теги к материализованному представлению. Необходимо иметь APPLY TAG разрешение на добавление тегов в материализованное представление.

    • tag_name

      Литерал STRING. tag_name должен быть уникальным в рамках материализованного представления или столбца.

    • tag_value

      Литерал STRING.

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

    Это важно

    Эта функция доступна в общедоступной предварительной версии.

    Удалите теги из материализованного представления. Необходимо иметь APPLY TAG разрешение на удаление тегов из материализованного представления.

    • tag_name

      Литерал STRING. tag_name должен быть уникальным в рамках материализованного представления или столбца.

Предложение ALTER COLUMN

Это важно

Эта функция доступна в общедоступной предварительной версии.

Изменяет свойство или расположение столбца.

Синтаксис

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

Параметры

  • column_identifier

    Имя столбца, который требуется изменить.

  • COMMENT comment

    Изменяет описание столбца column_name. comment должен быть литеральным значением STRING.

  • SET Предложение MASK

    Добавляет функцию маски столбца для анонимизации конфиденциальных данных. Все последующие запросы из этого столбца получат результат оценки этой функции по столбцу вместо исходного значения столбца. Это может быть полезно для точного контроля доступа, когда функция может проверить идентификацию или членство в группах вызывающего пользователя, чтобы определить, следует ли скрыть это значение.

    Маски столбцов, добавленные после создания, распространяются только на подчиненные таблицы после следующего обновления. Для непрерывных конвейеров это требует перезапуска конвейера.

  • DROP MASK

    Удаляет маску для этого столбца, если она имеется. Будущие запросы из этого столбца получат исходные значения столбца.

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

    Примените теги к столбцу. Необходимо иметь APPLY TAG разрешение на добавление тегов в столбец.

    • tag_name

      Литерал STRING. Элемент tag_name должен быть уникальным в таблице или столбце.

    • tag_value

      Литерал STRING.

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

    Удалите указанные теги из столбца. Необходимо иметь APPLY TAG разрешение на удаление тегов из столбца.

    • tag_name

      Литерал STRING. Элемент tag_name должен быть уникальным в таблице или столбце.

Примеры

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