跳到正文

更多文章

数据周刊|Spark 4.2 把 CDC 写进内核,补丁也要先过 SQL 新同事 3 周做出分析助手,真正说明的不是他会写 Prompt AI 查一次数跑上千条 SQL,数据库扛得住吗? 一个 MCP 工具有 14 个参数,AI 为什么越用越糊涂? 把数据湖换成 Iceberg 前,先找出最值得迁的 3 张表
AI 问数成本守门清单:限制查询风暴、重复试探和高价重跑

AI 问数上线前,评审表里通常有一项:“数据库使用只读账号。”

打勾以后,大家会松一口气。

只读账号确实防住了删表和改数,却防不住另一些更安静的事:一条 SQL 扫 8 TB;一个问题重试 20 次;10 个 Agent 同时探索相似假设;用户已经关闭页面,查询还在后台跑。

这些事不会把数据写坏,却会把队列、预算和同事的耐心一起占满。

所以,生产级 AI 问数需要的不只是一张权限清单,还需要一套任务预算。每次自然语言问题进来,都要知道它最多可以花多少钱、跑多久、试几次,以及什么时候必须停。

AI 问数的安全边界包含权限、资源、范围和生命周期

第一层:先给“任务”预算,不要只限制单条 SQL

传统查询治理常按单条 SQL 设置超时和扫描限制。对 Agent 来说还不够,因为一次用户任务可能产生很多条都在限制以内的查询。

建议同时设置三层预算。

单条查询预算

  • 最大执行时间;
  • 最大扫描字节数;
  • 最大返回行数;
  • 最大内存或计算配额;
  • 禁止的语句与数据源。

单次任务预算

  • 最多生成和执行多少条 SQL;
  • 最多允许多少次失败重试;
  • 累计扫描量上限;
  • 累计执行时间上限;
  • 最多同时运行多少个分支。

用户与服务预算

  • 单个用户每小时任务数;
  • 单个部门或应用的日预算;
  • 整个 AI 查询服务的并发和资源池;
  • 达到阈值后的降级策略。

三层预算解决三个不同问题。单条预算防“大象查询”,任务预算防“蚂蚁搬家”,服务预算防所有人同时来问。

第二层:执行前先估价

Agent 生成 SQL 后,不要立刻送进生产引擎。

先做一轮静态检查和查询估价:

  1. 解析 SQL,确认只包含允许的语句;
  2. 检查涉及的表、字段和时间范围;
  3. 获取查询计划或引擎估算;
  4. 计算预计扫描量、分区数量和可能的连接风险;
  5. 根据任务剩余预算决定执行、改写或拒绝。

如果预计成本高,可以把反馈交还给 Agent:时间范围过大、缺少分区条件、连接会产生大规模数据交换、应该先查聚合表。

关键是返回可行动的信息。只说“查询太贵”,模型只能换一种猜法;告诉它“当前扫描 24 个月明细,请先限定到 30 天或使用月汇总表”,它才有机会做对。

生成 SQL 后先经过解析、估价和预算判断

PRO 会员专属

本文为 PRO 会员专属内容,成为会员即可阅读全文。

PRO ¥199/年 · Pro 专属文章 + 2300+ 知识文档 + 会员社群

Elazer (石头)
Elazer (石头)

11 年数据老兵,从分析师到架构专家。用真实经历帮数据人少走弯路。

加入免费社群

和数据从业者一起交流成长

了解详情 →

成为会员

解锁全部内容 + 知识库

查看权益 →

1v1 咨询

有具体职业困惑?一小时说清楚

预约咨询 →
← 上一篇 AI 查一次数跑上千条 SQL,数据库扛得住吗? 下一篇 → 新同事 3 周做出分析助手,真正说明的不是他会写 Prompt