上云无忧 > 文档中心 > 百度数据仓库 Palo SQL语法手册 - CREATE-MATERIALIZED-VIEW
百度数据仓库 Palo Doris版
百度数据仓库 Palo SQL语法手册 - CREATE-MATERIALIZED-VIEW

文档简介:
CREATE MATERIALIZED VIEW description: 该语句用于创建物化视图。 该操作为异步操作,提交成功后,需通过 SHOW ALTER TABLE MATERIALIZED VIEW 查看作业进度。 CREATE MATERIALIZED VIEW [MV name] as [query] [PROPERTIES ("key" = "value")]
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

CREATE MATERIALIZED VIEW

description

该语句用于创建物化视图。

该操作为异步操作,提交成功后,需通过 SHOW ALTER TABLE MATERIALIZED VIEW 查看作业进度。

CREATE MATERIALIZED VIEW [MV name] as [query] [PROPERTIES ("key" = "value")]
  • MV name 物化视图的名称,必填项。

    相同表的物化视图名称不可重复。

  • query

    用于构建物化视图的查询语句,查询语句的结果既物化视图的数据。目前支持的 query 格式为:

    SELECT select_expr[, select_expr ...] FROM [Base view name] GROUP BY column_name[, column_name ...]
    • select_expr: 物化视图的 schema 中所有的列。

      • 仅支持不带表达式计算的单列,聚合列。
      • 其中聚合函数目前仅支持 SUM, MIN, MAX 三种,且聚合函数的参数只能是不带表达式计算的单列。
      • 至少包含一个单列。
      • 所有涉及到的列,均只能出现一次。
    • base view name: 物化视图的原始表名,必填项。

      • 必须是单表,且非子查询
    • group by: 物化视图的分组列,选填项。

      • 不填则数据不进行分组。
    • order by: 物化视图的排序列,选填项。

      • 排序列的声明顺序必须和 select_expr 中列声明顺序一致。
      • 如果不声明 order by,则根据规则自动补充排序列。 如果物化视图是聚合类型,则所有的分组列自动补充为排序列。 如果物化视图是非聚合类型,则前 36 个字节自动补充为排序列。如果自动补充的排序个数小于3个,则前三个作为排序列。
      • 如果 query 中包含分组列的话,则排序列必须和分组列一致。
  •  ORDER BY column_name[, column_name ...]
  • properties

    声明物化视图的一些配置,选填项。

    PROPERTIES ("key" = "value", "key" = "value" ...)

    支持以下配置:

    • timeout: 物化视图构建的超时时间。

Example

假设 Base 表结构为:

mysql> desc duplicate_table; +-------+--------+------+------+---------+-------+ | Field | Type | Null | Key 
| Default | Extra | +-------+--------+------+------+---------+-------+ | k1 | INT | Yes | true | N/A | | |
 k2 | INT | Yes | true | N/A | | | k3 | BIGINT | Yes | true | N/A | | | k4 | BIGINT | Yes | true | N/A | | 
