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

doris数据分片逻辑

        Apache Doris 的数据分片逻辑采用多级分区策略,通过分区(Partition)+分桶(Bucket)‌ 的复合机制实现数据高效管理与查询优化,具体逻辑如下:


一、分层逻辑架构

  1. 分区 (Partition)

    • 作用‌:按业务场景划分数据范围,支持时间范围分区‌(如按天/月)或 ‌枚举值分区‌(如按地区/类型)
    • 优势‌:通过分区剪枝减少查询扫描范围,例如查询某时段数据时仅需扫描对应分区
    • 语法示例‌:PARTITION BY RANGE(date) (PARTITION p202305 VALUES [('2023-05-01'), ('2023-06-01')))
  2. 分桶 (Bucket)

    • 作用‌:在分区内进一步将数据划分为逻辑分桶,支持 ‌哈希分桶‌(按指定列哈希)或 ‌随机分桶
    • 优势‌:保证数据均匀分布,并行计算时负载均衡,提升查询效率
    • 语法示例‌:DISTRIBUTED BY HASH(user_id) BUCKETS
  3. Tablet

    • 定义‌:分桶后的最小物理存储单元,每个分桶对应多个 Tablet
    • 特性‌:支持多副本存储(默认3副本),保障数据可靠性和查询高可用性

二、数据分布策略

  • 横向扩展‌:分区支持动态增删,适应时间序列数据增长需求
  • 纵向切分‌:分桶数量和字段可配置,优化不同查询模式(如高频点查选择高基数列分桶)
  • 负载均衡‌:数据自动均匀分布到集群节点,避免热点问题

三、典型应用场景
‌        时序数据存储‌
                按时间分区后哈希分桶,加速时间范围过滤与聚合查询
        ‌高并发点查‌
                选择高基数列(如用户ID)分桶,利用前缀索引快速定位数据块
        ‌宽表分析‌
                随机分桶分散存储压力,结合列式存储优化复杂查询性能

四、示例分片流程

-- 创建复合分区表
CREATE TABLE user_behavior (date DATE,user_id INT,action VARCHAR(20)
) 
PARTITION BY RANGE(date) (PARTITION p202305 VALUES [('2023-05-01'), ('2023-06-01'))
)
DISTRIBUTED BY HASH(user_id) BUCKETS 8;

        物理存储‌:每个 user_id 哈希值映射到 8 个分桶,每个分桶对应多个 Tablet,最终存储为物理文件
‌        查询优化‌:查询 date='2023-05-15' AND user_id=123 时,仅扫描 p202305 分区中对应分桶的 Tablet
        通过这种多层分片机制,Doris 平衡了数据管理灵活性与查询性能需求。

相关文章:

  • Stack Queue
  • 跳空高低开策略思路
  • 蓝桥杯框架-按键数码管
  • Map更简洁的编码构建
  • 【Linux】48.高级IO(2)
  • vs2017编译ncnn库
  • PostgreSQL架构
  • C语言入门
  • Vue3 Form 表单限制输入小写字母、数字和下划线
  • 使用VGG-16模型来对海贼王中的角色进行图像分类
  • 同源策略深度防御指南:CSP 高级应用与企业微信全场景适配(含 report-uri 实战)
  • 【产品经理从0到1】用户端产品设计与用户画像
  • 华三(H3C)IRF堆叠心跳的LACP MAD、BFD MAD和ARP MAD差异
  • HJ17 坐标移动【牛客网】
  • C++之set与map介绍
  • 《光与影:33号远征队》栩栩如生的角色动画是如何创建的?
  • vue+springboot+element-ui实现table的树懒加载
  • Redis学习专题(三)主从复制
  • Java大师成长计划之第28天:处理多线程的Web应用
  • python-数据可视化(大数据、数据分析、可视化图像、HTML页面)
  • 为俄乌一日三通电话,这里成“关键战场”?
  • 北美票房|华纳又赢了,《死神来了6》开画远超预期
  • 鸿蒙电脑正式发布,国产操作系统在个人电脑领域实现重要突破
  • 学生靠老干妈下饭、职工餐肉类又多又好?纪委出手整治
  • “大国重器”、新型反隐身雷达……世界雷达展全面展示尖端装备
  • 关税影响下沃尔玛想涨价,特朗普施压:自行承担,别转嫁给顾客