展开本页目录
开始前准备什么
- 下载练习包,先阅读 README 中的依赖和运行范围。
- 使用独立练习目录;starter 是待完成任务,reference 是作者参考实现。
- 账号型功能须在自己的授权环境执行;本题不要求提供真实凭据。
- 明确三阶段依赖
- 声明原生DAG
- 运行首次管道
- 只改一份原始输入
- 观察受影响重跑
- 重复不变验收
- 交付可复算文件
1. 明确三阶段依赖
clean读raw.csv,metrics读clean.json,catalog独立读labels.txt。先画清实际文件关系,不把全部输入塞给每个阶段。
2. 声明原生DAG
dvc.yaml逐阶段写cmd/deps/outs,命令实际调用stage.py。参数和源码变化也属于依赖,不能漏掉。
本题本地命令
python run.py3. 运行首次管道
在独立Git/DVC练习仓库执行repro,保留首次产物与锁文件。没有真实运行记录的YAML不证明管道可复算。
4. 只改一份原始输入
将harbor从8改11,其他文件不动。预期active_rows仍2、total从20变23,catalog内容不变。
5. 观察受影响重跑
原生DVC重新执行clean和metrics,catalog显示didn't change, skipping。不是作者根据文件名手动选择了两个脚本运行。
6. 重复不变验收
再次repro,三个阶段都跳过,Data and pipelines are up to date。缓存命中不能被报告成阶段又计算了一次。
7. 交付可复算文件
保存dvc.yaml、dvc.lock、日志和summary。运行缓存、.git/.dvc内部目录不进入ZIP,读者按README在自己的目录重建。
怎样确认已经完成
- 改输入只影响正确依赖
- 不相关步骤不重跑
- 换目录可按本地资料复算
- 已运行DVC原生repro:改raw只重跑clean→metrics,catalog跳过;不变输入再次全跳过,交付真实dvc.lock与summary。
常见问题
AI 数据分析管道改一份输入为什么全都重跑?
为每阶段准确声明cmd、deps和outs,再运行dvc repro。本文改raw后原生DVC只重跑clean→metrics,独立catalog跳过。
DVC 怎么证明结果来自哪一版数据?
不是只看输出存在。检查锁文件和原生repro日志;再次输入不变时应全跳过,改依赖后应重算并得到新的正确值。
哪些功能已经实际执行?
已运行DVC原生repro:改raw只重跑clean→metrics,catalog跳过;不变输入再次全跳过,交付真实dvc.lock与summary。



