news 2026/8/28 22:36:33

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/8/29 8:46:24

微信小程序vue_uniapp公益扶贫捐赠系统

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

作者头像 李华
网站建设 2026/8/29 7:07:46

微信小程序uniapp-vue驾考小助手驾校

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

作者头像 李华
网站建设 2026/8/28 4:23:17

探索二阶非线性自抗扰控制器(ADRC)

二阶非线性自抗扰控制器(ADRC),用的模块搭建的,控制简单二阶传递函数,可以联合粒子群在线优化自抗扰参数(但粒子群不包含在这里面)。 在控制领域,二阶非线性自抗扰控制器(ADRC&…

作者头像 李华
网站建设 2026/8/29 7:07:48

【RK3588开发】配置基于 VS Code + CMake 的 RK3588 交叉编译开发环境

配置基于 VS Code CMake 的 RK3588 交叉编译开发环境 (1)安装cmake工具(2)编写 CMake 交叉编译配置文件 (toolchain.cmake) 这段 CMake 配置代码的目的是为了告诉 CMake 如何进行交叉编译 set(CMAKE_SYSTEM_NAME Linux) set(CMAK…

作者头像 李华
网站建设 2026/8/29 7:08:05

机器学习——罗辑回归

一、逻辑回归概念点 1.1 逻辑回归优缺点 逻辑回归(Logistic Regression)是一种广泛使用的统计分析方法和机器学习算法,主要用于处理二分类问题(即因变量为二元类别,如0和1、是和否等)。尽管名字中有“回…

作者头像 李华