为了理解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(可能会使某些验证检查短路,或解锁高级功能,例如foreachstage)。