物化视图推荐与管理

随着MaxCompute的深入使用,会出现对MaxCompute的表有很多重复查询的情况,并且不同使用者之间互相不知道其他人也在使用同样的计算逻辑。为了提高用户的计算效率、减少重复计算,同时加速用户计算。MaxCompute提供物化视图智能计算加速,为您智能分析推荐创建物化视图。本文为您介绍如何通过智能分析创建物化视图。

使用限制

  • 只支持在单个项目内做智能分析推荐,不支持跨项目或多项目联合分析推荐。

  • 为了更精准地生成物化视图推荐,开启物化视图推荐后,需要满足以下条件,才能在物化视图推荐页面查看到相关推荐。

    • 周期任务连续运行3天以上。

    • 公共子查询中的输入数据量大于1000000行。

    • 公共子查询中需要包含JOIN或AGG(聚合,Aggregation)等涉及数据重组计算的运算符。

  • 当前物化视图推荐功能仅支持华东1(杭州)、华东2(上海)、华北2(北京)、华北3(张家口)、华南1(深圳)、西南1(成都)、德国(法兰克福)地域。

使用方式

查看物化视图推荐

您可以在物化视图推荐页签查看在当前地域所有项目或指定项目下创建推荐物化视图后可受益的作业影响面及推荐详情,以辅助您决策是否采纳推荐建议。

  1. 登录MaxCompute控制台,在左上角选择地域。

  2. 在左侧导航栏选择工作区 > 物化视图

  3. 物化视图页面,单击物化视图推荐

  4. 物化视图推荐页签,填写如下筛选参数。查看是否有可推荐的物化视图生成项。

    参数

    说明

    项目名称

    在下拉列表中选择MaxCompute项目名称。

    源表名称

    输入表名称,支持模糊搜索。也可以输入多个表名称,使用半角逗号(,)间隔。

    分析时间区间

    选择起始和截止时间,筛选指定日期区间的公共子查询。

在可推荐的物化视图生成项中,您可以查看如下信息:

  • 影响面指标:

    指标

    说明

    预估每日可受益作业数

    创建推荐的物化视图后预估每天可以受益的作业数量。

    可受益作业当前的CU时消耗及占比/天

    创建推荐的物化视图后,预估能够受益的作业当前每天的CU时消耗量以及占所有作业每天的CU时消耗量的比例,该比例越高表示影响面越大。

    可受益作业当前的计算量消耗及占比/天

    创建推荐的物化视图后,预估能够受益的作业当前每天的计算量(扫描量*复杂度)占所有作业每天的计算量(扫描量*复杂度)的比例,该比例越高表示影响面越大。

    预估创建所有MV需要的计算量

    创建推荐的物化视图需要产生一次性资源消耗,当创建MV时使用按量付费计算资源运行会产生相应计算成本,您可以依据此计算量(扫描量*复杂度)估计创建成本。

  • 公共子查询列表,列表说明如下:

    列名称

    说明

    物化视图摘要

    公共子查询的摘要信息。

    • Aggregate表示推荐的公共子查询是否包含聚合操作。

    • Inputs列出公共子查询使用的所有源表名称。

    单击目标摘要信息,可以进入公共子查询详情面板查看当前公共子查询被重复使用的作业和SQL脚本信息,包含如下内容:

    • 公共子查询编号:后台自动生成的唯一编号,用来关联物化视图。

    • 公共子查询:公共子查询的SQL脚本。

      • 单击image按钮展开或者全屏查看SQL脚本。

      • 单击image按钮复制SQL脚本。

      • 单击image按钮下载SQL脚本。

    • 原始SQL列表:目前只会展示最近5天原始使用过该子查询的作业实例,包括如下内容:

      • Instance ID:执行过该子查询的原始作业实例ID。

      • 提交任务项目名称:执行作业实例的项目名称。

      • 提交人:作业的提交人。

      • 执行时间(s):子查询的执行时间,单位为秒。

      • 原始查询SQL:可执行如下操作。

        • 查看详情:单击查看SQL详情。

        • 下载:单击下载对应的SQL。

    项目

    发起作业包含该公共子查询的项目。

    推荐指数

    推荐创建物化视图指数。1星到5星,星数越多表示越推荐创建物化视图。

    可受益作业数

    当前公共子查询被多少其他作业使用。

    扫描量

    当前公共子查询的数据扫描量。

    复杂度

    当前公共子查询的复杂度。

    创建该MV所需要的计算量

    创建该物化视图所需要的计算量=当前公共子查询的数据扫描量*当前公共子查询的复杂度。

    分析时间

    当前公共子查询的推荐分析时间。

    包含操作

    • 包含连接操作:SQL中带有多表连接。

    • 包含聚合操作:SQL中带有聚合操作。

    支持过滤。

    创建状态

    当前公共子查询是否已经创建物化视图。

    操作

    对于创建状态为未创建的公共子查询可执行的操作:创建物化视图。单击进入物化视图创建面板。

    对于创建状态为已创建的公共子查询可执行的操作:查看物化视图。单击进入物化视图详情页。

