新闻详情

新闻详情

首页 / 资讯中心 / 详情

Doris 异步物化视图实践:透明改写与自动刷新加速查询性能

发布时间:2026/11/13 19:42:01来源:尧图网络
Doris 异步物化视图实践:透明改写与自动刷新加速查询性能
Doris 异步物化视图实践透明改写与自动刷新加速查询性能Apache Doris原名 Palo是一款开源的实时分析型数据库广泛应用于大数据场景。物化视图是 Doris 提供的一项重要功能通过预先计算和存储常用查询结果显著提升查询性能。异步物化视图相比同步物化视图具有更好的灵活性和资源利用率特别适合数据量大、更新频繁的场景。Doris 异步物化视图的主要特点包括支持定义何时刷新基于时间或数据变更透明改写机制自动将查询路由到最合适的视图可与基表协同工作保证数据一致性支持多表聚合场景实现复杂查询加速1. Doris 异步物化视图概述异步物化视图是 Doris 提供的高级查询优化功能与同步物化视图相比它不会在基表数据更新时立即刷新而是按照预设策略如定时或触发式进行刷新从而降低对基表写入性能的影响。异步物化视图的核心优势在于资源利用率高避免写入时消耗大量计算资源可在业务低峰期进行刷新减少对在线查询的影响支持复杂多表关联预计算提升复杂查询性能灵活的刷新策略满足不同业务场景需求2. 透明改写机制原理与实践透明改写是 Doris 物化视图的核心优势之一它允许系统自动判断查询是否可以使用物化视图来加速而无需修改查询语句。透明改写的工作原理解析查询语句提取查询条件和聚合函数匹配与现有物化视图的定义如果查询能够从物化视图获取全部或部分数据则使用视图对于无法完全由视图满足的查询采用视图基表的混合策略实践示例-- 创建订单表 CREATE TABLE orders ( order_id BIGINT, user_id BIGINT, amount DECIMAL(10,2), order_date DATE ) ENGINEOLAP DISTRIBUTED BY HASH(user_id) BUCKETS 10 PROPERTIES (replication_num 1); -- 创建订单明细表 CREATE TABLE order_items ( item_id BIGINT, order_id BIGINT, product_id BIGINT, quantity INT, price DECIMAL(10,2) ) ENGINEOLAP DISTRIBUTED BY HASH(order_id) BUCKETS 10 PROPERTIES (replication_num 1); -- 创建异步物化视图统计用户每日订单总额 CREATE MATERIALIZED VIEW user_daily_order_mv BUILD DEFERRED REFRESH AUTO ON SCHEDULE EVERY 1 DAY PROPERTIES ( auto_refresh true ) AS SELECT user_id, order_date, SUM(amount) AS total_amount FROM orders GROUP BY user_id, order_date;上述物化视图会每天自动刷新一次当执行如下查询时Doris 会自动使用该视图加速-- 查询用户每日订单总额 SELECT user_id, order_date, SUM(amount) FROM orders GROUP BY user_id, order_date;3. 自动刷新功能配置与优化Doris 异步物化视图提供了灵活的自动刷新机制可以基于时间或数据变更触发刷新。基于时间的自动刷新CREATE MATERIALIZED VIEW daily_sales_mv BUILD DEFERRED REFRESH AUTO ON SCHEDULE EVERY 1 DAY PROPERTIES ( auto_refresh true, refresh_start_time 02:00:00 ) AS SELECT order_date, COUNT(*) AS order_count, SUM(amount) AS total_amount FROM orders GROUP BY order_date;基于数据变更的自动刷新CREATE MATERIALIZED VIEW user_order_summary_mv BUILD DEFERRED REFRESH AUTO ON COMMIT PROPERTIES ( auto_refresh true ) AS SELECT user_id, COUNT(*) AS order_count, SUM(amount) AS total_amount FROM orders GROUP BY user_id;自动刷新优化策略合理设置刷新频率避免过于频繁消耗资源对于大表物化视图考虑使用增量刷新策略在业务低峰期执行刷新操作减少对在线查询的影响监控刷新性能及时调整参数4. 多表聚合加速场景应用在数据分析场景中经常需要关联多表并执行聚合操作这是异步物化视图的重要应用场景。多表物化视图示例-- 创建产品表 CREATE TABLE products ( product_id BIGINT, category_id BIGINT, product_name VARCHAR(100), price DECIMAL(10,2) ) ENGINEOLAP DISTRIBUTED BY HASH(product_id) BUCKETS 10 PROPERTIES (replication_num 1); -- 创建多表物化视图统计各类产品销售额 CREATE MATERIALIZED VIEW category_sales_mv BUILD DEFERRED REFRESH AUTO ON SCHEDULE EVERY 2 HOUR PROPERTIES ( auto_refresh true ) AS SELECT p.category_id, COUNT(DISTINCT o.order_id) AS order_count, SUM(oi.quantity * oi.price) AS total_sales FROM orders o JOIN order_items oi ON o.order_id oi.order_id JOIN products p ON oi.product_id p.product_id GROUP BY p.category_id;该物化视图通过关联三张表预先计算各类产品的销售数据当执行如下查询时Doris 会直接使用物化视图结果-- 查询各类产品销售情况 SELECT p.category_id, COUNT(DISTINCT o.order_id) AS order_count, SUM(oi.quantity * oi.price) AS total_sales FROM orders o JOIN order_items oi ON o.order_id oi.order_id JOIN products p ON oi.product_id p.product_id GROUP BY p.category_id;5. 实战案例与注意事项完整示例-- 1. 创建基表 CREATE TABLE sales ( id BIGINT, date DATE, store_id INT, product_id INT, quantity INT, amount DECIMAL(10,2) ) ENGINEOLAP DISTRIBUTED BY HASH(store_id) BUCKETS 10 PROPERTIES (replication_num 1); -- 2. 创建异步物化视图按门店统计日销售额 CREATE MATERIALIZED VIEW store_daily_sales_mv BUILD DEFERRED REFRESH AUTO ON SCHEDULE EVERY 1 DAY PROPERTIES ( auto_refresh true ) AS SELECT store_id, date, SUM(amount) AS total_sales, SUM(quantity) AS total_quantity FROM sales GROUP BY store_id, date; -- 3. 创建异步物化视图统计产品月销量 CREATE MATERIALIZED VIEW product_monthly_sales_mv BUILD DEFERRED REFRESH AUTO ON SCHEDULE EVERY 1 DAY PROPERTIES ( auto_refresh true ) AS SELECT product_id, DATE_FORMAT(date, %Y-%m) AS month, SUM(amount) AS total_sales, SUM(quantity) AS total_quantity FROM sales GROUP BY product_id, DATE_FORMAT(date, %Y-%m); -- 4. 查询1使用门店日销售额物化视图 SELECT store_id, date, total_sales FROM store_daily_sales_mv WHERE date 2023-01-01; -- 5. 查询2使用产品月销量物化视图 SELECT product_id, month, total_quantity FROM product_monthly_sales_mv WHERE month 2023-01;注意事项物化视图的查询条件必须完全匹配才能被改写建议经常使用的查询场景创建专门的物化视图大表物化视图会占用大量存储空间需要合理规划频繁更新基表数据时自动刷新可能会影响性能可考虑在业务低峰期设置刷新物化视图不支持所有查询场景复杂查询可能仍需直接查询基表定期检查物化视图是否被有效使用及时清理无用视图以节省资源异步物化视图工作流程是否是否用户提交查询Doris 查询优化器解析查询条件匹配物化视图是否有可用物化视图使用物化视图数据直接查询基表返回查询结果基表数据更新是否配置自动刷新触发刷新机制手动刷新刷新物化视图数据不同物化视图策略对比策略类型优点缺点适用场景同步物化视图数据实时性高无需额外刷新机制每次基表更新都触发刷新影响性能数据更新不频繁查询实时性要求高异步物化视图减少对基表更新的性能影响灵活设置刷新时间数据存在一定延迟数据量大更新频繁允许一定延迟增量刷新策略节省刷新资源仅处理变更数据实现复杂需额外管理增量数据超大表物化视图资源有限触发式刷新精准控制刷新时机资源利用率高需要明确触发条件增加系统复杂性业务有明显周期性需特定条件刷新
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/13 0:43:49

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/12 23:59:09

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/13 10:09:00

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/13 13:31:48

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/13 16:11:45

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/13 0:02:27

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