订阅更新

你们的数仓要给Agent用,你会先改哪三件事?

Agent手册 第 19 题 约 9 分钟读完

本文目录
  1. 30秒版回答
  2. 面试官在考什么
  3. 展开一:为什么是这三件
  4. 第一件事:元数据和语义层(让数据看得懂)
  5. 第二件事:质量和新鲜度对 Agent 可见(让数据信得过)
  6. 第三件事:统一访问入口和权限(让数据用得安全)
  7. 为什么没有选其他事情
  8. 实战经验:这些事和 Agent 出现之前就该做的治理是一回事
  9. 追问链
  10. 加分说法 vs 减分说法
  11. 怎么挂到你的项目上
  12. 总结

30秒版回答

我会先改三件事:

第一,让数据“看得懂”——元数据和语义层。Agent 不会问同事,表和指标没有可靠的说明,它就会用错。先收敛 Agent 可见的认证表,补齐粒度、口径、注意事项,把高频指标沉淀到语义层。

第二,让数据“信得过”——质量和新鲜度对 Agent 可见。Agent 会直接基于数据下结论,所以每张表的新鲜度、质量检查结果要能被 Agent 实时读到,数据有问题时 Agent 能主动提示,而不是拿着有问题的数据一本正经地回答。

第三,让数据“用得安全”——统一的访问入口和权限。不让每个 Agent 各自直连数据库,而是提供一个统一的受控入口(比如 MCP Server),在入口统一做身份透传、SQL 校验、资源隔离和审计。

排这个顺序,是因为看不懂会答错、信不过会误导、不安全会出事故,三者都是 Agent 落地的前置条件。

先把这段讲顺;面试官追问时,再展开下面的原理和细节。

详细讲解

面试官:「假设公司决定让各种 Agent 都来用数仓的数据,资源有限,你只能先做三件事。你会选哪三件?为什么?」

这道题是一道优先级判断题,也是主管面和终面很爱问的题。它不考具体技术细节,考的是你对“数据要为 Agent 准备什么”有没有全局认识,以及能不能在资源有限时做出取舍。

回答这类题,关键是给出明确的三件事、每件事的理由、以及怎么衡量做没做好。不要罗列十件事,也不要说“都很重要”。面试官要的是判断力。

面试官在考什么

• 是否有全局视角:从 Agent 的视角看数仓缺什么。

• 优先级判断力:为什么是这三件,而不是别的。

• 是否可落地:每件事有具体做法和衡量标准。

• 是否考虑组织协作:数据治理需要业务和研发的配合。

展开一:为什么是这三件

我判断优先级的方法是:站在 Agent 的视角,看它使用数据时最可能在哪里失败。一个 Agent 查数的完整过程是:找到对的数据 → 确认数据可用 → 安全地取出来 → 正确地计算和解释。对应的失败模式:

Agent 使用数据的环节失败模式对应的改造
找到对的数据选错表、算错口径① 元数据和语义层
确认数据可用基于延迟或有问题的数据下结论② 质量和新鲜度可见
安全地取出来越权、全表扫描、拖垮集群③ 统一访问入口和权限
正确计算和解释SQL 逻辑错误依赖前三者 + 校验和评测

前三个环节不解决,第四个环节怎么优化模型都没用。所以这三件事是 Agent 用数的地基。

第一件事:元数据和语义层(让数据看得懂)

这部分在第 07 题已经详细讲过,这里强调落地顺序:

• 先收敛:统计历史查询和取数需求,找出高频使用的表,把它们标记为认证表,其他表默认对 Agent 不可见。

• 再补齐:认证表必须有粒度、主键、分区、负责人、用途说明、不适用场景。

• 再沉淀:高频指标进入语义层,定义口径、同义词、默认过滤条件。

衡量标准:认证表的元数据完整率;Agent 评测集上“选错表”和“口径错误”类问题的占比下降。

第二件事:质量和新鲜度对 Agent 可见(让数据信得过)

这一点很多人会忽略。传统数仓里,数据质量问题通常通过告警通知数据团队,业务看报表时并不知道当天的数据是否有问题。但 Agent 不一样,它会直接基于数据回答问题,甚至触发动作。如果它不知道数据有问题,就会把错误的结论自信地告诉用户。

-- 数据状态表:Agent 查询前先读取,判断数据是否可用
CREATE TABLE meta_table_health (
  table_name        STRING,
  latest_partition  STRING,     -- 最新就绪分区
  expected_ready_at TIMESTAMP,  -- 按 SLA 应该就绪的时间
  is_delayed        TINYINT,    -- 是否延迟
  dq_status         STRING,     -- PASS / WARN / FAIL
  dq_message        STRING,     -- 如:订单量较近7日均值下降明显,排查中
  known_issue       STRING,     -- 已知问题说明,如:10-08 支付渠道数据缺失待补
  updated_at        TIMESTAMP
);
# 工具层:查询前检查数据状态,把状态信息一起返回给 Agent
def query_metric(metric, time_range, user_ctx):
    tables = semantic_layer.tables_of(metric)
    health = [meta.health(t) for t in tables]
    result = semantic_layer.run(metric, time_range, user_ctx)
    warnings = [h.dq_message or h.known_issue for h in health
                if h.is_delayed or h.dq_status != "PASS" or h.known_issue]
    return {"data": result, "freshness": [h.latest_partition for h in health],
            "warnings": warnings}       # Agent 必须在回答中转述 warnings

