全部产品
Search
文档中心

云原生数据仓库AnalyticDB:管理物化视图

更新时间:Dec 27, 2024

本文介绍如何管理物化视图。

修改物化视图

权限要求

需要有物化视图的ALTER权限。

语法

ALTER MATERIALIZED VIEW <mv_name>
[MV_PROPERTIES=<MV_PROPERTIES>]
[<ENABLE|DISABLE> QUERY REWRITE]
  • MV_PROPERTIES:弹性物化视图的属性,仅支持mv_resource_group和mv_refresh_hints参数。详情请参见MV_PROPERTIES

    重要

    ALTER语句中配置的<MV_PROPERTIES>属性会整体覆盖创建弹性物化视图时配置的<MV_PROPERTIES>属性。

    例如:创建弹性物化视图时同时配置了mv_resource_groupmv_refresh_hints参数,ALTER语句中仅配置mv_resource_group参数,执行该语句后,mv_resource_group参数被修改,mv_refresh_hints参数会被清除。

  • <ENABLE|DISABLE> QUERY REWRITE:打开或关闭查询智能改写功能。

示例

  • 打开物化视图myview1的查询智能改写功能。

    ALTER MATERIALIZED VIEW myview1 ENABLE QUERY REWRITE;
  • 修改弹性物化视图myview9所使用的资源组。

    ALTER MATERIALIZED VIEW myview9 
    MV_PROPERTIES='{
      "mv_resource_group":"my_job_rg_2",
      "mv_refresh_hints":{"query_priority":"HIGH"}
    }'

查看物化视图定义

查看创建物化视图的DDL语句。

权限要求

需要有物化视图的SELECT权限。

语法

SHOW CREATE MATERIALIZED VIEW <mv_name>

示例

查看创建物化视图myview2的DDL语句。

SHOW CREATE MATERIALIZED VIEW myview2;

查看物化视图

查看当前数据库中所有具有SELECT权限的物化视图列表。如果有指定Pattern,则返回匹配该Pattern的所有物化视图。

权限要求

需要有物化视图的SELECT权限。

语法

SHOW MATERIALIZED VIEWS [LIKE 'pattern']

示例

查看当前数据库中所有的物化视图。

SHOW MATERIALIZED VIEWS;

删除物化视图

重要

物化视图不能使用DROP TABLE语句删除。

权限要求

需要有物化视图的DROP权限。

语法

DROP MATERIALIZED VIEW <mv_name>

示例

删除物化视图myview4

DROP MATERIALIZED VIEW myview4;

物化视图信息表

  • information_schema.mv_info

    • 所有物化视图的元信息。

    • 常用字段的解释如下表所示:

      字段

      描述

      MV_SCHEMA

      物化视图的所在库名。

      MV_NAME

      物化视图的名称。

      MV_DEFINITION

      物化视图表属性的DDL。

      MV_QUERY

      物化视图查询部分的SQL。

      FIRST_REFRESH_TIME

      如果已配置自动刷新,则表示首次刷新的时间。

      NEXT_REFRESH_TIME_FUNC

      如果已配置自动刷新,则表示下次刷新的时间推导函数。

      OWNER

      物化视图的创建者。

    • 如果只需查看单张物化视图定义,建议使用SHOW CREATE MATERIALIZED VIEW命令。

    • 使用示例如下:

      # 统计整个实例有多少张物化视图
      SELECT count(*) FROM information_schema.mv_info
  • information_schema.mv_auto_refresh_jobs

    • 自动刷新任务记录。只有配置了自动刷新功能的物化视图才会出现在这张表里,最多保留1024条记录。

    • 常用字段的解释如下表所示:

      字段

      描述

      MV_SCHEMA

      物化视图的所在库名。

      MV_NAME

      物化视图的名称。

      SCHEDULED_START_TIME

      计划启动刷新的时间。

      START_TIME

      实际启动刷新的时间。

      END_TIME

      刷新结束的时间。

      STATE

      刷新状态。

      • PENDING:等待触发刷新。

      • RUNNING:刷新中,如果很多物化视图同时开始刷新,状态虽然是RUNNING,但是可能在等计算资源。

      • FINISHED:刷新完成。

      • FAILED:刷新失败。刷新失败会自动重试,直到重试次数耗尽,那么会跳过这次刷新任务,等待下次刷新。

      • TIMEOUT:刷新任务进入未知状态,迟迟没有成功。

    • 使用示例如下:

      # 查看 mymv 的自动刷新记录
      SELECT * FROM information_schema.mv_auto_refresh_jobs where mv_name = 'mymv'