阅读材料: 第3部分. DataLakeHouse 流程概述

模块「第3部分. DataLakeHouse 流程概述」中第 1 / 5 节课
您正在未登录状态下查看课程。 请登录,以保存进度并参加测试。

第 3 部分. DataLakeHouse 流程概述

SDD Data 使用与基础 SDD 相同的原则:首先是意图和可验证的事实,然后是实现。区别在于工件更多。在常规功能中,requirements.mdplan.mdvalidation.md 就足够了。在数据项目中,会出现源数据画像、Schema Manifest、ODCS/ODPS、模型规范、dbt 测试、沿袭关系和评审者报告。

主流程

使命 -> 源数据画像 -> Schema Manifest -> 数据产品规范
-> 契约 -> dbt 模型 -> 验证事实 -> 评审者报告

此流程不必很繁重。对于教学示例,每个工件都很短,但它回答一个独立的问题:

  • 使命:平台为何存在;
  • 源数据画像:实际收到了什么;
  • Schema Manifest:我们观察到哪些字段,还有哪些未知;
  • 数据产品规范:我们向消费者承诺什么;
  • 契约:哪些字段、SLA 和质量必须保持;
  • dbt 模型:我们如何构建结果;
  • 验证事实:我们如何证明就绪;
  • 评审者报告:谁检查了变更以及风险仍在哪里。

智能体与人类的角色

智能体擅长机械工作:读取 CSV、提议清单、编写 SQL、查找规范与模型之间的差异。人类负责语义:粒度、PII 策略、业务所有者、破坏性变更、版本发布审批。如果智能体自己决定可以将 customer_id 替换为 account_id,流程就已经失败了。

分离角色:

  • 画像分析者读取源数据并返回事实;
  • 构建者根据已批准的规范编写模型;
  • 评审者将变更与契约和验证事实进行比较。

即使所有角色都由一个工具执行,也应在 /clear 之后于不同会话中运行它们。这样可以验证上下文是否充分记录在文件中。

最小仓库结构

specs/
  mission.md
  tech-stack.md
  roadmap.md
  customer_360_product.odps.yaml
  customer_360_contract.odcs.yaml
  models/
    mart_customer_360.md
  validation/
    customer_360.md
models/
  staging/
  intermediate/
  marts/
tests/

如果重要决策仅存在于聊天中,下一个智能体将丢失它。如果它存在于规范中,评审者可以独立验证它。

读者解读

DataLakeHouse 流程的主要危险在于它看起来像一条线性阶梯:源、清单、契约、模型、验证、评审。实际上它不是阶梯,而是带有反馈的系统。源数据画像可能显示空日期。契约可能发现产品承诺过宽。评审可能将作者拉回到粒度问题。SDD 不禁止回退;它使回退可见。

本章中的每个工件都回答自己的问题。清单回答:「我们看到了什么?」契约回答:「我们承诺什么?」模型回答:「我们如何构建它?」验证回答:「我们如何证明?」评审者报告回答:「谁查看了整体关联?」如果将这些答案合并到一个大文档中,读者起初会觉得更容易,然后变得更难:源、承诺和验证开始不知不觉地相互替换。

出于同样的原因需要分离角色。模型的作者自然会为自己的决策辩护。即使作者是智能体,它已经沿着选定的路径前进,并倾向于将其解释为正确的。只读模式下的评审者看待问题的方式不同:他不试图挽救实现,而是检查它是否兑现了承诺。在 /clear 之后,这种检查变得更加诚实,因为评审者不记得作者可能解释未记录决策的那段对话。

实际上,本章应教会读者看到空白处。如果存在 SQL 但没有 validation.md,这不算「几乎完成」。如果存在 ODCS 但没有必填字段的检查,这不是契约,而是声明。如果存在评审者报告但没有引用规范,那是意见,而不是证据。只有当空白在错误进入数据集市之前被看见,SDD Data 才有效。

实践

mart_customer_360 绘制工件地图:哪些文件负责源数据事实、产品承诺、契约、实现、validation.md 和评审。单独标记文件尚未创建或未与检查关联的空白处。

Qwen 概览查询

读取 AGENTS.md、specs/mission.md、specs/tech-stack.md 和 specs/roadmap.md。
构建 DataLakeHouse 工件地图:哪些文件负责源数据事实、产品承诺、契约、dbt 实现和检查。
不要修改文件。

最小输出

创建 workflow-map.md 或工作笔记:

源数据事实:
产品承诺:
契约:
实现:
检查:

评审:

对于每个项目,指定文件或标记空白。现在看到空白总比 SQL 写好后再发现要好。

常见错误

执行单个 /sdd:do-everything 命令。它在演示中很方便,但破坏了人类控制。当单个智能体自行对源数据进行画像、自行决定粒度、自行编写 SQL 并自行确认就绪时,在银行数据中这是危险的。

自检问题

  1. Schema Manifest 与数据产品规范有何不同?
  2. 为什么构建者和评审者应该是独立的角色?
  3. /clear 如何帮助验证流程是否记录在文件中?
我的笔记
0 / 10000

笔记保存在当前浏览器中。在其他设备上将不会显示。

课程菜单

课程

SDD Data. 使用 Qwen Code 和 dbt 构建银行数据平台
进度 0 / 110