我目前正在做一个项目,我想使用DVC将数据从外部位置推/版本到远程存储,然后将更新从远程存储库拉/检索回外部位置。在这个过程中,我打算只在本地工作区中保留.dvc
文件。
为了提供更多的上下文,下面是具体的要求:
*跟踪外部数据集:我有一个位于/external-to-workspace/dataset
的外部数据集,我想使用DVC跟踪这个数据集。
*上传数据集版本到DVC Remote:我需要使用ssh将不同版本的数据集上传到一个DVC远程,该远程位于ssh://example.com/path/to/storage
。
*从DVC Remote更新外部数据集:当从远程拉取/检索数据集时,我不想创建数据集的本地副本,而是想更新外部数据集本身。这意味着对DVC远程中的数据集所做的更改应反映在原始外部位置中。
我尝试了dvc import-url --to-remote
,它将数据从外部复制到远程,但dvc pull
创建本地副本,而不是再次拉取到外部目录。
我相信DVC提供了必要的功能来实现这一点,但我不确定所需的确切步骤和配置。如果任何人有类似的设置经验或如何实现这一点的任何建议,我将非常感谢您的指导。
1条答案
按热度按时间webghufk1#
这个选择怎么样。在
/external-to-workspace/
中,初始化一个自己的DVC和Git仓库。在其中,您可以使用所有常规命令,如dvc add
,dvc push
等来版本化您的数据并将其保存到远程。数据位置保持不变/external-to-workspace/dataset
,您只会有额外的/external-to-workspace/.dvc
和/external-to-workspace/.git
。要避免数据重复,请确保启用了符号链接。在项目存储库中,您将有两个选项。
1.直接使用外部仓库中的数据,不要在其中使用DVC。
1.使用
dvc import
(+设置DVC,使其与外部存储库共享该高速缓存,这样我们就不会移动数据)。作为一种方法,这听起来合理吗?(我可以给予出更具体的命令来说明如何尝试它)。