共用方式為


ALTER STREAMING TABLE

適用於:核取記號為「是」 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 ]

      使用 quartz 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 [, ...] )

    這很重要

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

    從串流數據表中移除標籤。 您必須具有 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;