视图的作用与功能,基本视图的主要作用

首页 > 生活 > 作者:YD1662024-05-20 22:20:37

导读 物化视图(Materialized View,以下简称 MV)是将查询结果预先计算并存储的一种特殊的物理表,当执行相关查询时,可以自动复用预计算结果,提高查询性能。物化视图作为一种查询加速器,在云计算和大数据时代有着广泛的用途。今天和大家分享物化视图在 MaxCompute 的实践。

本次介绍将围绕下面四点展开:

1. MaxCompute 和物化视图

2. 功能设计和具体实现

3. 智能推荐及自动物化视图

4. 总结和展望

分享嘉宾|雷春蔚 阿里云 MaxCompute SQL引擎技术专家,Apache Calcite PMC

编辑整理|李笑宇

内容校对|李瑶

出品社区|DataFun


01

MaxCompute 和物化视图

MaxCompute 是一个多功能、高性能、易使用的企业级的数据仓库服务,已经为阿里巴巴集团提供服务达 14 年。目前每日 DML 的任务数超过了 2,600 万,单日的数据量规模达到 EB 级,服务集团内用户 4W 。在如此大的体量之下,也暴露出几个问题:随着业务的规模越来越大,重复计算越来越多,消耗了大量资源;对于计算结果的产出时效有了更高要求;通过大批量改造脚本来进行数据治理的成本高,难度大。最终物化视图成为解决以上问题的最佳方案。

与普通视图(Virtual View)不同,物化视图存储的是查询结果的物理副本,而普通视图仅仅是一个虚拟的表,它在查询时才动态地生成结果。物化视图的发展历史与数据库技术的进步紧密相关。以下是物化视图发展的一些关键阶段。

视图的作用与功能,基本视图的主要作用(1)

物化视图的优点如下:

物化视图也有一些缺点:

02

物化视图的设计和实现

视图的作用与功能,基本视图的主要作用(2)

在物化视图的设计阶段,我们关注物化视图的创建、维护和应用。

1. 如何创建物化视图

MaxCompute 支持创建普通物化视图、分区物化视图、聚簇物化视图和穿透物化视图,具体的创建方式体现在建表语句中,PARTITIONED BY (col_name) 语句指定创建物化视图表为分区表,CLUSTERED BY (col_name) SORTED BY (col_name [ASC | DESC])INTO number_of_buckets BUCKETS 语句指定创建物化视图为聚簇表。

视图的作用与功能,基本视图的主要作用(3)

在物化视图创建的过程中有两个关键点,第一个是需要建立一个基表到物化视图的索引,这样在查询时就能快速地获取到相关的物化视图。第二个是基表数据版本保存,在物化视图的元数据中需要保存对应基表的数据版本;另外对于分区物化视图,要求分区物化视图的分区列和基表保持一致,这样的话,可以实现分区级的增量更新。

视图的作用与功能,基本视图的主要作用(4)

首页 123下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.