news 2026/2/12 10:47:03

doris中的加速聚合查询

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
doris中的加速聚合查询

在 Doris 中,加速聚合查询主要通过以下机制实现:


1.预聚合(Rollup)

通过预计算聚合结果,减少查询时的计算量:

-- 创建 Rollup 表 ALTER TABLE sales ADD ROLLUP rollup_city (city, sum(sales_amount));
  • 效果:查询SELECT city, SUM(sales_amount) FROM sales GROUP BY city直接命中 Rollup 数据。

2.物化视图(Materialized View)

存储预先计算的聚合结果:

CREATE MATERIALIZED VIEW mv_sales AS SELECT region, product, SUM(amount) FROM sales GROUP BY region, product;
  • 自动路由:查询匹配时自动命中物化视图。

3.分区与分桶优化

  • 分区(Partition):按时间范围拆分数据,缩小扫描范围。
  • 分桶(Bucket):对分区内数据哈希分桶,并行处理。

4.Runtime Filter

在 Join 场景下动态过滤数据:

SET runtime_filter_mode="GLOBAL";
  • 原理:将大表 Join 键的过滤条件推送至小表扫描阶段。

5.向量化执行引擎

  • 批处理:单次处理多行数据,减少函数调用开销。
  • 列式存储:仅读取查询所需的列。

适用场景对比

机制适用场景优势
Rollup固定维度聚合零计算开销
物化视图复杂聚合 & 多维度组合灵活适配查询
Runtime Filter大表 Join 小表的聚合减少 Shuffle 数据量

最佳实践

  1. 高频聚合查询优先使用 Rollup 或物化视图。
  2. Join 聚合启用 Runtime Filter。
  3. 数据规模超过亿级时,结合分区与分桶提升并行度。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/3 19:56:59

图解说明QListView内部信号与槽机制

深入Qt界面开发:一张图看懂 QListView 的信号与槽机制你有没有遇到过这样的情况?在用QListView做播放列表时,用户双击了一首歌,你想让它立刻播放——但奇怪的是,有时候点击没反应,有时候又连续触发两次&…

作者头像 李华
网站建设 2026/2/6 13:57:32

ECU执行UDS 31服务的安全控制策略详解

ECU如何安全执行UDS 31服务?从原理到实战的深度拆解 你有没有想过,为什么一辆车在4S店能“一键重置”某些功能,而在路边用普通诊断仪却完全无法操作? 这背后,很可能就是 UDS 31服务 在起作用——它像一把“工程师钥…

作者头像 李华
网站建设 2026/2/5 16:52:41

终极JavaScript代码美化工具实战指南:让混乱代码焕然一新

终极JavaScript代码美化工具实战指南:让混乱代码焕然一新 【免费下载链接】de4js JavaScript Deobfuscator and Unpacker 项目地址: https://gitcode.com/gh_mirrors/de/de4js 你是否曾经面对过这样的场景?接手一个老项目时,发现代码缩…

作者头像 李华
网站建设 2026/2/3 15:05:26

通过Kibana调试Elasticsearch:正确理解201 Created响应

Kibana调试Elasticsearch:别被201 Created骗了!这才是数据写入的真相你有没有遇到过这种情况——在Kibana Dev Tools里敲下一条POST /logs/_doc请求,回车一按,绿色的“Status: 201 Created”赫然弹出,心里一喜&#xf…

作者头像 李华