ALTER MATERIALIZED VIEW

适用于: 勾选“是” Databricks SQL

更改与视图关联的元数据。

允许执行以下任一操作:

  • 添加用于刷新现有具体化视图的计划。
  • 更改具体化视图的现有刷新计划。
  • 删除具体化视图的刷新计划。 如果删除了计划,则需要手动刷新对象以反映最新数据。

语法

ALTER MATERIALIZED VIEW view_name
  { schedule }

schedule
  {
    { ADD | ALTER } SCHEDULE [ REFRESH ]
      schedule_clause |
    DROP SCHEDULE
  }

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

参数

  • SCHEDULE [ REFRESH ] schedule_clause

    允许向具体化视图添加计划或更改其计划。

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

      重要

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

      要安排定期进行的刷新,请使用 EVERY 语法。 如果指定了 EVERY 语法,则会按照指定的间隔根据提供的值(如 HOURHOURSDAYDAYSWEEKWEEKS)定期刷新流式处理表或具体化视图。 下表列出了 number 可接受的整数值。

      Time unit 整数值
      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

示例


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

  -- Alters the schedule to run every 15 minutes for a materialized view
  > ALTER MATERIALIZED VIEW my_mv
      ALTER SCHEDULE CRON '0 0/15 * * * ? *';

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