为了理解dvcdvc run
,大多数教程都提到了通过运行命令生成 dvc.yaml 。
但同时,定义 DAG 的 dvc.yaml 也有据可查。此外,它是一种 yaml 格式和人类可读/可写的事实表明它是用于指定数据管道的 DSL。
有人可以澄清哪个是更好的做法吗?编写 dvc.yaml 还是让它通过dvc run
命令生成?还是留给用户选择,没有技术差异?
两者,真的。
主要dvc run
(或dvc stage add
后跟的更新dvc exp run
)是为了管理您的dvc.yaml
文件。对于大多数(包括临时)用户来说,这可能是最简单的,因此也是最好的。格式会保证正确(类似于选择{git,dvc} config
和直接修改.{git,dvc}/config
)
但是,正如您所注意到的,dvc.yaml
它是人类可读的。这是故意的,以便更高级的用户可以手动编辑 YAML(可能会使某些验证检查短路,或解锁高级功能,例如foreach
stage)。