Text-to-SQL 与 Analytics Agent · 企业落地

定位:在 27-Agent参考架构 七视图 母版下,专述 自然语言 → 可执行 SQL / 语义指标 的 Analytics Agent 生产架构——覆盖 Schema Linking、语义层(dbt Metrics / Headless BI)、SQL 沙箱、行列级安全、成本封顶、Golden Set、幻觉 Join、审批流与审计。
不重复:Agent 通用控制面见 27 §3;RAG 管线见 03;ReAct/Tool 见 04;治理见 17;考前冲刺见 98
数据底座:执行引擎与优化器语境见 MySQL 套件PostgreSQL 套件


导航 · 套件内关联

类型 文件 本篇用法
结构母版 27 七视图 §1–§8 章节映射
前置必读 03 RAG Schema/文档检索、Hybrid
前置必读 04 Agent ReAct、Tool Router、MCP
前置必读 17 治理 四层防御、审计字段
深链 06 Eval Golden Set、faithfulness
深链 07 Serving Token FinOps、路由
深链 13 Playbook 12 能力域、HITL
深链 21 部署指南 Checkpoint、幂等
冲刺 98 高频题 §4 新增 T2SQL 题锚点
MySQL mysql/05 SQL优化 EXPLAIN、索引
MySQL mysql/08 锁 长查询风险
PG postgres/06 Planner 代价模型
PG postgres/03 MVCC 只读副本语义

0. 面试前 30 分钟 Checklist(Staff / Architect)

时间盒 动作 产出
5 min 七视图一句话(§1.2) Analytics Agent 与通用 Agent 差异 3 点
5 min 白板 应用视图(§3) NL→Link→Gen→Validate→Execute→Explain
5 min 语义层三层(§3.4) 物理表 / dbt 模型 / Headless 指标
5 min 口述 安全三板斧(§6) 沙箱 + RLS/CLS + 审批
5 min 准备 1 个 STAR-M-P(§12) 幻觉 Join 或越权查询
5 min Master P0(§13)标红 3 项 Golden Set + cost cap

开场金句(90s)

「Analytics Agent 不是 ChatGPT 接 JDBC,而是 带副作用的只读/受控写查询控制器。我用七视图讲:业务上服务谁、能否自动执行;应用上 Schema Linking + 语义层 + SQL 沙箱;数据上元数据与 Golden Set;部署上沙箱集群与只读副本;安全上行列级策略与审批;集成上 dbt/Headless BI/数仓;演进上从 Copilot 到自治查询的分期。」


1. 七视图方法论(Analytics Agent 特化)

1.1 与 27 的映射

27 视图 Analytics Agent 核心问题 本篇章节
业务 谁问、问什么、能否自动跑 SQL §2
应用 Linking / 生成 / 校验 / 执行 §3
数据 元数据、指标、Golden Set §4
部署 沙箱、只读副本、资源隔离 §5
安全 RLS、CLS、审批、审计 §6
集成 dbt、Cube/MetricFlow、BI §7
演进 Copilot → 半自动 → 受控自治 §8

1.2 七视图一句话速记

# 视图 核心问题 Analytics 关键词
1 业务 价值与边界 自助 BI、运营问数、禁止 DDL
2 应用 怎么生成可信 SQL Schema Linking、语义层、Validator
3 数据 元数据与评测 DDL 快照、血缘、Golden Set
4 部署 怎么安全执行 SQL Sandbox、只读、超时
5 安全 怎么防越权 RLS/CLS、mask、审批
6 集成 怎么接存量 dbt、Headless BI、Trino
7 演进 怎么分期 建议 SQL → 人批 → 自动

1.3 视图依赖总图

约束

约束

贯穿

贯穿

贯穿

贯穿

贯穿

业务视图
场景 / 角色 / HITL

应用视图
Link / Gen / Validate / Execute

数据视图
元数据 / Golden / 血缘

部署视图
Sandbox / RO Replica

集成视图
dbt / Headless BI / 数仓

演进视图
Copilot → Governed Auto

安全视图
RLS / 审批 / Audit

Staff 白板顺序(45min):业务(5m) → 应用(12m) → 安全(8m) → 数据(5m) → 集成(5m) → 部署(5m) → 演进(5m)。


2. 业务视图(Business View)

2.1 场景矩阵

场景 用户 数据域 副作用 默认模式 HITL
运营自助 运营/PM 订单/流量 ODS 只读 SELECT 建议 SQL + 一键执行 敏感指标二次确认
财务月结 FP&A 总账/收入 只读 + 导出 仅建议 SQL 全量执行需审批
数据科学 DS 特征宽表 只读 + 临时表禁 Copilot 禁止 CREATE
客服洞察 客服主管 工单/会话 只读 RAG+指标 PII 列脱敏
高管问数 C-level 语义指标 只读 Headless NL→指标 API 无原始 SQL 暴露

