更新物化视图。
背景信息
更新物化视图的命令包括:
更新物化视图
当物化视图的数据对应的表或分区产生插入、覆写、更新、删除等操作时,物化视图会自动失效,无法用于查询改写。您可以先查看物化视图状态,当物化视图失效时,执行更新操作。查看物化视图状态操作,请参见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:删除已创建的物化视图。