全部產品
Search
文件中心

MaxCompute:ALTER MATERIALIZED VIEW

更新時間:Jun 19, 2024

更新物化視圖。

背景資訊

更新物化視圖

當物化視圖的資料對應的表或分區產生插入、覆寫、更新、刪除等操作時,物化視圖會自動失效,無法用於查詢改寫。您可以先查看物化檢視狀態,當物化視圖失效時,執行更新操作。查看物化檢視狀態操作,請參見GRANT LABEL

  • 注意事項
    • 物化視圖的更新操作只支援全量更新,不支援累加式更新。
    • 您可以藉助於DataWorks調度能力實現定時更新。DataWorks的調度操作資訊,請參見調度配置
  • 命令格式
    alter materialized view [<project_name>.]<mv_name> rebuild [partition(<expression1>, <expressio2>...)];
  • 參數說明
    • project_name:可選。物化視圖所屬目標MaxCompute專案名稱。不填寫時表示當前所在MaxCompute專案。您可以登入MaxCompute控制台,左上方切換地區後,即可在專案管理頁簽查看到具體的MaxCompute專案名稱。

    • mv_name:必填。待更新物化視圖的名稱。
    • expression:可選。當更新分區物化視圖時,需要指定待更新分區資訊,支援運算式。
  • 使用樣本
    • 樣本一:更新非分區物化視圖。命令樣本如下。
      alter materialized view count_mv rebuild;
    • 樣本二:更新分區物化視圖的某個分區。命令樣本如下。
      alter materialized view mv rebuild partition (ds='20210101');
    • 樣本三:更新分區物化視圖的滿足指定條件的分區。命令樣本如下。
      alter materialized view mv rebuild partition(ds>='20210101', ds<='20210105');

修改物化視圖的生命週期

修改已建立的物化視圖的生命週期。

  • 命令格式
    alter materialized view [<project_name>.]<mv_name> set lifecycle <days>;
  • 參數說明
    • project_name:可選。物化視圖所屬目標MaxCompute專案名稱。不填寫時表示當前所在MaxCompute專案。您可以登入MaxCompute控制台,左上方切換地區後,即可在專案管理頁簽查看到具體的MaxCompute專案名稱。

    • mv_name:必填。待更新物化視圖的名稱。
    • days:必填。設定物化視圖的新生命週期。單位為天。
  • 使用樣本
    --修改物化視圖的生命週期為10天。
    alter materialized view mv set lifecycle 10;

開啟或禁用物化視圖的生命週期

開啟或禁用已建立的物化視圖的生命週期。

  • 命令格式
    alter materialized view [<project_name>.]<mv_name> [<pt_spec>] enable|disable lifecycle;
  • 參數說明
    • project_name:可選。物化視圖所屬目標MaxCompute專案名稱。不填寫時表示當前所在MaxCompute專案。您可以登入MaxCompute控制台,左上方切換地區後,即可在專案管理頁簽查看到具體的MaxCompute專案名稱。

    • mv_name:必填。待開啟或禁用生命週期的物化視圖的名稱。
    • pt_spec:可選。待開啟或禁用生命週期的物化視圖的分區。格式為(partition_col1 = partition_col_value1, partition_col2 = partition_col_value2, ...)partition_col是分區欄位,partition_col_value是分區值。
    • enable|disable:必填。enable代表開啟,disable代表禁用,禁用後該分區或表就不涉及生命週期管理。
  • 使用樣本
    • 樣本一:開啟物化視圖的生命週期管理。命令樣本如下。
      alter materialized view mv partition (ds='20210101') enable lifecycle;
    • 樣本二:禁用物化視圖的生命週期管理。命令樣本如下。
      alter materialized view mv partition (ds='20210101') disable lifecycle;

刪除物化視圖分區

刪除已建立的物化視圖的單個或多個分區。

  • 命令格式
    alter materialized view [<project_name>.]<mv_name> drop [if exists] partition <pt_spec> [partition <pt_spec>, partition <pt_spec>....];
  • 參數說明
    • project_name:可選。物化視圖所屬目標MaxCompute專案名稱。不填寫時表示當前所在MaxCompute專案。您可以登入MaxCompute控制台,左上方切換地區後,即可在專案管理頁簽查看到具體的MaxCompute專案名稱。

    • mv_name:必填。待刪除分區的分區物化視圖的名稱。
    • if exists:可選。如果沒有指定if exists且物化視圖不存在會返回報錯。
    • pt_spec:至少要指定一個分區。待刪除的分區。格式為(partition_col1 = partition_col_value1, partition_col2 = partition_col_value2, ...)partition_col是分區欄位,partition_col_value是分區值。
  • 使用樣本
    • 樣本一:刪除分區物化視圖的某個分區。命令樣本如下。
      alter materialized view mv drop partition (ds='20210101');
    • 樣本二:刪除分區物化視圖的滿足指定條件的分區。命令樣本如下。
      alter materialized view mv drop partition (ds>='20210101', ds<='20210105');

相關命令