2.2 价值流

数据审批人 SQL Sandbox 语义层 Analytics Agent 业务用户 数据审批人 SQL Sandbox 语义层 Analytics Agent 业务用户 alt [高风险] 自然语言问题 解析指标/维度 Schema Linking + 生成 SQL 提交 SQL + 解释 + 预估成本 批准/修改 执行(只读角色) 结果集(行数上限) 表格 + 图表建议 + 血缘脚注

2.3 验收标准(机器可验)

维度 指标 门槛示例
正确性 execution_accuracy Golden Set ≥92%
安全 policy_violation_rate 0(越权即事故)
成本 p95_scan_gb / p95_latency 按租户配额
可解释 metric_citation_rate 100% 走语义层指标
体验 first_correct_sql_rate ≥75% 无需人工改 SQL

2.4 业务反模式

反模式 现象 修复
直连生产写库 Agent 用 RW 账号 只读沙箱 + 拒绝 DDL/DML
无角色差异 客服能查薪资 RBAC + 列掩码
「感觉对了」 无 Golden Set 发布门禁 + 回归
无限扫表 一次查询打满集群 cost cap + EXPLAIN 预估

3. 应用视图(Application View)

核心:Staff 面试停留最长。必须画清 NL → Schema Linking → SQL Gen → Static Validate → Policy → Sandbox Execute → Explain 七段流水线,以及 语义层优先、物理表兜底

3.1 参考架构总图

知识平面

数据面

控制面

接入

Analytics Gateway / BFF

Slack/飞书/BI 嵌入

身份 / 租户 / 角色

Policy OPA: 表/列/行

Cost Cap: rows/bytes/timeout

审批队列 HITL

幂等: question_hash

Analytics Runtime

Intent + 指标解析

Schema Linker

SQL Generator

SQL Validator

Explain + 可视化

SQL Sandbox Executor

语义层 dbt/Headless

元数据 Catalog

RAG: 文档/口径/FAQ

Golden Set Runner

3.2 组件契约与 SLA

组件 职责 p99 延迟 失败降级
Intent NL→指标/维度/时间范围 <2s 澄清问题模板
Schema Linker 表/列/Join 路径候选 <3s 缩小到 star schema 子图
SQL Generator 生成 ANSI SQL <8s 降级小模型 + 模板
Validator 语法/表列白名单/Join 图 <500ms block 执行
Sandbox 执行只读 <30s 返回采样+「已截断」
Approval 人审高危查询 SLA 4h 超时拒绝非 P0

3.3 Schema Linking(模式链接)

定义:将自然语言中的实体(「上周华东 GMV」)映射到 语义指标物理表.列,并推断 Join 路径

用户问题

实体识别
指标/维度/过滤

候选生成
向量+关键词+血缘

重排序
交叉编码器/规则

Join Graph
最短合法路径

压缩 Schema Context
≤8k tokens

SQL Generator

技术 作用 03 RAG 关系
表/列 Embedding 相似表召回 同 Hybrid 检索
Join 图索引 预计算 FK 路径 图算法,非向量
口径文档 RAG 「GMV 是否含取消」 chunk=指标定义
Few-shot 同域 SQL 样例 tenant+domain 过滤

Linking 输出契约

{
  "metrics": ["gmv_net"],
  "dimensions": ["region", "dt"],
  "filters": [{"field": "dt", "op": "between", "value": ["2026-05-13","2026-05-19"]}],
  "tables": ["fct_order", "dim_region"],
  "join_edges": [{"left": "fct_order.region_id", "right": "dim_region.id", "type": "inner"}],
  "confidence": 0.87,
  "schema_context_rev": "dbt_20260520_1430"
}

反模式:把 500 张表 DDL 全塞 prompt;无 Join 图导致 幻觉 Join(§10.3)。

3.4 语义层:dbt Metrics / Headless BI

层级 产物 Agent 用法 人读
L3 Headless Cube/MetricFlow/LookML 指标 query({metrics, dimensions}) 业务友好
L2 dbt staging→mart + metrics YAML 编译 SQL 或指标 API 数据团队
L1 物理 ODS/DWD 宽表 Linking 兜底 DBA

命中

未命中

自然语言

Metric Resolver

Headless API
Cube/MetricFlow

dbt 编译 SQL

物理表 SQL

Sandbox

Validator

为什么语义层优先

  1. 口径唯一:「GMV」在 Agent 侧是 gmv_net 指标 ID,不是自由文本。
  2. Join 预封装:metrics 已绑定 join_path,大幅降低幻觉 Join。
  3. 权限对齐:Headless 自带 member-level security,与 17 一致。
平台 集成方式 Agent Tool 形态
dbt + MetricFlow mf query / Semantic Layer API tool: semantic_query
Cube REST /load tool: cube_load
Looker LookML + API 嵌入 Explore 受限
Apache Superset 数据集语义 次选,口径弱于 dbt

