共用方式為


ALTER MATERIALIZED VIEW

適用於:勾選為「是」 Databricks SQL

修改與視圖相關聯的元數據。

可讓您執行下列任何動作:

  • 新增重新整理現有具體化檢視的排程。
  • 變更實體化視圖的現有重新整理計畫。
  • 移除具體化檢視的重新整理排程。 如果排程被取消,則必須手動更新物件,以反映最新的數據。

若要在檢視或其資料行上加入或改變批注,請使用 COMMENT ON

語法

ALTER MATERIALIZED VIEW view_name
  { schedule |
    ALTER COLUMN clause |
    SET ROW FILTER clause |
    DROP ROW FILTER |
    SET TAGS clause |
    UNSET TAGS clause }

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 ] 時間表條款

    可讓您在具體化檢視中新增或修改排程。

    • 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 ]

      使用 石英排程器的 cron 值來排程重新整理。 有效的 time_zone_values 會被接受。 不支援 AT TIME ZONE LOCAL

      如果 AT TIME ZONE 不存在,則會使用工作階段時區。 如果 AT TIME ZONE 不存在且未設定會話時區,則會擲回錯誤。 SCHEDULE 在語意上相當於 SCHEDULE REFRESH

  • 改變 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 [, ...] )

    這很重要

    這項功能目前處於 公開預覽版

    從具體化檢視中移除標記。 您必須具有許可權,才能從具現化視圖中移除標籤。

    • tag_name

      字面意義的 STRING。 在具體化檢視或資料欄中,tag_name 必須是唯一的。

範例

  -- 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 two hours for a materialized view
  > ALTER MATERIALIZED VIEW my_mv
      ALTER SCHEDULE EVERY 2 HOURS;

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