全部產品
Search
文件中心

AnalyticDB:彈性物化視圖

更新時間:Jul 27, 2024

物化視圖可用於加速分析,並能簡化ETL,適用於多種情境,例如報表類業務、大屏展示需求、來自BI工具的查詢等等。AnalyticDB for MySQL支援在建立物化視圖時指定Job型資源群組,並使用Job型資源群組的彈效能力重新整理物化視圖。本文主要介紹如何建立、修改並查詢彈性物化視圖。

前提條件

AnalyticDB for MySQL叢集需同時滿足以下條件:

  • 叢集的產品系列為湖倉版

  • 叢集核心版本需為3.1.9.3及以上版本。

    說明

    如何查看叢集核心版本,請參見如何查看執行個體版本資訊。如需升級核心版本,請聯絡支援人員。

  • 已在湖倉版叢集中建立Job型資源群組。具體操作,請參見建立資源群組

建立彈性物化視圖

建立物化視圖時,需要具備以下許可權:

  • 需要有資料庫或表層級的CREATE許可權。

  • 需要有資料庫或表層級的INSERT許可權。

  • 需要有物化視圖所涉及的所有表的相關列(或整個表)的SELECT許可權。

  • 如果在建立物化視圖時指定物化視圖為自動重新整理模式,需要具備通過伺服器本地(即127.0.0.1)或者任意IP(即'%')重新整理視圖的許可權。

文法

CREATE [OR REPLACE] MATERIALIZED VIEW <mv_name>
[MV DEFINITION]
[MV_PROPERTIES=<MV_PROPERTIES>]
[REFRESH [COMPLETE|FAST] [ON [DEMAND |OVERWRITE] [START WITH date] [NEXT date]]]
AS 
<QUERY BODY>;

參數說明

MV_PROPERTIES屬性目前只支援mv_resource_groupmv_refresh_hints參數,格式為JSON。說明如下:

  • mv_resource_group:指定彈性物化視圖所使用的彈性資源群組。建立與重新整理彈性物化視圖都會使用該資源群組。若指定的彈性型資源群組不存在,建立彈性物化視圖時會報錯。

  • mv_refresh_hints:彈性物化視圖支援配置的參數。例如query_priority,格式為JSON。

更多參數,請參見關鍵字說明

樣本

建立彈性物化視圖mv0,每天重新整理一次,彈性資源群組為my_job_rg_1

CREATE MATERIALIZED VIEW mv0
MV_PROPERTIES='{
  "mv_resource_group":"my_job_rg_1",
  "mv_refresh_hints":{"query_priority":"HIGH"}
}'
REFRESH COMPLETE ON DEMAND
START WITH now()
NEXT now() + INTERVAL 1 DAY
AS
SELECT * FROM base0;

修改彈性物化視圖

文法

ALTER MATERIALIZED VIEW <mv_name> MV_PROPERTIES=<MV_PROPERTIES>;
重要

ALTER語句中配置的<MV_PROPERTIES>屬性會整體覆蓋建立彈性物化視圖時配置的<MV_PROPERTIES>屬性。

例如:建立彈性物化視圖時同時配置了mv_resource_groupmv_refresh_hints參數,ALTER語句中僅配置mv_resource_group參數,執行該語句後,mv_resource_group參數被修改,mv_refresh_hints參數會被清除。

參數說明

<MV_PROPERTIES>:彈性物化視圖的屬性,僅支援mv_resource_groupmv_refresh_hints參數。詳情,請參見參數說明

樣本

修改彈性物化視圖所使用的資源群組。

  • mv_resource_groupmv_refresh_hints同時配置。

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

    執行該語句後,僅彈性物化視圖所使用的彈性資源群組變化。其他參數無變化。

  • 僅配置mv_resource_group參數。

    ALTER MATERIALIZED VIEW mv0 
    MV_PROPERTIES='{
      "mv_resource_group":"my_job_rg_2"
    }'

    執行該語句後,彈性物化視圖所使用的資源群組變化,mv_refresh_hints配置被清除。

查看彈性物化視圖定義

重要

查看彈性物化視圖定義時,需要有物化視圖的SELECT許可權。

文法

SHOW CREATE MATERIALIZED VIEW <mv_name>;

參數說明

<mv_name>:彈性物化視圖名稱。

樣本

查詢彈性物化視圖mv0的定義。

SHOW CREATE MATERIALIZED VIEW mv0;

返回建立彈性物化視圖DDL語句的詳細資料。