3.5 SQL 生成与静态校验

生成策略(生产推荐)

阶段 方法 说明
1 指标 API 优先 能解析为 metrics 则不生成裸 SQL
2 模板 + 槽位 高频问法「分渠道 GMV」→ Jinja 模板
3 LLM 补全 仅填充 WHERE/时间,Join 来自 Linker
4 DIN-SQL / MAC-SQL 研究范式,需 Validator 兜底

Validator 必检项(执行前硬闸门):

1. 语句类: 仅允许 SELECT / WITH;拒绝 DDL/DML/多语句/注释注入
2. 表白名单: FROM/JOIN 表 ∈ role_allowed_tables
3. 列黑名单: 拒绝 salary, id_card_hash 等
4. Join 图: 每条 JOIN 边 ∈ approved_join_graph
5. 分区裁剪: 事实表必须有 dt 过滤(可配置)
6. 成本预估: EXPLAIN 扫描行数/字节 > cap → 转审批
7. 结果上限: LIMIT ≤ N(默认 10_000)

→ MySQL EXPLAIN 见 mysql/05;PG 见 postgres/06

3.6 SQL Sandbox(执行沙箱)

沙箱集群(与生产隔离)

改写 LIMIT/timeout

改写 LIMIT/timeout

Proxy SQL Parser

只读 Replica
MySQL/PG/Trino

Snowflake/BQ
只读 WH

Validator OK

结果集脱敏

Agent 格式化

控制项 MySQL 实现 PostgreSQL 实现
账号 agent_ro@% 仅 SELECT agent_ro + SET ROLE
超时 MAX_EXECUTION_TIME statement_timeout
资源 独立 Replica + 并发队列 只读池 + pg_bouncer
网络 安全组仅沙箱→副本 同 VPC 无生产写端点

反模式:Validator 与 Executor 之间无 二次解析;沙箱与生产 同库不同账号 仍可能拖垮主库——推荐 物理隔离副本

3.7 控制面:Cost Cap(成本封顶)

维度 配置示例 触发动作
单次 max_scan_gb=50 EXPLAIN 超限→审批
单次 max_rows=10000 自动 LIMIT
单次 wall_timeout=30s Kill + 错误码
用户日 daily_scan_tb=2 拒绝或排队
租户月 monthly_cost_usd=500 FinOps 告警

under cap

over cap soft

over cap hard

approved

denied

Estimate

AutoRun

NeedApproval

Rejected

Executed

WaitingHuman

27 §3.3 预算 对齐:max_cost_usdLLM token + 数仓扫描

3.8 审批工作流(Approval Workflow)

风险级别 条件 流程
L0 语义层指标 + 命中缓存 自动执行
L1 物理 SQL + 成本<阈值 自动 + 异步审计
L2 宽表 Join / 接近 cap 数据 Owner 审批
L3 新 Join 边 / 敏感列 安全+Owner 双审
L4 跨域 PII 拒绝或脱敏副本
Sandbox 数据 Owner 审批队列 Agent Sandbox 数据 Owner 审批队列 Agent submit(sql, explain, cost_est, lineage) approve / edit_sql / reject decision + audit_id execute approved_sql only

04 HITL 对齐:审批是 人类 Tool,写回 checkpoint;禁止 Agent 自行修改已批 SQL 再执行。

3.9 应用视图反模式

反模式 风险
跳过 Linking 直接生成 幻觉表名/Join
语义层与物理口径并存无映射 双 GMV
Validator 只做字符串黑名单 绕过 UNION SELECT
审批后执行不同 SQL 审计失效

4. 数据视图(Data View)

4.1 逻辑数据模型

produces

generates

becomes

returns

has

tracks

versioned

QUESTION

string

question_id

PK

string

tenant_id

string

nl_text

string

user_role

LINK_RESULT

SQL_DRAFT

string

sql_hash

json

version_pin

string

status

EXECUTION

string

audit_id

bigint

rows_scanned

float

cost_units

RESULT_SAMPLE

TENANT

ROLE_POLICY

GOLDEN_CASE

REGRESSION_RUN

SCHEMA_SNAPSHOT

JOIN_GRAPH

4.2 Golden Set(金标准评测集)

字段 说明
case_id 稳定 ID
question 自然语言
gold_sqlgold_metrics 可执行标准答案
gold_result_hash 结果集指纹(防优化器差异)
domain 订单/供应链/财务
risk L0–L4
tags join2hop, window_fn, yoy

三类评测

类型 指标 用途
Exact Match SQL 字符串归一化后相等 开发迭代
Execution Accuracy 结果集一致 发布门禁 P0
Semantic Match 指标 ID 一致 语义层路线

pass

pass

fail

发布候选

离线 Golden Run

金丝雀 5%

全量

阻断

→ 通用 Eval 0698 冲刺勾选。

