Doris学习2: 数据分布与存储机制学习笔记

Doris 数据分布与存储机制学习笔记(简化版)

Doris底层存储引擎------基于LSM-Tree的设计。

  • Memtable = 内存中的快速笔记本
  • SSTable = 磁盘上的正式文件
  • Compaction = 定期整理文件,优化存储

一、核心流程

  1. 写入流程(重点!)

数据写入 → 内存Memtable → 磁盘SSTable → Compaction合并

  1. 读取流程

查询请求 → 检查Memtable → 检查SSTable → 合并结果

二、详细解释

  1. 写入过程

Memtable:内存中的有序数据结构(像快速笔记本)

Flush:当Memtable写满后,批量写入磁盘(像把笔记本内容整理成正式文件)

SSTable:磁盘上的有序数据文件(Sorted Strings Table)

  1. Compaction合并

Minor Compaction:合并小文件,快速响应

Major Compaction:深度合并,优化存储

自动调度:后台自动执行,不影响正常使用

三、为什么这样设计?

  1. 写入快的原因

内存写入:内存速度快,像在笔记本上写字

批量Flush:一次性写入磁盘,减少IO次数

顺序写:磁盘顺序写比随机写快很多

  1. 读取时的处理

多版本合并:需要合并Memtable和SSTable的数据

布隆过滤器:快速判断数据是否存在,避免无效读取

四、带来的好处

写入性能高:适合高频写入场景

存储优化:列式存储+压缩,节省空间

高并发支持:多线程同时写入,互不干扰

五、可能的问题

读放大:读取时需要合并多个文件

写放大:Compaction过程中数据被多次重写

Compaction性能:合并过程可能影响查询

六、实际效果

写入:像在笔记本上快速记录,然后整理成正式文件

读取:需要查看笔记本和文件,然后合并结果

这种设计让Doris在写入性能和存储效率上表现出色,虽然读取需要合并,但通过多种技术手段已经很好地解决了这个问题!

相关推荐
要开心吖ZSH1 天前
《通过SeaTunnel 把 MySQL 的数据搬进 Doris》番外篇:容量、切分与速度——Doris 能扛多少,比 MySQL 快多少
mysql·性能优化·doris·分区·分表·分桶
要开心吖ZSH1 天前
SeaTunnel + Doris + MySQL-CDC 数据同步故障排查个人笔记
数据库·mysql·doris·seatunnel·mysql cdc
俊哥大数据10 天前
基于 FlinkSQL + Paimon + Doris 的车联网流批一体湖仓实践 —— 第 1 章 业务背景与传统 Lambda 架构痛点
大数据·doris·湖仓一体·flinksql·paimon
俊哥大数据10 天前
基于 FlinkSQL + Paimon + Doris 的车联网流批一体湖仓实践 —— 第 2 章 流批一体湖仓总体架构与三条分区契约铁律
flink·doris·湖仓一体·paimon
俊哥大数据10 天前
基于 FlinkSQL + Paimon + Doris 的车联网流批一体湖仓实践 —— 第 4 章 Kafka 企标报文入湖(ODS 表设计)
flink·doris·湖仓一体·paimon·流批一体
俊哥大数据10 天前
基于 FlinkSQL + Paimon + Doris 的车联网流批一体湖仓实践 —— 第 3 章 Paimon 1.4 湖仓底座与 Catalog 配置
flink·doris·湖仓一体·paimon
EatFan21 天前
从T+1到分钟级:湖仓一体在大厂的真实落地收益对照(携程/网易云信/腾讯)
starrocks·flink·硬件架构·doris·湖仓一体·paimon
Together_CZ1 个月前
DeepSeek-V4.1-Flash:Pushing the Limits of KV Cache Compression——推动 KV 缓存压缩的极限
缓存·llm·compression·kv cache·deepseek·v4.1-flash·推动 kv 缓存压缩的极限
制造数据与AI践行者老蒋1 个月前
智联工坊IoT 数据采集工程实战:2000 万条可复现设备数据生成(WorkBuddy 落地)
doris·制造业数字化·workbuddy·iot 数据采集·模拟数据生成·数据质量校验·dolphinschedul
Zenova EdgeOS1 个月前
工业边缘 RocksDB:从 LSM 树到高性能 KV 的工程实战
工业边缘·rocksdb·lsm·物联网关