如何通过DVC添加已有S3数据?是否需先下载至本地?
S3数据接入DVC追踪的正确操作
- 不需要先把S3上的数据下载到本地再执行
dvc add,可以直接通过DVC关联S3存储完成追踪,无需全量下载数据。 - 你之前的逻辑存在偏差:即使数据已经在S3,执行
dvc add后通常还是需要dvc push,原因在于DVC的本地缓存和你原本存放在S3的原始数据是两个不同的管理维度:- 首先要将你的S3桶配置为DVC的远程存储:
dvc remote add -d my_s3_remote s3://your-bucket-name/data-path - 如果不想下载全量数据,直接用
dvc import命令拉取S3数据并生成.dvc追踪文件,这个命令会自动计算数据哈希,生成的.dvc文件可直接纳入Git版本控制,且支持按需拉取数据:dvc import s3://your-bucket-name/data-path/target-data - 要是你选择把数据下载到本地再执行
dvc add,此时dvc add只是把数据加入本地缓存并生成.dvc文件,但DVC的远程缓存(S3)还未与本地缓存同步,必须执行dvc push才能把缓存的哈希映射关系同步到S3,这样其他协作成员才能通过dvc pull获取对应版本的数据。
- 首先要将你的S3桶配置为DVC的远程存储:
- 额外说明:如果你的S3路径已作为DVC的缓存存储,配置远程后,
dvc push时DVC会校验数据哈希,若S3上已有相同哈希的数据,会跳过重复上传,不会浪费带宽。
内容的提问来源于stack exchange,提问作者haju
相关产品推荐
相关产品推荐

