CREATE MATERIALIZED VIEW
功能
创建物化视图。关于物化视图适用 的场景请参考同步物化视图和异步物化视图。
创建物化视图是一个异步的操作。该命令执行成功即代表创建物化视图的任务提交成功。您可以通过 SHOW ALTER MATERIALIZED VIEW 命令查看当前数据库中同步物化视图的构建状态,或通过查询 Information Schema 中的 tasks 和 task_runs 来查看异步物化视图的构建状态。
注意
只有拥有基表所在数据库的 CREATE MATERIALIZED VIEW 权限的用户才可以创建物化视图。
StarRocks 自 v2.4 起支持异步物化视图。异步物化视图与先前版本中的同步物化视图区别主要体现在以下方面:
| 单表聚合 | 多表关联 | 查询改写 | 刷新策略 | 基表 | |
|---|---|---|---|---|---|
| 异步物化视图 | 是 | 是 | 是 |
| 支持多表构建。基表可以来自:
|
| 同步物化视图(Rollup) | 仅部分聚合函数 | 否 | 是 | 导入同步刷新 | 仅支持基于 Default Catalog 的单表构建 |
同步物化视图
语法
CREATE MATERIALIZED VIEW [IF NOT EXISTS] [database.]<mv_name>
[COMMENT ""]
[PROPERTIES ("key"="value", ...)]
AS
<query_statement>
参数
mv_name(必填)
物化视图的名称。命名要求如下:
- 必须由字母(a-z 或 A-Z)、数字(0-9)或下划线(_)组成 ,且只能以字母开头。
- 总长度不能超过 64 个字符。
- 视图名大小写敏感。
COMMENT(选填)
物化视图的注释。注意建立物化视图时 COMMENT 必须在 mv_name 之后,否则创建失败。
query_statement(必填)
创建物化视图的查询语句,其结果即为物化视图中的数据。语法如下:
SELECT select_expr[, select_expr ...]
[WHERE where_expr]
[GROUP BY column_name[, column_name ...]]
[ORDER BY column_name[, column_name ...]]
-
select_expr(必填)
构建同步物化视图的查询语句。
- 单列或聚合列:形如
SELECT a, b, c FROM table_a,其中a、b和c为基表的列名。如果您没有为物化视图指定列名,那么 StarRocks 自动为这些列命名。 - 表达式:形如
SELECT a+1 AS x, b+2 AS y, c*c AS z FROM table_a,其中a+1、b+2和c*c为包含基表列名的表达式,x
- 单列或聚合列:形如