冷热数据分层概述
冷热数据分层(Tiered Storage) 是 Apache Doris 提供的存储优化能力,通过将访问频率较低的冷数据下沉到低成本存储介质(HDD、对象存储、HDFS),同时保留热数据在高性能存储中,从而在保证查询效率的前提下显著降低存储成本。
适用场景
- 存储成本压力大,希望对历史数据进行降本处理
- 数据具有明显的冷热访问特征(如近 7 天为热数据,更早数据为冷数据)
- 已有对象存储(S3/OSS/COS 等)或 HDFS 资源可复用
- 部署模式不同(存算一体 / 存算分离),需要差异化的冷数据存储方案
快速决策
根据部署条件与成本目标,快速选择合适的分层模式:
| 用户场景 | 推荐模式 | 关键收益 |
|---|---|---|
| 具备存算分离部署条件,追求极致弹性扩展 | 存算分离 | 单副本存储 + 计算/存储独立扩展 |
| 存算一体模式,希望优化本地 SSD 资源 | 本地分层 | 冷数据从 SSD 冷却到 HDD,节省高性能存储 |
| 存算一体模式,希望使用对象存储或 HDFS 降本 | 远程分层 | 冷数据单副本存储到对象存储或 HDFS,深度降本 |
三种分层模式详解
Doris 针对不同部署条件提供了三种冷数据分层方案,用户可以根据实际情况灵活选择。
模式对比表
下表汇总了三种模式的适用条件与核心特性,便于快速对比:
| 冷数据选择 | 适用条件 | 核心特性 |
|---|---|---|
| 存算分离 | 用户具备部署存算分离的条件 | - 数据以单副本完全存储在对象存储中 - 通过本地缓存加速热数据访问 - 存储与计算资源独立扩展,显著降低存储成本 |
| 本地分层 | 存算一体模式下,用户希望进一步优化本地存储资源 | - 支持将冷数据从 SSD 冷却到 HDD - 充分利用本地存储层级特性,节省高性能存储成本 |
| 远程分层 | 存算一体模式下,使用廉价的对象存储或 HDFS 进一步降本 | - 冷数据以单副本形式保存到对象存储或 HDFS 中 - 热数据继续使用本地存储 - 不能对一个表和本地分层混合使用 |
1. 存算分离
适用场景:用户具备部署存算分离的条件,追求弹性扩展与极致降本。
核心特性:
- 数据以单副本完全存储在对象存储中
- 通过本地缓存加速热数据访问
- 存储与计算资源独立扩展,显著降低存储成本
2. 本地分层
适用场景:存算一体模式下,用户希望进一步优化本地存储资源。
核心特性:
- 支持将冷数据从 SSD 冷却到 HDD
- 充分利用本地存储层级特性,节省高性能存储成本
详细配置与使用方法请参考:本地磁盘分层存储
3. 远程分层
适用场景:存算一体模式下,使用廉价的对象存储或 HDFS 进一步降本。
核心特性:
- 冷数据以单副本形式保存到对象存储或 HDFS 中
- 热数据继续使用本地存储
- 不能对一个表和本地分层混合使用
详细配置与使用方法请参考:本地-远程分层存储
设计目标
通过上述三种模式,Doris 能够灵活适配用户的部署条件,实现以下目标:
- 查询效率与存储成本的平衡:热数据保持高性能访问,冷数据享受低成本存储
- 灵活适配多种部署形态:兼容存算一体与存算分离两种模式
- 复用已有基础设施:支持对象存储、HDFS、本地 HDD 等多种冷存储介质
FAQ
Q1:存算分离与远程分层的本质区别是什么?
- 存算分离:所有数据(包括热数据)都以单副本存储在对象存储中,本地仅作缓存加速。
- 远程分层:仅冷数据下沉到对象存储/HDFS,热数据仍保留在本地存储中,属于存算一体架构下的优化方案。
Q2:本地分层和远程分层可以同时使用吗?
不可以。同一张表不能混合使用本地分层与远程分层。
Q3:如何判断我应该选择哪种模式?
- 如果具备存算分离部署条件,优先选择存算分离。
- 如果是存算一体且仅希望优化本地磁盘成本,选择本地分层。
- 如果是存算一体且希望利用对象存储或 HDFS 降本,选择远程分层。
Q4:冷数据分层会影响查询性能吗?
冷数据查询会因介质性能差异(HDD/对象存储延迟高于 SSD)而略有下降,但 Doris 通过本地缓存等机制最大限度降低性能损失。