4.3 元数据与血缘

资产 来源 刷新 Agent 消费
DDL 快照 Information Schema 日更 Linking
Join Graph FK + dbt manifest 随 dbt build Validator
列画像 Profiling 周更 异常检测
口径文档 Confluence/Notion RAG 索引 消歧
血缘 OpenLineage/dbt 实时 Explain 脚注

4.4 数据治理

  • 版本钉扎 version_pinprompt_rev + model + schema_snapshot_rev + dbt_manifest_rev + join_graph_rev
  • 留存:原始 NL 30d;SQL+结果摘要 90d;审计 7y(金融域)
  • 删除权:用户 opt-out → 擦除 question/execution 个人标识

5. 部署视图(Deployment View)

5.1 拓扑

语义层

沙箱子网

Agent 平台 K8s

Analytics Gateway

Analytics Runtime

Validator Service

SQL Executor Pool

MySQL RO Replica

PostgreSQL RO

Trino Coordinator

Cube Store

dbt Cloud / CLI

5.2 容量估算(Staff 必背)

输入 公式 示例
DAU 问数 Q = DAU × 3 问/人/日 500×3=1500
LLM 成本 Q × ($0.02~0.08) $30–120/日
数仓扫描 Q × 平均 5GB 7.5TB/日 → cap 必需
Sandbox CPU 并发 × 2 vCPU 50 并发 → 100 vCPU

5.3 环境策略

环境 数据 Golden 执行
dev 合成 子集 内存 DuckDB
staging 脱敏快照 全量 沙箱副本
prod 真副本 回归+金丝雀 只读+审批

6. 安全视图(Security View · 横切)

6.1 行级 / 列级安全(RLS / CLS)

机制 MySQL 8 PostgreSQL Headless BI
行级 视图+WHERE tenant_id RLS Policy Cube queryRewrite
列级 列权限 GRANT Column privileges + mask 维度可见性
动态 会话变量 @tenant current_setting('app.tenant') JWT claim
-- PostgreSQL RLS 示例(Agent 会话 SET app.tenant_id)
ALTER TABLE fct_order ENABLE ROW LEVEL SECURITY;
CREATE POLICY tenant_isolation ON fct_order
  USING (tenant_id = current_setting('app.tenant_id')::int);

mysql/13 安全17 §2

6.2 纵深防御(Analytics 栈)

身份 RBAC / SSO

语义层成员权限

SQL Validator 白名单

Sandbox 只读账号

RLS/CLS 最后一道

结果脱敏 DLP

Audit append-only

6.3 Prompt 注入与数据渗出

威胁 场景 控制
间接注入 口径文档「忽略策略」 RAG chunk 边界 + 来源标签
SQL 注入 NL 含 '; DROP Parser 拒绝多语句
渗出 「列出所有手机号」 列黑名单 + DLP
Join 放大 笛卡尔积 Join 图 + 行数上限

6.4 审计(Audit)

每条执行最小字段(对齐 17 §2.4):

字段 说明
audit_id UUID
trace_id 链路
tenant_id / user_id / role 身份
nl_question 原文(可加密)
generated_sql 完整 SQL
approved_sql 人审后(若有)
approver_id 审批人
version_pin 版本
cost_estimate / rows_scanned 成本
policy_decision allow/deny/approval
result_row_count 结果规模
engine mysql-ro / pg-ro / trino

存储:ClickHouse / ES append-only;SIEM 对接;金融域保留 7 年。


7. 集成视图(Integration View)

7.1 与 dbt 工程集成

dbt Git Repo

dbt CI build

manifest.json

Agent Catalog Sync

Join Graph Builder

Analytics Runtime

产物 用途
manifest.json 表/列/依赖
metrics.yml 指标→SQL
semantic_manifest MetricFlow 查询

7.2 Headless BI(Cube 示例)

# cube/schema/Orders.js — Agent 只暴露预定义 measures
measures:
  gmv_net:
    sql: "{CUBE}.amount"
    type: sum
    filters:
      - sql: "{CUBE}.status != 'cancelled'"

Agent Tool:cube_load({ measures: ['gmv_net'], dimensions: ['region'], timeDimensions: [...] })

7.3 数仓与 MySQL / PostgreSQL

引擎 典型角色 Agent 注意点
MySQL OLTP 副本 索引分区;禁止打主库
PostgreSQL 数仓/指标 RLS、JSONB 维表
Trino 联邦 catalog 白名单
Snowflake/BQ 企业仓 Warehouse=cost cap

深链mysql/08 锁postgres/03 MVCCpostgres/09 慢查

7.4 与通用 Agent 平台集成

模式 说明
Tool analytics_query 注册 04 Tool Router
MCP mcp-analytics 暴露语义查询
BFF 前端图表 ← dataset URI

8. 演进视图(Evolution View)

8.1 四阶段成熟度

