每天写点什么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;
相关推荐
小陈工3 小时前
Python Web开发入门(十七):Vue.js与Python后端集成——让前后端真正“握手言和“
开发语言·前端·javascript·数据库·vue.js·人工智能·python
0xDevNull7 小时前
MySQL数据冷热分离详解
后端·mysql
一定要AK7 小时前
Spring 入门核心笔记
java·笔记·spring
A__tao7 小时前
Elasticsearch Mapping 一键生成 Java 实体类(支持嵌套 + 自动过滤注释)
java·python·elasticsearch
KevinCyao7 小时前
java视频短信接口怎么调用?SpringBoot集成视频短信及回调处理Demo
java·spring boot·音视频
科技小花7 小时前
数据治理平台架构演进观察:AI原生设计如何重构企业数据管理范式
数据库·重构·架构·数据治理·ai-native·ai原生
一江寒逸7 小时前
零基础从入门到精通MySQL(中篇):进阶篇——吃透多表查询、事务核心与高级特性,搞定复杂业务SQL
数据库·sql·mysql
D4c-lovetrain7 小时前
linux个人心得22 (mysql)
数据库·mysql
迷藏4947 小时前
**发散创新:基于Rust实现的开源合规权限管理框架设计与实践**在现代软件架构中,**权限控制(RBAC)** 已成为保障
java·开发语言·python·rust·开源
阿里小阿希8 小时前
CentOS7 PostgreSQL 9.2 升级到 15 完整教程
数据库·postgresql