这样,当数据有延迟或质量问题时,Agent 的回答会是:“上周 GMV 为 xxx。注意:10 月 8 日的支付渠道数据存在缺失,正在补数,该日数据可能偏低。”这比给出一个错误的数字要负责得多。

衡量标准:核心表的新鲜度和质量状态覆盖率;Agent 回答中正确提示数据问题的比例。

第三件事:统一访问入口和权限(让数据用得安全)

如果没有统一入口,每个团队做 Agent 时都会自己写一套连数据库的代码,权限、校验、审计各不相同,有的甚至直接用高权限账号。这就像没有数据服务层时,每个应用都直连数据库一样混乱。

• 统一入口:提供标准化的数据访问服务(MCP Server 或数据 API),所有 Agent 通过它访问数仓。

• 统一控制:在入口实现身份透传、只读校验、分区强制、成本预估、资源隔离、审计日志(第 08 题的五层防御)。

• 统一复用:语义层、数据状态检查都通过这个入口提供,Agent 开发团队不需要重复造轮子。

衡量标准:通过统一入口访问的 Agent 占比;越权和超大查询的拦截数;审计日志覆盖率。

为什么没有选其他事情

面试官很可能追问“为什么不先做 XX”。提前准备好几个“暂缓”的理由,体现你的取舍是经过思考的:

暂缓的事情为什么暂缓
全面重构数仓模型成本太高、周期太长;先在现有模型上补元数据和语义层,见效更快
建设向量化的数据目录有用,但前提是元数据本身完整;元数据质量差时,向量检索只会更快地找到错的表
实时化所有数据大部分问数场景 T+1 足够;按场景需求推进,而不是一刀切
自研数据 Agent 框架先把数据底座做好,Agent 框架可以用现成的;数据团队的核心价值在数据侧

实战经验:这些事和 Agent 出现之前就该做的治理是一回事

回顾我做过的工作:在某出海硬件品牌做的埋点治理,本质上是第一件事(让数据看得懂);在某短剧出海公司做的 SQL 代码质量治理,本质上是在提升数据的可信度。这些事情在没有 Agent 的时候就应该做,只是那时候有人兜底,做得不够好也勉强能运转。

Agent 的出现把数据治理从“锦上添花”变成了“必要条件”。这是我对这道题最核心的观点,面试时可以作为收尾的一句话。

追问链

追问一:这三件事需要业务方配合吗?怎么推动?

需要。口径定义需要业务方确认,元数据补齐需要各表负责人参与。我的推动方法是:先选一个业务方痛点最强的场景(比如某个部门的取数需求最多)做试点,用试点的效果(取数响应时间缩短、口径争议减少)说服其他团队。同时把元数据补齐纳入数据开发规范,新表上线必须填写,存量表按使用热度分批补。

追问二:如果只能做一件事,你选哪件?

选第一件:元数据和语义层。因为它的影响面最广——不仅 Agent 受益,人查数也受益;而且它是其他两件事的基础:质量状态要挂在认证表上,统一入口要依赖语义层提供标准查询。如果数据看不懂,后面两件事做得再好,Agent 也会用错数据。

追问三:怎么证明这三件事做完了,Agent 的效果真的变好了?

用评测集做前后对比(第 11 题):在同一批问题上,统计改造前后的正确率,并按错误类型拆解——“选错表”“口径错误”这两类应该明显减少,对应第一件事;“基于问题数据回答”应该减少,对应第二件事;越权和超大查询应该被拦截,对应第三件事。每件事都有对应的指标,效果可以量化。

加分说法 vs 减分说法

✔ 加分说法✘ 减分说法
明确三件事:看得懂、信得过、用得安全罗列十件事,没有优先级
站在 Agent 的视角分析失败模式都很重要,都要做
每件事有做法和衡量标准先重构整个数仓
能说出暂缓其他事情的理由直接上向量数据库
数据治理从锦上添花变成必要条件没有衡量标准

怎么挂到你的项目上

话术模板:“我会先做三件事:让数据看得懂、信得过、用得安全。看得懂是元数据和语义层,因为 Agent 不会问同事;信得过是把质量和新鲜度状态暴露给 Agent,让它在数据有问题时主动提示;用得安全是统一访问入口和权限。我之前做埋点治理和 SQL 质量治理时就有一个体会:这些事情本来就该做,Agent 的出现让它们从锦上添花变成了必要条件。”

总结

这道题考的是优先级判断力。三件事——看得懂、信得过、用得安全——对应 Agent 使用数据的三个失败模式。每件事都要有做法、有衡量标准,还要能说出为什么暂缓其他事情。用一句“Agent 让数据治理从锦上添花变成必要条件”收尾,就是一个有观点、有结构的高分回答。

下一篇是最后一题:说一个你用 AI 提效的真实案例,效果怎么量化?

如果让你给自己公司的数仓打分,“看得懂、信得过、用得安全”三项各打几分?评论区聊聊~

关注「Wood聊大数据」| 9年大数据老兵,聊技术、聊职场、聊成长

刷题进度保存在当前浏览器