物化視圖可用於加速分析,並能簡化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_group和mv_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_group和mv_refresh_hints參數,ALTER語句中僅配置mv_resource_group參數,執行該語句後,mv_resource_group參數被修改,mv_refresh_hints參數會被清除。
參數說明
<MV_PROPERTIES>:彈性物化視圖的屬性,僅支援mv_resource_group和mv_refresh_hints參數。詳情,請參見參數說明。
樣本
修改彈性物化視圖所使用的資源群組。
mv_resource_group和mv_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語句的詳細資料。