Stage 名称 能力 准入
0 Copilot 只建议 SQL PoC
1 Governed Exec 沙箱+Validator+Golden≥85% 生产只读
2 Semantic First 80% 走指标 API exec_acc≥92%
3 Proactive Insights 异常推送 Stage2 稳定 2 季

Stage0 Copilot

Stage1 沙箱执行

Stage2 语义层优先

Stage3 主动洞察

8.2 技术债清单

债项 信号 偿还
裸 SQL 比例高 >40% 补 metrics
Join 图腐烂 FK 变更未同步 manifest CI
Golden 过时 规则变 月度策展
Replica 延迟 结果不一致 延迟告警

9. 跨视图决策矩阵

决策 业务 应用 安全 数据 推荐
是否上语义层 口径争议多 降 Join 幻觉 权限集中 指标即文档 Yes
LLM 写 SQL 灵活 风险高 难评测 沙箱+Validator
全量审批 体验差 合规 分级 L0–L4
PG vs MySQL 沙箱 RLS 强 各 RO;联邦 Trino

10. 专题深潜

10.1 端到端流水线

鉴权

Intent

Metric Resolver

Schema Linking

SQL Gen

Validate

Cost Cap

Sandbox

Approval

Explain + Audit

10.2 Schema Linking 算法选型

方法 优点 缺点 企业建议
全量 DDL 简单 Token 爆 禁止
RAG+Graph 可扩展、Join 稳 图维护 默认
Fine-tuned linker 域内高 训练成本 Stage2+

10.3 幻觉 Join(Hallucinated Join)

定义:模型引入 不存在的外键错误 Join 键

类型 示例 后果
幽灵表 JOIN dim_salary 不存在 失败或绕过校验
错键 user_id 应为 buyer_id GMV 翻倍
桥接缺失 多对多无 bridge 行数爆炸
跨租户 tenant_id 泄漏

防护四层:语义层预 Join → Join Graph 白名单 → SQLGlot 验边 → EXPLAIN 行数异常。

10.4 Sandbox 清单

  • 独立子网、只读账号、超时、LIMIT、拒绝 DDL/DML
  • 审批 SQL 与执行 SQL hash 一致

10.5 Cost Cap 与 FinOps

$/question = LLM + scan;仪表盘联动 07

10.6 Golden 策展

生产脱敏日志 → 专家策展 → Peer Review → 回归套件;事故 SQL 入负例。

10.7 审批与审计一体

approval_id = 审计键;禁止先跑后批(break-glass 除外)。


11. 高频口述题(15 道 · 60–90s)

11.1 Text-to-SQL 和 RAG 问答区别?

:RAG 输出文本+引用;Text-to-SQL 输出 可执行程序,副作用是 成本与越权。需 Validator+沙箱+RLS,评测用 Execution Accuracy。03 vs §3。

11.2 为何优先语义层?

:口径与 Join 预封装,解析为 metrics+dimensions,降幻觉 Join;裸 SQL 兜底且强审批。§3.4。

11.3 Schema Linking 怎么做?

:Retrieve-then-Generate:召回≤20表,Join Graph 约束,压缩 context;禁全库 DDL。§3.3。

11.4 什么是幻觉 Join?

:编造表关系或错键。Golden 标注 join_graph;EXPLAIN 行数异常。§10.3。

11.5 SQL Sandbox 最低配?

:只读账号、独立副本、超时、LIMIT、拒绝 DDL/DML、Parser 二次校验。§3.6。

11.6 行级安全放哪层?

:语义层权限 → Validator 注入 tenant → DB RLS。不能靠 prompt。§6.1。

11.7 Cost Cap 卡什么?

:扫描字节/行、wall time、日累计;超限走审批。§3.7。

11.8 Golden 门禁?

:Execution Accuracy ≥92%,无 P0 安全失败;钉扎 schema_rev。§4.2。

11.9 如何防「批 A 跑 B」?

approved_sql_hash 锁;审计双写。§3.8。

11.10 能否无限 ReAct?

:否。Plan-Execute,步数≤5。0427 §3.4

11.11 MySQL vs PG 沙箱?

:PG RLS 原生;MySQL 用视图+会话变量;联邦 Trino catalog 白名单。§6.1。

11.12 与 dbt CI 联动?

:manifest.json 同步 Catalog+Join Graph;变更触发 Golden。§7.1。

11.13 Headless 与 Agent 谁为主?

:Headless 为执行真相源;Agent 编排 NL。§7.2。

11.14 审计存多久?

:金融 7 年;含 identity、NL、SQL、审批、cost、version_pin。§6.4、17

11.15 Stage0→2 最大坑?

:口径未语义化→裸 SQL 与审批爆炸;先 metrics 化。§8.1。


12. STAR-M-P 事故复盘:幻觉 Join 导致 GMV 虚高

