更新物化视图。

背景信息

更新物化视图

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

相关命令