Compaction Service

更新时间: 2026-03-09 19:20:40

Compaction Service 是 EMR Serverless StarRocks 3.5 版本引入的新功能(目前处于 Beta 阶段),将 Compaction 任务从业务所在计算组中独立出来,运行在专用的 Compaction Service 上,实现工作负载隔离、弹性伸缩和性能优化。本文介绍 Compaction Service 的功能及使用方法。

功能概述

核心价值

能力

说明

Workload 隔离

Compaction 在独立的 Service 上执行,避免与查询、导入等业务任务争抢资源,保障业务稳定性。

弹性伸缩

Compaction Service 支持设置 Min CU / Max CU,根据 Compaction 负载自动弹缩,在保障 Compaction 及时性的同时降低成本。

开箱即用

3.5 版本自动创建 Compaction Service,用户只需在控制台一键开启,无需额外选购或配置。

性能优化

Compaction Service 在隔离的基础上进行了以下性能优化:

  1. Peer Cache 读取:Compaction 任务执行时,直接从业务所属计算组中有缓存的节点拉取数据(Peer Cache),避免访问对象存储(Remote I/O),显著提升 Compaction 读取性能。

  2. Cache 推送:Compaction 完成后,Compaction Service 将合并后的数据文件异步推送到业务所属计算组的节点上,避免因缓存失效(Cache Miss)导致的对象存储访问,保障查询性能不受影响。

前提条件

  • EMR Serverless StarRocks 版本 >= 3.5。

  • 存算分离模式集群。

开启 Compaction Service

在 EMR Serverless StarRocks 控制台上,执行以下步骤开启 Compaction Service:

  1. 进入EMR Serverless StarRocks实例列表页面。

    1. 登录E-MapReduce控制台

    2. 在左侧导航栏,选择EMR Serverless > StarRocks

    3. 在顶部菜单栏处,根据实际情况选择地域。

  2. 单击目标实例ID。

  3. 单击 Compaction Service 页签,在基本信息页面,单击启动服务

  4. 在右侧弹出的页面设置,最小 CU最大 CU

  5. 配置完成后,单击启动服务

关闭 Compaction Service

在控制台中单击关闭服务后,右侧弹出的页面中请勾选风险确认选项,然后单击确认关闭服务即可。关闭后,Compaction 将回退到在业务所属计算组上执行,已在执行的任务会正常完成。

弹性伸缩

CU 配置

Compaction Service 支持设置弹性伸缩范围:

参数

说明

建议

最小 CU

最小计算单元数,空闲时缩容至此值。

建议设置为满足基础 Compaction 需求的最小值。

最大 CU

最大计算单元数,高峰时扩容至此值。

根据业务写入峰值和 Compaction Score 情况设置。

弹缩策略

Compaction Service 根据以下指标自动弹缩:

  • Compaction Score:反映数据版本堆积程度,Score 越高说明 Compaction 压力越大。

  • 任务负载:当前 Compaction 任务数量与可用资源的比例。

当 Compaction Score 持续升高或任务排队时,系统自动扩容;当负载降低后,系统逐步缩容至 Min CU。

最佳实践

推荐在以下场景中使用 Compaction Service:

  • 高写入吞吐场景:持续高频写入导致 Compaction Score 上升,影响查询性能。

  • 查询敏感场景:业务对查询延迟敏感,不希望 Compaction 抢占查询资源。

  • 成本优化场景:希望通过弹性伸缩按需使用 Compaction 资源,降低常驻成本。

注意事项

  • Compaction Service 仅适用于存算分离(Shared-Data)模式的集群。

  • 开启 Compaction Service 后,所有表的 Compaction 任务将统一调度到 Compaction Service 执行。

  • Compaction Service 的 CU 资源独立按使用量计费,请合理配置 Min/Max CU。

  • 关闭 Compaction Service 后,Compaction 将自动回退到各业务所属计算组上执行,已在执行的任务会正常完成。

  • 建议在业务低峰期首次开启 Compaction Service,以便观察对系统的影响。

上一篇: 计算组使用指南 下一篇: 实例配置
阿里云首页 开源大数据平台 E-MapReduce 相关技术圈