【需求反馈】希望 StarRocks 原生支持行级增量计算,替代现有分区全量刷新模式

一、需求概述

当前 StarRocks 物化视图仅支持按分区粒度整体刷新,只要分区内存在任意一行数据发生变更,就需要对整个分区数据覆盖重算;
我们业务场景下该机制性能损耗极大、数据时效性难以满足诉求,期望社区能够推出行级增量计算能力:数据变更多少,就仅计算变更部分,无需整分区重载重算。

二、当前机制痛点与业务场景说明

1. 业务场景

核心存储订单业务表,需要留存近360天订单数据;
全周期内历史订单均会产生少量更新(订单状态修改、售后变更、金额微调等),并非仅当日新分区写入数据。

2. 现有分区刷新方案带来的严重问题

  1. 刷新效率极低、资源大量浪费
    只要任意历史分区存在1行数据改动,就会触发对应分区整体重刷;我们业务场景单次数据变更常会牵连200+分区全部覆盖计算,CPU、内存、IO资源无效消耗严重;
  2. 数据时效性无法提升
    大批量分区反复全量重载,刷新周期被拉长,没办法实现分钟级、秒级实时数据产出;
  3. 无法适配长周期可更新业务场景
    近一年历史数据频繁小幅更新的场景下,分区粒度刷新完全不具备可行性。

三、业界同类产品成熟落地参考

目前主流实时数仓/湖仓产品均已落地行级增量计算方案,可作为技术参考:

  1. 云器(Lakehouse):基于 Iceberg 存储格式实现行级增量更新、增量计算;
  2. Flink:依托 Paimon 湖存储原生支持行级增量读写、增量聚合计算;

从技术底层来看,StarRocks 本身具备成熟完善的**主键索引(Primary Key)**能力,在行数据定位、变更数据检索上具备先天优势,理论上可以实现更优性能的行级增量计算能力。

四、期望特性能力

  1. 打破分区刷新粒度限制,支持行粒度增量刷新物化视图
  2. 仅捕获变更数据(新增、更新)参与上层聚合计算,不变数据直接复用原有计算结果;
  3. 适配近一年长周期数据频繁小幅更新的业务场景,大幅缩减刷新耗时、降低集群资源开销,提升实时数据时效性;
  4. 兼容主键表底层存储架构,依托主键索引快速定位变更行。

五、补充诉求

期待社区能够规划该特性迭代路线,若有技术调研、方案讨论我们可以持续跟进,同步一线业务落地痛点与测试反馈。


需要我再精简一版偏口语化的社区闲聊版本,或者加上业务数据耗时对比、优化预期收益吗?