news 2026/6/15 15:26:50

doris中的分区上卷

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
doris中的分区上卷

在 Doris 中,分区上卷(Roll-Up)是一种优化存储和查询性能的重要机制,其核心是通过合并细粒度分区(如日分区)为粗粒度分区(如月分区或年分区),减少分区数量并提升查询效率。

当基表数据经过聚合处理后,各分区的数据量可能会显著减少。在这种情况下,可以采用分区上卷策略,以降低物化视图的分区数量。


1. 分区上卷的原理

假设原始表按天分区:

CREATE TABLE sales ( event_day DATE, product_id INT, revenue DECIMAL(10, 2) ) PARTITION BY RANGE(event_day) ( PARTITION p20230101 VALUES [('2023-01-01'), ('2023-01-02')), PARTITION p20230102 VALUES [('2023-01-02'), ('2023-01-03')), ... );

通过分区上卷,可将多个日分区合并为月分区:

ALTER TABLE sales ROLLUP (PARTITION p202301 TO p202301);

2. 操作步骤

2.1 启用分区上卷

在表创建时定义上卷策略:

CREATE TABLE sales ( ... ) PARTITION BY RANGE(event_day) ROLLUP ( TO YEAR(event_day), -- 按年上卷 TO MONTH(event_day) -- 按月上卷 );
2.2 手动触发上卷
ALTER TABLE sales ROLLUP PARTITION p20230101, p20230102 TO PARTITION p202301;

3. 使用场景

  • 存储优化:合并旧分区减少小文件数量,降低存储开销。
  • 查询加速:查询月数据时直接访问月分区,避免扫描多个日分区。
  • 自动化管理:结合调度工具定期执行上卷操作。

4. 注意事项

  • 不可逆性:上卷后原分区数据不可恢复,需提前备份。
  • 权限要求:需ALTER权限执行上卷操作。
  • 性能影响:上卷过程可能暂时占用系统资源,建议低峰期执行。

5. 示例代码

# 模拟按月自动上卷的调度逻辑 import schedule import doris_client def monthly_rollup(): last_month = "2023-12" # 合并上个月的所有日分区 doris_client.execute( f"ALTER TABLE sales ROLLUP PARTITION p{last_month}01 TO p{last_month}31 TO PARTITION p{last_month};" ) schedule.every().month.do(monthly_rollup)

通过合理使用分区上卷,可显著提升 Doris 在大数据场景下的存储与查询效率。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 9:30:52

会议精灵:用ModelEngine构建智能办公助手实战记录

摘要:本文记录了作者如何利用阿里云ModelEngine智能体和应用编排能力,开发了一款名为"会议精灵"的智能办公助手。从环境搭建、核心功能实现到工作流编排,全程手写代码,真实记录踩坑经历和解决方案。该应用可自动提取会议…

作者头像 李华
网站建设 2026/6/15 12:54:54

微信小程序vue_uniapp订奶奶茶鲜奶

文章目录具体实现截图主要技术与实现手段系统设计与实现的思路系统设计方法java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!具体实现截图 本系统(程序源码数据库调试部署讲解)带文档1万…

作者头像 李华
网站建设 2026/6/15 10:26:26

2025继续教育必备!8个降AI率工具测评榜单

2025继续教育必备!8个降AI率工具测评榜单 2025年继续教育者不可忽视的降AI率工具测评 随着学术规范日益严格,AI生成内容(AIGC)检测技术不断升级,越来越多的继续教育学员和科研人员面临论文AI率过高的问题。传统的改写…

作者头像 李华