Milvus 2.6.9批量导入报错:key not found问题求助
解决Milvus Bulk Import时MinIO文件找不到的问题
问题根源
Milvus配置了minio.rootpath=files,意味着Milvus访问MinIO的a-bucket时,所有文件操作都会默认在a-bucket/files/路径下进行。你当前的文件存储在a-bucket/result/parquet/0.snappy.parquet,但Milvus会尝试查找a-bucket/files/result/parquet/0.snappy.parquet,因此出现key not found错误。
解决方案
方案1:移动文件到MinIO的rootpath目录下
将MinIO中的文件移动到files目录下,匹配Milvus的rootpath配置:
- 使用MinIO客户端
mc执行移动命令:mc mv minio/a-bucket/result minio/a-bucket/files/ - 移动完成后,文件路径变为
a-bucket/files/result/parquet/0.snappy.parquet,重新执行bulk_import任务即可。
方案2:修改Milvus的minio.rootpath配置(需重启服务)
如果不想移动文件,可以修改Milvus的minio.rootpath配置为空,让Milvus直接访问bucket根目录:
- 找到Milvus的配置文件(如
milvus.yaml) - 修改
minio.rootpath配置项:minio: rootpath: "" - 重启所有Milvus服务组件,再重新执行bulk_import任务。
方案3:调整bulk_import的文件路径参数
提交bulk_import任务时,将文件key指定为相对于rootpath的上级路径(需MinIO支持路径回溯):
- 提交任务时,把文件路径改为
../result/parquet/0.snappy.parquet,让Milvus从rootpath的上级目录查找目标文件。
额外检查项
- 确认Milvus使用的MinIO账号拥有
a-bucket对应目录的读权限,避免因权限不足导致文件无法访问。 - 检查MinIO的endpoint地址
milvus-test-0001.cloud:9000是否能被Milvus的datanode组件正常访问,排除网络连通性问题。
内容的提问来源于stack exchange,提问作者Nikolay Baranenko
相关产品推荐
相关产品推荐

