首页/数据/数仓建模速查/Doris 分区与分桶设计
湖仓与引擎63 条

Doris 分区与分桶设计

分区(Partition)通常按时间做 Range 划分并支持动态分区,分桶(Bucket)按 Hash 打散数据;分桶数过少会限制并行度,过多会产生小文件。

数仓建模速查数据更新于 2026-10-12
分区时间 Range/动态
分桶Hash 打散
建议单桶 1-10GB
动态自动建删分区

动态分区表

动态分区表
CREATE TABLE dw.dws_trade_store_day (
  dt DATE NOT NULL,
  store_id VARCHAR(32) NOT NULL,
  pay_amt DECIMAL(18,2) SUM DEFAULT '0'
)
AGGREGATE KEY(dt, store_id)
PARTITION BY RANGE(dt) ()
DISTRIBUTED BY HASH(store_id) BUCKETS 16
PROPERTIES (
  'dynamic_partition.enable' = 'true',
  'dynamic_partition.time_unit' = 'DAY',
  'dynamic_partition.start' = '-90',
  'dynamic_partition.end' = '3'
);
动态分区自动创建未来分区,避免写入因缺分区失败。

易错点

  • 分桶数过少,单桶数据过大导致查询并行度受限

数据来源与参考

  • Apache Doris 官方文档:Data Partitioning
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