• 关于 Milvus
  • 开始使用
  • 概念
  • 用户指南
  • 数据导入
  • AI 工具
  • 管理指南
  • 工具
  • 集成
  • 教程
  • 常见问题解答
  • API Reference

快照Compatible with Milvus 3.0.x

快照是 Milvus Collection 在特定时间点的镜像,非常适合快速回滚、版本控制和测试。它捕获 Collection 在特定时间戳下的状态,并仅存储元数据和清单文件(如 Schema、索引和向量数据文件(二进制日志)),以实现高效的存储和恢复。

快照是数据的快速、特定时间点的镜像,适用于快速回滚或测试(时间跨度为数天至数周)。与此同时,备份则是独立的完整副本,单独存储以用于长期灾难恢复(时间跨度为数周至数年),并能更好地防范存储系统完全故障。

要创建备份,请参阅《Milvus 备份》。

快照结构

Milvus 采用基于清单的快照架构,可在不复制实际向量数据的情况下,高效地捕获、存储和恢复特定时间点的数据。该架构将元数据管理与物理数据存储分离,从而实现轻量级快照,这些快照引用对象存储中现有的分段文件。

当您为 Collection 创建快照时,Milvus 会收集以下信息:

  • 快照元数据

    它提供用于创建快照的基本信息,包括快照名称和描述、目标 Collection ID 以及创建快照的时间点。

  • Collection description

    包含目标Collection的描述,包括其Schema定义、分区信息和属性。

  • 索引信息

    它存储索引元数据和索引文件的路径。

  • 分段数据

    该部分包含向量数据文件(binlogs)、删除日志(deltalogs)和索引文件。

在上述信息中,Milvus 为每个分段生成一个 Apache Avro 清单文件,并将快照元数据、Collection 描述、索引信息以及清单文件的路径存储在一个 JSON 文件中。下图说明了快照的文件夹结构。

snapshots/{collection_id}/
├── metadata/
│   └── {snapshot_id}.json         # Snapshot metadata (JSON format)
│
└── manifests/
    └── {snapshot_id}/             # Directory for each snapshot
        ├── {segment_id_1}.avro    # Individual segment manifest (Avro format)
        ├── {segment_id_2}.avro
        └── ...

创建快照通常只需几毫秒,而恢复快照则根据数据量不同,可能需要几秒到几分钟不等。

对存储的影响及注意事项

一旦 Milvus 引用了快照中的某个分段或索引文件,除非您删除该快照,否则它不会对这些文件进行垃圾回收。快照占用的存储空间与目标 Collections 的大小成正比,且快照保留期间会产生对象存储费用。在极端情况下,单个快照甚至可能使您的对象存储成本翻倍。建议您

  • 定期删除旧快照以节省存储空间。
  • 使用描述性名称和说明以便日后参考。
  • 始终验证快照创建和还原结果。
  • 跟踪快照的创建时间戳和存储使用情况,以便进行监控和故障排除。
  • 保存还原作业 ID,以便进行监控和故障排除。

限制与约束

  • 快照在创建后即成为不可变的。
  • 您只能将快照还原到与原始快照位于同一集群中的新Collection中。
  • 恢复后的 Collections 将保留相同的 Schema、分片数和分区数。
  • 恢复的历史数据可能会与 TTL 策略发生冲突。建议您在创建快照之前禁用 TTL 或调整 TTL 设置。
  • 若要将快照用作milvus-table 的外部数据源,该源快照必须来自常规的StorageV3 Milvus Collection。外部Collection的快照不支持作为milvus-table 的数据源。

进一步阅读

翻译自DeepL

想要更快、更简单、更好用的 Milvus SaaS服务 ?

Zilliz Cloud是基于Milvus的全托管向量数据库,拥有更高性能,更易扩展,以及卓越性价比

免费试用 Zilliz Cloud
反馈

此页对您是否有帮助?