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 的同源企业级选项。

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

相关推荐
实验室管理云平台1 小时前
实验室信息管理系统:提升科研效率与数据安全的关键工具
大数据·科技
SelectDB1 小时前
Apache Doris 多表 Join 优化实战:从 CBO 到 Colocate Join 配置(附 SQL)
大数据·数据库·数据分析
2601_962298271 小时前
交易开拓者什么语言?编程语言如何提升交易自动化?
数据分析·编程语言·期货交易·自动化交易·交易开拓者
tachibana21 小时前
什么是 Function Calling ?
数据库·人工智能·ai·llm·agent
全栈弄潮儿²⁰²⁴1 小时前
AI Agent 开发实战(7):如何接入搜索和数据库工具?
数据库·人工智能·ai·chatgpt·oracle·agent·ai编程
ApacheSeaTunnel2 小时前
195 次合并、13 个新连接器!Apache SeaTunnel 8 月有哪些新进展?
大数据·开源·数据集成·seatunnel·技术分享·数据同步
砚底藏山河2 小时前
并发与限频工程:把20只的2秒压到0.5秒不封号(魔码量化实战 #03)
java·开发语言·数据库·python·金融
沙淘金数据服务2 小时前
电商订单数据整合难题拆解:多源异构数据如何实现自动化治理?
大数据·人工智能·数据治理·数据清洗·电商·外贸
云雀衔光2 小时前
MCP 协议全景:为什么它是 AI 连接工具的「USB-C」
java·开发语言·数据库·人工智能·ai编程