更改流表

适用于:勾选“是” Databricks SQL

允许你:

  • 添加用于刷新现有流式处理表的计划。
  • 更改流式处理表的现有刷新计划。
  • 删除流式处理表的刷新计划。 如果删除了计划,则需要手动刷新对象以反映最新数据。

若要在表或其列上添加或更改注释,请使用 COMMENT ON

语法

ALTER STREAMING TABLE table_name
  {
    { ADD | ALTER } SCHEDULE [ REFRESH ] schedule_clause |
    DROP SCHEDULE |
    ALTER COLUMN clause |
    SET ROW FILTER clause |
    DROP ROW FILTER |
    SET TAGS clause |
    UNSET TAGS clause |
  }

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

参数

  • table_name

    要更改其定义的流式处理表的名称。 名称不得包含时态规范

  • SCHEDULE [ REFRESH ] schedule_clause

    允许向流式处理表添加计划或更改其计划。

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

      要安排定期进行的刷新,请使用 EVERY 语法。 如果指定了 EVERY 语法,则会按照指定的间隔根据提供的值(如 HOURHOURSDAYDAYSWEEKWEEKS)定期刷新流式处理表或具体化视图。 下表列出了 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 ]

      使用 qartz cron 值安排刷新。 接受有效 time_zone_values。 不支持 AT TIME ZONE LOCAL

      如果 AT TIME ZONE 不存在,则使用会话时区。 如果 AT TIME ZONE 不存在并且未设置会话时区,则会引发错误。 SCHEDULE 在语义上等效于 SCHEDULE REFRESH

  • ALTER COLUMN

    重要

    此功能目前以公共预览版提供。

    更改列的属性。

  • SET ROW 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 必须是唯一的。

示例

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

-- Alters the schedule to run every 15 minutes for a streaming table
> ALTER STREAMING TABLE my_st
  ALTER SCHEDULE EVERY 15 MINUTES;

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