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


ALTER STREAMING TABLE

Область применения:флажок Databricks SQL

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

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

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

Примечание.

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

Синтаксис

ALTER STREAMING TABLE table_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 }

Параметры

  • table_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 streaming table whenever its upstream data gets updated.
> ALTER STREAMING TABLE my_st
    ADD TRIGGER ON UPDATE;

-- Alters the schedule to refresh the streaming table when its upstream data
-- gets updated, with no more than one update per hour.
> ALTER STREAMING TABLE my_st
    ALTER TRIGGER ON UPDATE AT MOST EVERY INTERVAL 1 hour;

-- Alters the schedule to run every one hour.
> ALTER STREAMING TABLE my_st
  ALTER SCHEDULE EVERY 1 HOUR;

-- Alters the schedule to refresh the streaming table once a day
-- at midnight in Los Angeles
> ALTER STREAMING TABLE my_st
  ALTER SCHEDULE CRON '0 0 0 * * ? *' AT TIME ZONE 'America/Los_Angeles';

-- Drops the schedule for a streaming table
> ALTER STREAMING TABLE my_st
  DROP SCHEDULE;

-- Adds a column comment
> ALTER STREAMING TABLE my_st
    ALTER COLUMN column_name COMMENT 'test'