当前位置: 首页 > news >正文

doris:物化视图概览

物化视图是既包含计算逻辑也包含数据的实体。它不同于视图,因为视图仅包含计算逻辑,本身不存储数据。

物化视图的使用场景​

物化视图根据 SQL 定义计算并存储数据,且根据策略进行周期性或实时性更新。物化视图可直接查询,也可以将查询透明改写。它可用于以下几个场景:

查询加速​

在决策支持系统中,如 BI 报表、Ad-Hoc 查询等,这类分析型查询通常包含聚合操作,可能还涉及多表连接。由于计算此类查询结果较为消耗资源、响应时间可能长达分钟级,且业务场景往往要求秒级响应,可以构建物化视图,对常见查询进行加速。

轻量化 ETL(数据建模)​

在数据分层场景中,可以通过嵌套物化视图来构建 DWD 和 DWM 层,利用物化视图的调度刷新能力。

湖仓一体​

针对多种外部数据源,可以将这些数据源所使用的表进行物化视图构建,以此来节省从外部表导入到内部表的成本,并且加速查询过程。

物化视图的分类​

按照数据时效性分类:同步 vs 异步​

  • 同步物化视图需要与基表的数据保持强一致性。

  • 异步物化视图与基表的数据保持最终一致性,可能会有一定的延迟。它通常用于对数据时效性要求不高的场景,一般使用 T+1 或小时级别的数据来构建物化视图。如果时效性要求高,则考虑使用同步物化视图。

目前,同步物化视图不支持直接查询,而异步物化视图支持直接查询。

按照支持透明改写的 SQL 模式分类:单表 vs 多表​

物化视图的定义 SQL 可以包含单表查询,也可以包含多表查询。从使用表的数量角度出发,可以划分物化视图为单表物化视图或多表物化视图。

  • 对于异步物化视图,可以使用单表或多表。

  • 对于同步物化视图,只能使用单表。

按照物化视图刷新分类:全量刷新 vs 分区增量刷新 vs 实时刷新​

对于异步物化视图

  • 全量刷新:计算物化视图定义 SQL 的所有数据。

  • 分区增量刷新:当物化视图基表的分区数据发生变化时,识别出物化视图对应变化的分区,并仅刷新这些分区,从而实现分区增量刷新,而无需刷新整个物化视图。

对于同步物化视图

  • 可以理解为实时更新,保持与基表的数据一致。

相关文章:

  • 【ISO 14229-1:2023 UDS诊断(会话控制0x10服务)测试用例CAPL代码全解析①】
  • Linux系统运行模式和链接
  • 什么是UV环形光源
  • Python表格可视化工具:将HTML表格转换为精美图片
  • Java 用于人工智能
  • 借助天工AI 生成产品彩页体验 (5G 远距CPE产品彩页)
  • 深度学习、传统机器学习和卷积神经网络中的Transformer、scikit-learn和TextCN
  • DeepSeek教unity------MessagePack-04
  • 【C语言】C语言 好声音比赛管理系统(含源码+数据文件)【独一无二】
  • Python的那些事第二十一篇:Python Web开发的“秘密武器”Flask
  • 知识拓展:Python序列化模块 marshal 模块详解
  • 坑多多之ac8257 i2c1 rtc-pcf8563
  • JVM的性能优化
  • 【进阶】MySQL高级篇超详讲解!!!
  • TCP/IP参考模型和网络协议
  • 力扣-二叉树-110 平衡二叉树
  • 如何拿捏 unittest 自动化测试框架?
  • websocketpp库使用:快速搭建一个websocket服务端
  • 在带有Intel Arc GPU的Windows上安装IPEX-LLM
  • 【C++】C++ 旅馆管理系统(含 源码+报告)【独一无二】
  • 建购物网站需要多少钱/windows优化大师要会员
  • 网站公司做销售怎么样/游戏推广合作
  • 新网站建设总结/长沙网站制作关键词推广
  • 新网站如何做测试/免费优化网站
  • 做葡萄牙语网站/海外独立站
  • 注册营业执照网站/无锡网站建设方案优化