839 字
约 2 分钟
10
S22-A01 · 数据工程 Agent:Spark 与 DAG 观测
适用读者:想让"自然语言 → 数据任务"落地的人。
前置:S22-J04。
覆盖旧文:750(180) 755(99) 753(77) 752(75) 756(67) = 498 点。
覆盖扩展:E-S22-006(NL→Spark 四段链路)。
上一篇:S22-J04 · ReAct 变体与 DAG 编排
下一篇:S22-A02 · LangChain4j vs Spring AI。
1. 一句话结论
"自然语言生成 Spark 任务"不是让模型直接写代码就跑,而是四段链路:意图→模板/代码→校验→受控执行。中间两段决定它能不能上生产。
① 意图解析(要什么数据/什么口径)
② 生成(SQL/Spark 代码,基于模板)
③ 校验(语法/权限/代价)
④ 受控执行(沙箱 + 资源上限)
2. 四段链路的关键控制(E-S22-006)
| 段 | 控制点 | 失败后果 |
|---|---|---|
| 意图 | 澄清缺失口径(时间范围/维度) | 跑出错的数 |
| 生成 | 模板化(不是自由生成) | 语法错、逻辑错 |
| 校验 | 语法检查 + 代价预估 + 权限 | 全表扫描打爆集群 |
| 执行 | 资源上限、超时、沙箱 | 拖垮平台 |
"为什么必须模板化":自由生成的 SQL 在语义上可能"看起来对但口径错"——模板把口径固定下来。
3. 代价预估与资源保护(A-752/A-753)
| 手段 | 作用 |
|---|---|
EXPLAIN 预检 |
看是否全表扫描 |
| 分区/行数上限 | 硬约束 |
| 超时与自动 kill | 防止挂死 |
| 队列与优先级 | 防挤占 |
判据:"这个任务最坏会扫多少数据?" 答不出 → 不允许提交。
4. DAG 观测(A-752)
| 指标 | 用途 |
|---|---|
| 节点耗时 | 定位慢节点 |
| 失败率/重试次数 | 稳定性 |
| 数据量/倾斜 | 性能根因 |
| 血缘 | 影响面分析 |
"为什么血缘重要":出错时要知道"哪些下游被污染"——这是数据 Agent 与传统服务排障最大的不同。
5. TUI/交互(A-756)
| 设计点 | 说明 |
|---|---|
| 长任务要显示进度 | 否则用户以为卡死 |
| 关键步骤可中断 | 避免浪费资源 |
| 结果可回看 | 便于审计 |
6. 五个误区
| 误区 | 真相 |
|---|---|
| "让模型自由写 SQL 更快" | 口径错的风险高 |
| "不校验直接跑" | 可能全表扫描 |
| "有超时就不用限资源" | 超时前已造成压力 |
| "DAG 跑完就没事" | 要看数据质量与血缘 |
| "自然语言能替代建模" | 口径仍需人来定 |
7. 自检(架构师版)
- 四段链路各段的控制点?
- 为什么必须模板化?
- 代价预估的四种手段?
- 血缘为什么重要?
- 长任务交互的三个设计点?
8. 下一篇
S22-A02 · LangChain4j vs Spring AI
数据工程讲完,最后一篇做框架对比。
本篇属于系列《S22 · AI 工程落地实战》。旧文来源:A-750/755/753/752/756;扩展点 E-S22-006。
S22-A01 · 数据工程 Agent:Spark 与 DAG 观测
https://www.clxhxhhr.top/posts/5524/ 评论
0 条
还没有评论,先写一条吧。