更新物化視圖。
背景資訊
更新物化視圖的命令包括:
更新物化視圖
當物化視圖的資料對應的表或分區產生插入、覆寫、更新、刪除等操作時,物化視圖會自動失效,無法用於查詢改寫。您可以先查看物化檢視狀態,當物化視圖失效時,執行更新操作。查看物化檢視狀態操作,請參見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');
- 樣本一:刪除分區物化視圖的某個分區。命令樣本如下。
相關命令
- CREATE MATERIALIZED VIEW:基於滿足物化視圖情境的資料建立物化視圖,支援分區和聚簇情境。
- DESC TABLE/VIEW:查看MaxCompute物化視圖的資訊。
- SELECT MATERIALIZED VIEW:查詢物化檢視狀態。
- DROP MATERIALIZED VIEW:刪除已建立的物化視圖。