每天写点什么2026-03-19-Doris三种存储模型

Doris 数据模型详解

1. 明细模型 (Duplicate Key Model)

明细模型是Doris中最基础的数据模型,存储最原始的明细数据,不做任何预聚合处理。

特点:

  • 适合存储需要保留所有原始数据的场景
  • 查询时会扫描所有相关数据行
  • 支持任意列作为排序键(DUPLICATE KEY)
  • 数据写入后不会进行去重或聚合

应用场景:

  • 日志分析系统,需要保留所有原始日志记录
  • 交易流水记录,需要查询每笔交易的详细信息
  • 用户行为轨迹分析,需要完整的行为序列

示例:

sql 复制代码
CREATE TABLE user_actions (
    user_id BIGINT,
    action_time DATETIME,
    action_type VARCHAR(20),
    device_id VARCHAR(50),
    ip_address VARCHAR(20)
)
DUPLICATE KEY(user_id, action_time)
DISTRIBUTED BY HASH(user_id) BUCKETS 10;

2. 主键模型 (Unique Key Model)

主键模型保证相同主键的数据行只保留最新版本,实现数据的更新和删除功能。

特点:

  • 支持数据的更新(UPDATE)和删除(DELETE)操作
  • 相同主键的数据会自动合并,只保留最新版本
  • 需要指定UNIQUE KEY作为主键列
  • 适合需要频繁更新的数据场景

应用场景:

  • 用户资料表,需要更新用户信息
  • 商品库存表,需要实时更新库存数量
  • 订单状态表,需要变更订单状态

示例:

sql 复制代码
CREATE TABLE user_profiles (
    user_id BIGINT,
    username VARCHAR(50),
    email VARCHAR(100),
    phone VARCHAR(20),
    last_login DATETIME,
    update_time DATETIME
)
UNIQUE KEY(user_id)
DISTRIBUTED BY HASH(user_id) BUCKETS 10;

3. 聚合模型 (Aggregate Key Model)

聚合模型会在数据导入时按照指定的聚合键进行预聚合计算,大幅提升查询性能。

特点:

  • 导入时自动按AGGREGATE KEY进行聚合计算
  • 数值列需要指定聚合函数(SUM, MAX, MIN等)
  • 大幅减少存储空间和查询计算量
  • 适合分析型查询场景

应用场景:

  • 网站访问统计,按天/小时聚合PV/UV
  • 销售报表,按地区/产品聚合销售额
  • 监控指标,按时间窗口聚合CPU/内存使用率

示例:

sql 复制代码
CREATE TABLE sales_summary (
    product_id INT,
    sale_date DATE,
    region VARCHAR(50),
    total_sales DECIMAL(12,2) SUM,
    order_count BIGINT SUM,
    max_price DECIMAL(12,2) MAX
)
AGGREGATE KEY(product_id, sale_date, region)
DISTRIBUTED BY HASH(product_id) BUCKETS 10;
相关推荐
奋斗的小乌龟18 小时前
动态创建Agent02
java
ZFSS18 小时前
Localization Translate API 集成与使用指南
java·服务器·数据库·人工智能·mysql·ai编程
摇滚侠18 小时前
Java 零基础全套教程,集合框架,笔记 153-163
java·开发语言·笔记
nannan123218 小时前
后端技术栈梳理
java
L、21819 小时前
CANN算子开发调试实战:从“Segmentation Fault“到定位根因的完整流程
java·开发语言
东风破13719 小时前
达梦DMDRS搭建、以及DMDRS双向同步
数据库·oracle·dm达梦数据库
索木木20 小时前
NCCL SHARP 和 TREE算法
java·服务器·算法
KaMeidebaby20 小时前
卡梅德生物技术快报|抗独特型抗体开发:半抗原检测技术瓶颈拆解,抗独特型抗体开发工程化实践
前端·数据库·人工智能·其他·百度·新浪微博
NiceCloud喜云20 小时前
Claude Files API 深入:从上传、复用到配额管理的工程化指南
android·java·数据库·人工智能·python·json·飞书
超梦dasgg21 小时前
Java 生产环境 MQ 技术选型全解析
java·开发语言·java-rocketmq·java-rabbitmq