字段 内容
S 零售 Analytics Agent Stage1 第 5 天,渠道 GMV 比 BI 高 37%。
T 24h 定位止血;7 天 Join 防护与 Golden。
A audit 显示 fct_order JOIN dim_channel 错用 channel_id(应为 channel_sk);Validator 只验表白名单;降级 Stage0;热修 Join Graph;补 120 负例;财务更正。
R 撤回 41 份报告;无监管处罚。
P join_violation_rate=0execution_accuracy≥94%;审批率 38%→12%。
M ① SQLGlot+join_graph;② 80% MetricFlow;③ approved_sql_hash;④ P0 门禁。

27 §1213 §15


13. Master Checklist(P0 / P1 / P2)

13.1 P0 — 上线阻断

  • P0-01 仅 SELECT/WITH;拒绝 DDL/DML/多语句
  • P0-02 沙箱只读副本 + 网络隔离
  • P0-03 RLS/CLS 或语义层成员权限
  • P0-04 Join Graph 或语义层优先
  • P0-05 Cost cap:超时+LIMIT+扫描预估
  • P0-06 Golden 门禁 execution_accuracy
  • P0-07 审计 append-only
  • P0-08 审批与执行 SQL hash 一致
  • P0-09 version_pin 含 schema+dbt manifest
  • P0-10 列黑名单 PII
  • P0-11 tenant_id 全链路
  • P0-12 break-glass 留痕

13.2 P1 — Staff 答辩

  • P1-01 七视图+流水线
  • P1-02 Schema Linking 四步
  • P1-03 dbt vs Cube vs 裸 SQL
  • P1-04 幻觉 Join 四层防护
  • P1-05 真实 exec_acc / 审批率
  • P1-06 PG RLS 白板
  • P1-0798
  • P1-08 STAR-M-P 含 M
  • P1-09 副本延迟策略
  • P1-10 Stage0→2 路径

13.3 P2 — 卓越

  • P2-01 Trino 联邦沙箱
  • P2-02 自动 Golden 挖掘
  • P2-03 Learned linker
  • P2-04 AI Gateway 24 契约
  • P2-05 Stage3 主动洞察 POC

14. 附录 A:OpenAPI 片段(Task Submit)

post /v1/analytics/query:
  headers:
    X-Tenant-Id: required
    X-Data-Role: required
  body:
    question: string
    preferred_output: enum [table, chart, metric_only]
    risk_override: enum [auto, approval_required]
  responses:
    202: { query_id, trace_id, status }
    403: policy_denied
    429: cost_budget_exceeded

15. 附录 B:审计表 DDL(PostgreSQL)

CREATE TABLE analytics_audit_log (
  audit_id        UUID PRIMARY KEY,
  trace_id        VARCHAR(64) NOT NULL,
  tenant_id       VARCHAR(32) NOT NULL,
  user_id         VARCHAR(64) NOT NULL,
  data_role       VARCHAR(32) NOT NULL,
  nl_question     TEXT,
  generated_sql   TEXT NOT NULL,
  approved_sql    TEXT,
  approver_id     VARCHAR(64),
  sql_hash        CHAR(64) NOT NULL,
  version_pin     JSONB NOT NULL,
  cost_estimate   JSONB,
  rows_scanned    BIGINT,
  policy_decision VARCHAR(24) NOT NULL,
  engine          VARCHAR(24) NOT NULL,
  created_at      TIMESTAMPTZ NOT NULL DEFAULT now()
);
CREATE INDEX idx_audit_tenant_time ON analytics_audit_log(tenant_id, created_at DESC);

16. 附录 C:与 05-architecture 六视图对照

05 视图 本篇 Analytics 增量
业务 01 §2 问数场景、HITL
应用 05 §3 Linking、Sandbox
数据 04 §4 Golden、血缘
部署 03 §5 沙箱副本
安全 06 §6 RLS、审计
技术 02 §7 dbt、Headless
§8 Stage0–3

17. 附录 D:七视图×五维度追问矩阵

视图 容量 成本 合规 失败 一致性
业务 §2 DAU §2 $/问 §2 HITL §2 降级 §2 口径
应用 §5 并发 §3.7 cap §3.8 审批 §3.2 SLA §3.5 校验
数据 §4 快照 Golden 存储 §4 留存 §4 回归 §4 hash
部署 §5.2 GPU/CPU 隔离 §5.3 副本延迟
安全 §6 限流 事故成本 §6.4 7y §6.3 注入 RLS
集成 §7 Trino WH slot catalog §7.1 CI manifest
演进 §8 分期 技术债 Stage 准入 回滚 版本钉扎

18. 附录 E:术语表

术语 定义
Schema Linking NL→表列/指标/Join 路径
Semantic Layer dbt/Headless 口径层
SQL Sandbox 隔离只读执行环境
Hallucinated Join 不存在或错误的 Join
Golden Set 发布门禁评测集
Execution Accuracy 结果集与金标一致
Cost Cap 扫描/时间/行数上限
version_pin 全链路版本快照
RLS / CLS 行级/列级安全

