存储 V3Compatible with Milvus 3.0.x

概述

AI 数据集在 Collection 创建后往往会不断演变。随着模型和工作流的变化,团队可能需要添加文本、为现有实体生成新的向量字段,或者使用存储在 Milvus 之外的数据。要支持这些工作流,需要一种能够随数据集共同演进的存储模型。

Storage V3 在 Milvus 3.0 中提供了这种模型。它采用版本化存储布局,可整合随时间推移新增或重写的数据,同时应用程序仍可通过相同的 Milvus API 访问 Collections。

Storage V3 默认处于禁用状态。common.storage.useLoonFFI 生效后,新的写入操作和压缩输出将使用 Storage V3。现有数据将保留在当前布局中,直到符合条件的数据被后台压缩重写为止。在此过渡期间,Milvus 可以读取两种布局。启用 Storage V3 是为了使用依赖于它的功能,而非作为一般的性能优化手段。

需要 Storage V3 的功能

功能描述所需配置
TEXT 字段存储长源文本(例如段落、文档、工单或日志),且无需在Collection Schema中设置固定的最大长度。common.storage.useLoonFFI=true
函数生成的向量字段向现有 Collection 添加 BM25 或 MinHash 函数,以便 Milvus 基于现有的VARCHAR 字段生成新的向量字段。Milvus 会通过后台压缩,异步地为现有实体补入生成的值。
External Collections无需将数据复制到管理 Collections 中,即可查询存储在 Milvus 外部的数据。当源数据发生变化时,请刷新外部 Collection。若要公开其他源字段,请参阅“修改外部 Collection Schema”common.storage.useLoonFFI=true

启用 Storage V3 之前

一旦 Milvus 将数据写入 Storage V3,将不支持降级到无法读取 Storage V3 的 Milvus 版本。后续禁用 Storage V3 不会立即转换所有现有的 Storage V3 数据,也不会恢复与旧版本的兼容性。

在启用 Storage V3 之前,请考虑以下数据行为:

  • 由于dataCoord.compaction.storageVersion.enabled 默认处于启用状态,符合条件的现有数据可通过后台压缩逐步迁移至Storage V3。
  • 禁用 Storage V3 会更改未来写入操作及符合条件的压缩输出所使用的目标存储版本。此操作不会同步转换所有现有的 Storage V3 数据,也不会确保版本降级的安全性。

启用 Storage V3

在 Milvus 配置中将 `common.storage.useLoonFFI ` 设置为 `true `:

common:
  storage:
    useLoonFFI: true

Milvus 将此设置视为可刷新设置。请通过部署环境支持的配置更新工作流应用此更改。仅编辑静态配置文件并不能保证运行中的部署已接收新值。

如果您计划将一个函数及其生成的向量字段添加到现有Collection中,还需启用现有数据回填所需的两个压缩设置:

dataCoord:
  compaction:
    bumpSchemaVersion:
      enabled: true
    storageVersion:
      enabled: true

针对现有实体的函数输出是通过后台压缩异步生成的。Schema更新成功并不意味着所有现有实体的回填都已完成。

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

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

免费试用 Zilliz Cloud
反馈

此页对您是否有帮助?