创建物化视图

您可以结合实际业务需要与推荐详情,在物化视图推荐页面,选择是否创建物化视图。如需创建,步骤如下:

  1. 单击操作列的创建物化视图

  2. 创建物化视图页面中配置物化视图的具体参数。

    参数

    说明

    物化视图名称

    默认填写的是rec_mv_{$project_name}_{$timestamp},建议您根据自身需要自定义物化视图名称,以字母或数字开头,包含字母、数字和下划线(_)。

    刷新方式

    可选值如下:

    • 固定时间间隔刷新:按照固定分钟、小时或天来更新物化视图数据。

    • 时间管理Cron模式:采用通用Cron模式定义物化视图数据更新。

    脚本

    推荐创建物化视图的SQL脚本。

    • 单击image按钮展开或者全屏查看SQL脚本,

    • 单击image按钮复制SQL脚本。

    • 单击image按钮下载SQL脚本。

  3. 单击确定,立即创建物化视图。

重要

创建物化视图将涉及存储成本,其存储价格及计算方式与普通表相同。此外,当创建物化视图时,若采用按量付费计算资源进行运行,还会产生相应的计算成本。可以根据此计算量(扫描量*复杂度)来估算创建成本。

管理物化视图并查看实际收益

  1. 登录MaxCompute控制台,在左上角选择地域。

  2. 在左侧导航栏选择工作区 > 物化视图

  3. 物化视图页面,单击物化视图管理及收益

  4. 选择目标MaxCompute项目和收益统计区间,可以查看已创建的物化视图列表及收益,并管理物化视图。

    • 收益指标说明。

      指标

      说明

      命中次数

      物化视图在收益统计区间内的被调用次数。

      节省计算时长

      所有命中所选项目物化视图的作业在收益统计区间内的计算时长相较于创建物化视图前计算时长的节省值。

      节省CU时

      所有命中所选项目物化视图的作业在收益统计区间内的CU时消耗相较于创建物化视图前CU时消耗的节省值。

      节省计算量

      所有命中所选项目物化视图的作业在收益统计区间内的计算量(扫描量*复杂度)相较于创建物化视图前计算量(扫描量*复杂度)的节省值。仅统计使用按量付费计算资源运行的作业。

      节省计算费用(目录价)

      所有命中所选项目物化视图的作业节省计算量*0.3元/GB(按量付费标准版SQL计算单价)。

    • 物化视图列表说明。

      列名称

      说明

      物化视图名称

      物化视图的名称。

      命中次数

      物化视图在收益区间内(自MV创建以来或最近1天)被调用的次数。

      节省计算时长

      命中该物化视图的作业在收益统计区间内的计算时长相较于创建物化视图前计算时长的节省值。

      节省CU时

      命中该物化视图的作业在收益统计区间内的CU时消耗相较于创建物化视图前CU时消耗的节省值。

      节省计算量

      命中该物化视图的作业在收益统计区间内的计算量(扫描量*复杂度)相较于创建物化视图前计算量(扫描量*复杂度)的节省值。仅统计使用按量付费计算资源运行的作业。

      创建时间

      物化视图创建的时间。

      状态

      物化视图状态,有如下两种状态:

      • 已创建

      • 创建中

      操作

      可对物化视图执行操作:

      • 查看详情:单击查看物化视图属性及被调用使用情况和调用效果,物化视图详情页面包含如下内容:

        • 物化视图名称。

        • 基本信息

          • 创建时间:物化视图的创建时间。

          • 表结构更新时间物化视图的表结构更新时间。

          • 存储大小:物化视图占用的存储大小。

          • 刷新频率(分钟):物化视图的刷新频率。

          • 刷新时间:物化视图上一次刷新的时间。

        • 代码详情:定义物化视图的SQL脚本。

          • 单击image按钮展开或者全屏查看SQL脚本

          • 单击image按钮复制SQL脚本。

          • 单击image按钮下载SQL脚本。

        • 调用详情:展示所有调用该物化视图的作业明细,包含如下内容:

          • Instance ID作业对应的Instance ID。可点击前往作业洞察查看该作业的详细信息。

          • 调用MV执行时间(s)该作业调用物化视图时执行的时间长度,单位为秒。

          • 节省时间(s)该作业调用了物化视图时执行节省的时间。

          • 消耗CU时该作业运行消耗的CU时。

          • 节省CU时该作业因调用了物化视图节省的CU时消耗。

          • 计算量该作业运行的计算量(扫描量*复杂度)。

          • 节省计算量该作业因调用了物化视图节省的计算量(扫描量*复杂度)。

      • 删除:单击删除物化视图。