19. 附录 F:阅读路径

岗位 本周 下周
Applied AI §3+§10+[04] [06] Eval
数据架构 §4+§7+mysql/05 postgres/06
安全 §6+[17] [98]
架构师 全篇+[27] [98] T01–T20

99. 冲刺 Q&A 与章节导航

99.1 章节导航

内容
§0 30 分钟 Checklist
§1 七视图方法论
§2 业务视图
§3 应用视图
§4 数据视图(Golden Set)
§5 部署视图
§6 安全视图
§7 集成视图
§8 演进视图
§9 决策矩阵
§10 幻觉 Join 专题
§11 15 道口述
§12 STAR-M-P
§13 Master Checklist
§14–19 附录
§99 Q&A

99.2 冲刺 Q&A(T01–T40)

ID Q A(brief) 锚点
T01 Schema Linking 漏表? Hybrid 检索+同义词+澄清;降级 L1。 §3.3
T02 dbt 与 Cube 并存? Metric Registry 统一映射执行后端。 §7
T03 Validator 独立服务? 是,无状态,便于审计升级。 §3.5
T04 UNION 绕过? AST 单 SELECT;禁 UNION 除非白名单。 §3.5
T05 Replica 延迟? 脚注 data_freshness_lag;超阈拒答。 §5
T06 指标口径变更? metric_rev 进 version_pin;Golden 回归。 §4
T07 临时表? 默认禁;scratch 库+TTL DROP。 §3.6
T08 Audit 存 ClickHouse? 按日分区;TTL 7y;禁 UPDATE。 §6.4
T09 Trino 白名单? allowed_catalogs 配置。 §7.3
T10 Prompt 注入? Guardrails;RAG 来源隔离。 §6.3
T11 Window 成本高? 限制分区列;cost cap。 §3.7
T12 中英混问? 多语 Embedding;指标 ID 英文。 §3.3
T13 与 ReAct? 有界 Plan-Execute,非无限环。 §11.10
T14 Golden hash 不一致? 查副本延迟/浮点容差。 §4.2
T15 Cube 缓存? pre-aggregation + question_hash。 §7.2
T16 break-glass? 双批+flag+24h 复盘。 §13
T17 注释注入? Parser 剥注释再验 AST。 §3.5
T18 列 mask? 语义层→视图→DLP 三层。 §6
T19 口径争议度量? metric_disambiguation_rate §2
T20 子查询深度? depth≤3,更深审批。 §3.5
T21 与 27 预算? LLM+scan 合并 $/question §3.7
T22 MCP schema? metrics[] dimensions[] filters{}。 §7.4
T23 禁导出? policy result_export=false。 §2
T24 图表谁画? Agent 返 vega-lite;前端渲染。 §3
T25 OIDC 映射? groups→data_roles→策略。 §6
T26 误删风险? 沙箱无写;审计仅 SELECT。 §3.6
T27 CTE? 允许 WITH;须过 Join 图。 §3.5
T28 「上周」时区? tenant TZ→UTC 存本地显。 §3
T29 重复问浪费? idempotency_key 日级缓存。 §3
T30 模型升级? Golden shadow 24h。 §4
T31 敏感列名? CLS+Catalog sensitive 标。 §6
T32 跨库 Join? manifest 声明的 cross-catalog 边。 §10.3
T33 CSV 导出? 异步+审批+水印+行限。 §2
T34 解释数字? metric 定义+SQL+lineage。 §3
T35 vs BI 仪表盘? NL 入口 vs 固化视图。 §2
T36 私有化 vLLM? 金融常要;语义层同域部署。 §5
T37 Golden 谁维护? Owner+平台月度会。 §10.6
T38 用户点踩? 进 Golden 候选池。 §4
T39 98 怎么背? §0→§3→§11 五题→P0→T01–10。 §99
T40 分库分表 Linking? 逻辑表映射 Catalog;禁跨 shard Join。 §7

99.3 与 98 交叉索引

98 模块 本篇锚点
Agent 生产 C.29–40 §3、§11
RAG C.56–65 §3.3 Linking
安全 C.80+ §6、[17]
FinOps C.47–55 §3.7、[07]
Text-to-SQL 新增 T01–T40

99.4 考前 10 分钟速记

  1. 七视图一句话(§1.2)
  2. 流水线七段(§10.1)
  3. 幻觉 Join 四层(§10.3)
  4. P0 十二条(§13.1)
  5. STAR:错 Join → Join Graph → 语义层

20. 附录 G:Validator 规则全集(R01–R30)