+-------+--------+------+------+---------+-------+

  1. 创建一个仅包含原始表 (k1, k2)列的物化视图

    create materialized view k1_k2 as select k1, k2 from duplicate_table;

    物化视图的 schema 如下图,物化视图仅包含两列 k1, k2 且不带任何聚合

    +-----------------+-------+--------+------+------+---------+-------+ | IndexName | Field | Type | Null 
  2. | Key | Default | Extra | +-----------------+-------+--------+------+------+---------+-------+ | k1_k2 
  3. | k1 | INT | Yes | true | N/A | | | | k2 | INT | Yes | true | N/A | | +-----------------+-------+-----
  4. ---+------+------+---------+-------+
  5. 创建一个以 k2 为排序列的物化视图

    create materialized view k2_order as select k2, k1 from duplicate_table order by k2;

    物化视图的 schema 如下图,物化视图仅包含两列 k2, k1,其中 k2 列为排序列,不带任何聚合。

    +-----------------+-------+--------+------+-------+---------+-------+ | IndexName | Field | Type 
  6. | Null | Key | Default | Extra | +-----------------+-------+--------+------+-------+---------+---
  7. ---+ | k2_order | k2 | INT | Yes | true | N/A | | | | k1 | INT | Yes | false | N/A | NONE | +----------
  8. -------+-------+--------+------+-------+---------+-------+
  9. 创建一个以 k1, k2 分组,k3 列为 SUM 聚合的物化视图

    create materialized view k1_k2_sumk3 as select k1, k2, sum(k3) from duplicate_table group by k1, k2;

    物化视图的 schema 如下图,物化视图包含两列 k1, k2,sum(k3) 其中 k1, k2 为分组列,sum(k3) 为根据 k1, k2 分组后的 k3 列的求和值。

    由于物化视图没有声明排序列,且物化视图带聚合数据,系统默认补充分组列 k1, k2 为排序列。

    +-----------------+-------+--------+------+-------+---------+-------+ | IndexName | Field | Type | Null
  10.  | Key | Default | Extra | +-----------------+-------+--------+------+-------+---------+-------+ 
  11. | k1_k2_sumk3 | k1 | INT | Yes | true | N/A | | | | k2 | INT | Yes | true | N/A | | | | k3 | BIGINT | 
  12. Yes | false | N/A | SUM | +-----------------+-------+--------+------+-------+---------+-------+
  13. 创建一个去除重复行的物化视图

    create materialized view deduplicate as select k1, k2, k3, k4 from duplicate_table group by k1, k2, k3, k4;

    物化视图 schema 如下图,物化视图包含 k1, k2, k3, k4列,且不存在重复行。

    +-----------------+-------+--------+------+-------+---------+-------+ | IndexName | Field | Type | Null
  14.  | Key | Default | Extra | +-----------------+-------+--------+------+-------+---------+-------+ |
  15.  deduplicate | k1 | INT | Yes | true | N/A | | | | k2 | INT | Yes | true | N/A | | | | k3 | BIGINT | Yes
  16.  | true | N/A | | | | k4 | BIGINT | Yes | true | N/A | | +-----------------+-------+--------+------+-
  17. ------+---------+-------+
  18. 创建一个不声明排序列的非聚合型物化视图

    all_type_table 的 schema 如下:

    +-------+--------------+------+-------+---------+-------+ | Field | Type | Null | Key | Default | Extra |

    物化视图包含 k3, k4, k5, k6, k7 列,且不声明排序列,则创建语句如下:

    create materialized view mv_1 as select k3, k4, k5, k6, k7 from all_type_table;

    系统默认补充的排序列为 k3, k4, k5 三列。这三列类型的字节数之和为 4(INT) + 8(BIGINT) + 16(DECIMAL) = 28 < 36。所以补充的是这三列作为排序列。

    物化视图的 schema 如下,可以看到其中 k3, k4, k5 列的 key 字段为 true,也就是排序列。k6, k7 列的 key 字段为 false,也就是非排序列。

    +----------------+-------+--------------+------+-------+---------+-------+ | IndexName | Field | Type | Null |
  19.  Key | Default | Extra | +----------------+-------+--------------+------+-------+---------+-------+ | mv_1 
  20. | k3 | INT | Yes | true | N/A | | | | k4 | BIGINT | Yes | true | N/A | | | | k5 | DECIMAL(9,0) | Yes | true 
  21. | N/A | | | | k6 | DOUBLE | Yes | false | N/A | NONE | | | k7 | VARCHAR(20) | Yes | false | N/A | NONE | +-
  22. --------------+-------+--------------+------+-------+---------+-------+
  23.  +-------+--------------+------+-------+---------+-------+ | k1 | TINYINT | Yes | true | N/A | | | k2
  24.  | SMALLINT | Yes | true | N/A | | | k3 | INT | Yes | true | N/A | | | k4 | BIGINT | Yes | true | N/A | 
  25. | | k5 | DECIMAL(9,0) | Yes | true | N/A | | | k6 | DOUBLE | Yes | false | N/A | NONE | | k7 | VARCHAR(20) 
  26. | Yes | false | N/A | NONE | +-------+--------------+------+-------+---------+-------+

Keywords

CREATE, MATERIALIZED, VIEW

相似文档
  • CREATE ODBC TABLE Description: PALO 支持以创建外部表的方式,通过 ODBC 协议访问外部数据源,进行读写操作。目前云上支持的 ODBC 数据源包括: MySQL。 Oracle。 PostgreSQL。 创建 ODBC 外部表需要在建表语句中填写外部数据源连接信息。
  • CREATE REPOSITORY Description: 该语句用于创建仓库。仓库用于属于备份或恢复。仅 admin 用户可以创建仓库。 CREATE [READ ONLY] REPOSITORY `repo_name` WITH BROKER `bos` ON LOCATION `repo_location` PROPERTIES ("key"="value", ...);
  • CREATE RESOURCE Description: 用于创建一种资源。资源可以被其他流程引用。 目前支持的资源类型: ODBC: CREATE EXTERNAL RESOURCE `resource_name` [PROPERTIES] PROPERTIES 用于设置 ODBC 连接信息。
  • CREATE TABLE Description: 该命令用于创建一张表。本文档主语介绍创建 PALO 自维护的表的语法。 CREATE TABLE [IF NOT EXISTS] [database.]table ( column_definition_list, [index_definition_list] ) [engine_type] [keys_type] [table_comment] [partition_info] distribution_info [rollup_list] [properties] [extra_properties]
  • DROP REPOSITORY Description: 该语句用于删除一个已创建的仓库。仅 root 或 superuser 用户可以删除仓库。 DROP REPOSITORY `repo_name`; 删除仓库,仅仅是删除该仓库在 PALO 中的映射,不会删除实际的仓库数据。删除后,可以再次通过指定相同的参数映射到该仓库。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部