大部分人跟数据库打交道,是打开 BI 看报表,或者让分析师跑一条 SQL,几秒出结果,事情就结束了。
但 AI Agent 不一样。
同样一个业务问题,它在后台自主探索、多轮验证,轻松触发 50 条以上的 SQL,不是因为它效率低,而是因为它在用查询来代替思考。
这件事对底层数据基础设施的要求完全变了。
问题一:Agent 的查询是机器级别的并发,传统引擎扛不住
人类分析师并发量有限,一天最多跑几十条 SQL。但一个 AI Agent 每秒可以发起数十次查询,多个 Agent 同时工作,瞬时并发就到了几百、几千。传统 OLAP 引擎根本没按这个量级设计。
StarRocks 对这个问题的解法,核心是向量化执行引擎 + 资源隔离。
向量化执行引擎把一条查询拆成多个可并行的 pipeline fragment,每个 fragment 绑定到 CPU core 上独立执行,避免线程争抢导致的上下文切换开销。在高并发场景下,这套机制让 StarRocks 在压测中能稳定支撑数千 QPS,而不是像传统引擎那样在并发超过阈值后响应时间指数级劣化。
为了不让 Agent 的高频查询把正常的业务报表挤宕机,StarRocks 在架构上提供了两道资源隔离防线:
第一道是资源组(Resource Groups)逻辑隔离。你可以为 AI Agent 的查询单独划一个资源组,限定它最多用多少 CPU、多少内存。Agent 跑得再欢,也跨不过这道资源红线。
第二道防线,是Multi-Warehouse 物理隔离。在存算分离架构下,底层的业务数据是一份共享的,但上层的计算资源可以彻底分开。你可以直接拉起一个独立的 Compute Warehouse(计算仓库)专门给 Agent 瞎折腾,而人类分析师和线上 BI 报表用另一个主仓库。两者物理绝缘,互不干扰。
问题二:Agent 生成的 SQL 是黑盒,性能无法预判
人类写 SQL 会考虑性能,Agent 不会。它按逻辑最自然的方式生成代码:多层嵌套子查询、多个表连接(JOIN)顺序、动不动就全表扫描。
扔给数据库这种毫无规律可言的黑盒 SQL,传统引擎通常靠 CBO(基于代价的优化器)来救场。但在 Agent 场景下,CBO 也会面临失效的时刻。因为一旦底层统计信息缺失,或者面对多层嵌套导致开销估算错误,CBO 就可能选错执行计划,导致查询卡死。
面对这种不可预知的 SQL,StarRocks 引入了 Query Feedback(查询反馈)机制。
它在底层充当了一个学习闭环。当 Agent 扔进来一条糟糕的 SQL 时,引擎会实时监控并分析它的真实执行路径。如果发现这一次 CBO 选错了执行计划导致跑得很慢,内置的 SQL 调优顾问(Tuning Advisor)会记录下这个教训,在下一次同样的查询结构跑进来时,自动纠正执行计划。
这种自我修复能力,确保了即便面对 AI 实时生成的毫无章法的 SQL,底层引擎也能吃一堑长一智,让后续的探索查询保持稳定和高性能。
问题三:Agent 查得快,但可能查错
语义层是最后一道关卡
Agent 通过大模型把自然语言翻译成 SQL。但大模型不懂你们公司的业务口径:你说的“活跃用户”是 7 日还是 30 日?“收入”含不含退款?这些定义大模型猜不出来,最后生成的 SQL 语法正确、数字错误。
StarRocks 的解法是Semantic View(语义视图),叠加企业知识库。
Semantic View 不是普通的数据库 View。它在 View 定义之上,额外附带了业务口径的元数据描述:即这个字段的业务含义是什么、计算规则是什么、哪些维度可以下钻。Agent 在生成 SQL 之前,先查询语义层,用这些定义来约束和校正自己的 SQL 生成逻辑。
而上层的企业知识库:把历史的分析结论、业务规则、常见指标定义,结构化地沉淀下来。Agent 每次查询前先检索一遍上下文:既防止了“每次都从头理解业务”,也避免了“这次的分析和上次的结论矛盾”这种低级错误。
两层叠加,让 Agent 从能查升级到查得准。
以上三个问题加在一起,指向同一个现状:大多数企业里,AI Agent 的建设速度已经跑赢了数据基础设施的进化速度。
并发隔离、查询自修复、语义层治理,这些能力从可选项变成了 AI Agent 工程化落地的基础门槛。而这套适应 Agent 全新工作负载的数据基础设施,正也是目前镜舟和 StarRocks 开源社区在集中攻坚的方向。