rule_id 检查项 动作
R01 仅 SELECT/WITH BLOCK
R02 拒绝 ; 多语句 BLOCK
R03 表白名单 BLOCK
R04 列黑名单 BLOCK
R05 Join 边∈graph BLOCK
R06 事实表 dt 过滤 WARN→BLOCK
R07 EXPLAIN 扫描上限 APPROVAL
R08 LIMIT 上限 ENFORCE
R09 超时 KILL
R10 sql_hash 与审批一致 BLOCK
R11 拒绝 INTO OUTFILE BLOCK
R12 拒绝 LOAD BLOCK
R13 拒绝 CALL/PROCEDURE BLOCK
R14 子查询深度 APPROVAL
R15 CROSS JOIN 无 ON BLOCK
R16 全表扫无分区 APPROVAL
R17 敏感列访问 BLOCK
R18 tenant 谓词注入 ENFORCE
R19 注释剥离后解析 BLOCK
R20 UNION 默认禁 BLOCK
R21 信息_schema 访问 BLOCK
R22 pg_catalog 访问 BLOCK
R23 系统变量 SET BLOCK
R24 锁提示 USE INDEX 滥用 WARN
R25 笛卡尔积行数预估 APPROVAL
R26 窗口函数分区键 WARN
R27 跨 catalog 边 BLOCK
R28 结果列数上限 TRUNCATE
R29 PII regex 结果扫描 MASK
R30 version_pin 缺失 BLOCK

21. 附录 H:Golden Case 标签 taxonomy

tag 含义 示例
metric_only 仅语义层 「上周 GMV」
join_2hop 两跳 Join 订单×渠道×区域
join_bridge 桥表 订单×商品×类目
window_yoy 同比窗口 「同比 GMV」
timezone 时区边界 自然周 vs 财务周
rls_tenant 租户隔离 跨租户负例
pii_block 应拒绝 「导出手机号」
cost_hot 大扫描 无分区全表
approval_L2 需审批 宽表 Join
hallucinated_join 错 Join 负例 错 channel_sk

22. 附录 I:MySQL 沙箱账号 GRANT 示例

CREATE USER 'agent_ro'@'10.%.%.%' IDENTIFIED BY '...';
GRANT SELECT ON mart_order.* TO 'agent_ro'@'10.%.%.%';
GRANT SELECT ON mart_dim.* TO 'agent_ro'@'10.%.%.%';
-- 禁止 INSERT/UPDATE/DELETE/CREATE/DROP
SET GLOBAL MAX_EXECUTION_TIME = 30000;  -- 会话级可覆盖

→ 索引与 EXPLAIN:mysql/05mysql/04 二级索引


23. 附录 J:PostgreSQL 沙箱 + RLS 示例

CREATE ROLE agent_ro LOGIN;
GRANT USAGE ON SCHEMA mart TO agent_ro;
GRANT SELECT ON ALL TABLES IN SCHEMA mart TO agent_ro;
ALTER ROLE agent_ro SET statement_timeout = '30s';

-- 应用连接后
SET app.tenant_id = '12345';
-- RLS policy 见 §6.1

→ MVCC 与可见性:postgres/03;Planner:postgres/06


24. 附录 K:MetricFlow 查询 Tool JSON Schema

{
  "name": "semantic_query",
  "parameters": {
    "type": "object",
    "required": ["metrics", "dimensions"],
    "properties": {
      "metrics": { "type": "array", "items": { "type": "string" } },
      "dimensions": { "type": "array", "items": { "type": "string" } },
      "where": { "type": "string" },
      "limit": { "type": "integer", "maximum": 10000 }
    }
  }
}

25. 附录 L:Catalog 表注册模板(批量)

logical_name physical_table domain embedding_id join_graph_rev
fct_order mart.fct_order order emb_001 jg_v3
dim_region mart.dim_region order emb_002 jg_v3
dim_channel mart.dim_channel order emb_003 jg_v3
fct_payment mart.fct_payment pay emb_010 jg_v3
dim_merchant mart.dim_merchant pay emb_011 jg_v3
fct_refund mart.fct_refund order emb_020 jg_v3
dim_product mart.dim_product product emb_030 jg_v4
bridge_order_item mart.bridge_order_item order emb_031 jg_v4
fct_inventory mart.fct_inventory supply emb_040 jg_v4
dim_warehouse mart.dim_warehouse supply emb_041 jg_v4

下一步:时间紧走 §0 → §3 → §11 任选 5 题 → §13 P0 → §99 T01–T10;Architect 补 §6 RLS + §7 dbt + §12 STAR;数据岗加刷 mysql/05postgres/06。冲刺总览 98

官方文档与源码(一级依据)

AI Engineering · 正文机制应来自下方 官方文档(L1)官方源码仓库(L2)
禁止用教程站/博客充当机制依据。本章 QPS/延迟/STAR 为面试示意。
写作规范:docs/official-sources-registry.md §0

L1 · 官方文档

L2 · 官方源码

L3 · 论文 / 开放规范

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