第6.2 章:StarRocks查询加速——视图和物化视图

目录

一、视图

1.1 视图定义

1.2 视图优势

1.3 视图创建

二、物化视图

2.1 概述

2.2 同步物化视图(Rollup)

2.2.1 概述

2.2.2 应用案例

2.3 异步物化视图

2.3.1 概述

2.3.2 引入背景

2.3.3 使用场景

2.3.4 同步vs异步

2.3.5 应用案例

注:本篇文章阐述的是StarRocks-3.2版本的物化视图相关内容。

一、视图

1.1 视图定义

   StarRocks也拥有视图功能,且其与MySQL中的视图概念及语法非常类似。StarRocks中的视图也是一种虚拟存在的表,其行和列的数据来自定义视图查询中使用的表,并且是在使用视图时动态生成的,只保存了sql逻辑,不保存查询结果。视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中。那些用于产生视图的表叫做该视图的基表

1.2 视图优势

  • 重用sql语句;
  • 简化复杂的sql操作,不必知道它的查询细节;
  • 保护数据,提高安全性。

1.3 视图创建

   创建视图的语法与MySQL的语法基本一致:

#创建视图的语法
create view view_name  as  select_statement;

#1.创建视图的例子
create view myv1 as
select device_code,
       device_price,
       total
from table01 a
join table02 b 
on a.user_id  = b.user_id;

#2.查询视图的例子
select * from myv1;

#3.修改视图的语法
alter view view_name
As select_statement;

#修改视图的例子
alter view myv1 as
select device_code,
       device_price,
	   total
from table01 a
join table02 b
on a.user_id  = b.user_id
limit 1;

#删除视图
drop view [if exists] myv1;

#查询视图的定义
show create view myv1;

二、物化视图

2.1 概述

   物化视图是在基表之上构建的查询逻辑并将结果持久化存储。在StarRocks中,物化视图对于用户来说是透明的(用户无感知),即用户发生查询的时候,不需要指定物化视图的名称,而是直接查询基表,StarRocks 会决定是否从物化视图读取数据。

  物化视图的作用:能针对特定业务的查询(聚合)需求,在基础表(原始数据表)基础上,通过业务聚合(或筛选)逻辑,提供一种以存储空间换取查询效率的数据解决方案。

  另一种解释:物化视图是一种典型的空间换时间的思路,其本质是根据预定义的SQL 分析语句执⾏预计算,并将计算结果持久化到另一张对用户透明但有实际存储的表中。在需要同时查询聚合数据和明细数据以及匹配不同前缀索引的场景,命中物化视图时可以获得更快的查询相应,同时也避免了大量的现场计算,因此可以提高性能表现并降低资源消耗。

  物化视图的官网地址:

同步物化视图 | StarRocks

异步物化视图 | StarRocks

2.2 同步物化视图(Rollup)

2.2.1 概述

    同步物化视图,所有对于基表的数据变更都会自动同步更新到物化视图中,不需要手动调用刷新命令。同步物化视图适合实时场景下的单表聚合查询的透明加速。

StarRocks 中的同步物化视图仅能基于单个基表创建,是一种特殊的查询加速索引(本质就是基表的一种索引)

    相关概念有:

  • 基表(Base Table)

     物化视图的驱动表,StarRocks 支持在明细表、聚合表和更新表上创建同步物化视图。

  • 刷新(Refresh)

      StarRocks同步物化视图中的数据将在数据导入基表时自动更新,无需手动调用刷新命令。

  • 查询改写(Query Rewrite)

      查询改写是指在已构建了物化视图的基表尽心进行查询时,系统自动判断是否可以复用物化视图中预计算结果的处理查询。如果可以复用,系统会直接从相关的物化视图

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值