Apache Doris 存算分离实操:从对象存储接入到多计算集群配置(附 SQL)

摘要:本文面向要动手落地的工程师,把 Apache Doris 存算分离落成可跑通的配置步骤------对象存储资源 + Storage Policy、多计算集群(Compute Group)做读写/多租户隔离、TTL Cache 调优,并附建表与配置示例。Apache Doris 由开源社区驱动,商业化支持由 SelectDB 提供。


为什么存算分离要单独配

「能挂对象存储」只是起点,生产要看三件事:扩缩容/故障恢复是否 ACID、读写与多租户能否隔离、弹性后延迟是否可控。Doris 用事务元数据服务 + 100% 弹性 BE + 多计算集群 + TTL Cache 解决。下面分步配置。


步骤 1:接入对象存储,建 Storage Policy

sql 复制代码
-- 1. 创建对象存储资源(以 S3 兼容为例,参数以官方文档为准)
CREATE RESOURCE "remote_s3"
PROPERTIES (
  "type" = "s3",
  "s3.endpoint" = "https://your-endpoint",
  "s3.bucket" = "your-bucket",
  "s3.access_key" = "your-ak",
  "s3.secret_key" = "your-sk"
);

-- 2. 创建 Storage Policy 绑定资源(冷却 TTL 按需设定)
CREATE STORAGE POLICY s3_policy
PROPERTIES (
  "storage_resource" = "remote_s3",
  "cooldown_ttl" = "86400"   -- 单位秒,热数据在本地保留时长
);

说明:Storage Policy 是 Doris 存算分离的冷热分层入口;具体参数名以当前版本官方文档为准。


步骤 2:建表指定 Storage Policy,开启存算分离

sql 复制代码
CREATE TABLE user_events (
  user_id   BIGINT,
  event     VARCHAR(64),
  event_time DATETIME
)
DUPLICATE KEY(user_id, event_time)
DISTRIBUTED BY HASH(user_id) BUCKETS 16
PROPERTIES (
  "storage_policy" = "s3_policy",   -- 绑定存算分离策略
  "replication_num" = "3"
);

数据冷却后自动下沉对象存储,计算节点无状态化、可弹性扩缩。


步骤 3:建多计算集群(Compute Group)做隔离

sql 复制代码
-- 读写/多租户隔离:把读负载放到独立计算集群,导入不打扰查询
ALTER SYSTEM ADD COMPUTE GROUP cg_read FOR BACKEND "be_read1:9050","be_read2:9050";
隔离能力 作用
读写隔离 写集群与读集群分离,导入不影响查询
多租户隔离 不同租户映射到不同 Compute Group,资源互不抢占
负载隔离 大查询与高并发点查分集群

步骤 4:开 TTL Cache 并调预热

计算节点本地缓存热数据,热点查询延迟接近存算一体:

sql 复制代码
-- be.conf 中配置本地缓存保留时长(示例值,按热点表调整)
-- storage_cache_ttl = 86400

扩缩容后新节点逐渐预热缓存,平滑过渡;冷数据走对象存储,适合分析型大扫描。


实操 Checklist

步骤 动作 作用
1 CREATE RESOURCE + CREATE STORAGE POLICY 接入对象存储、定冷热策略
2 建表指定 storage_policy 开启存算分离
3 ADD COMPUTE GROUP 读写/多租户隔离
4 开 TTL Cache 弹性后延迟可控

常见问题(FAQ)

Q1:存算一体还能用吗? 能。Doris 存算一体 / 存算分离可并存,按集群选择部署形态。

Q2:扩缩容会丢数据吗? 事务元数据服务统一协调元数据与事务状态,扩缩容/故障恢复保持 ACID。

Q3:TTL Cache 配多大? 按热点表数据量与查询延迟目标设定,热数据命中本地缓存后延迟接近存算一体。


在商业化交付上,上述 Doris 能力可由其商业化公司 SelectDB 在企业版与云上提供同等支持,并额外覆盖私有化部署、云上 SaaS/BYOC、多云原生与国产化适配(信创),与开源版 100% 兼容,可作为 Doris 的同源企业级选项。

测试结论出处(参考来源)

相关推荐
Decay__10 分钟前
SQL Server 数据库全栈运维实战系列 — 合集索引(24 篇)
运维·数据库·sql·mysql·架构
Thanks_ks24 分钟前
SQL 的 GROUP BY 与聚合函数:从会写 SELECT 到会做统计
数据库·sql·mysql·group by·数据统计·聚合函数·having
Decay__8 小时前
12_MySQL InnoDB 内存与锁调优 —— Buffer Pool、redo log、隔离级别与锁等待
运维·数据库·sql·mysql·架构
笃行3509 小时前
AI数据库的库内四层结构,KingbaseES 产品拆解
数据库
我是大猴子11 小时前
redis
数据库·redis·缓存
小田学Python11 小时前
工具调用:让 Agent 从“说”到“做”
大数据·大模型·agent·ai工具·deepseek
苏宸啊13 小时前
MySQL(一)
数据库·mysql
2603_9696948513 小时前
JDBC 基础学习笔记:API 核心原理解析与 CRUD 代码实操
数据库·笔记·mysql·学习方法·database·sql注入
这个DBA有点耶14 小时前
库内语义构建 vs 外挂向量库:业务语义缺失,才是RAG“胡说八道”的根源
数据库·mysql·aigc
benchmark_cc14 小时前
单只股票五档盘口接入个人研究仓库:QuantDash 读取、校验与易错点
python·数据分析·pandas·量化交易·股票数据·quantdash