儲存 V3Compatible with Milvus 3.0.x
概述
AI 資料集在建立後往往會持續演進。隨著模型和工作流程的變更,團隊可能需要新增文字、為現有實體產生新的向量場,或使用儲存於 Milvus 外部的資料。要支援這些工作流程,需要一種能隨資料集演進而調整的儲存模型。
Storage V3 在 Milvus 3.0 中提供了此模型。它採用版本化儲存佈局,以整合隨時間新增或重寫的資料,同時應用程式仍可透過相同的 Milvus API 存取集合。
Storage V3 預設為停用狀態。當 `common.storage.useLoonFFI ` 生效後,新的寫入操作及壓縮輸出將採用 Storage V3。現有資料將維持在當前佈局中,直到符合條件的資料被背景壓縮程序重寫為止。在此過渡期間,Milvus 可讀取兩種佈局。啟用 Storage V3 是為了使用依賴此功能的特性,而非作為一般的效能優化措施。
需要 Storage V3 的功能
| 功能 | 說明 | 所需設定 |
|---|---|---|
TEXT field | 儲存長篇原始文字(例如段落、文件、工單或日誌),且無需在集合架構中設定固定的最大長度。 | common.storage.useLoonFFI=true |
| 函式生成的向量欄位 | 將 BM25 或 MinHash 函數新增至現有集合,以便 Milvus 能從現有的「VARCHAR 」欄位生成新的向量欄位。Milvus 會透過背景壓縮,以非同步方式將生成的值填入現有實體中。 | |
| 外部集合 | 無需將資料複製到受管集合中,即可查詢儲存於 Milvus 外部的資料。當來源資料變更時,請刷新外部集合。若要公開額外的來源欄位,請參閱「變更外部集合架構」。 | 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 將此設定視為可刷新設定。請透過您的部署所支援的 configuration-update 工作流程套用此變更。僅編輯靜態設定檔並不能保證正在運行的部署已收到新值。
若您計劃將一個函數及其生成的向量場新增至現有集合中,也請啟用現有資料回填所需的兩項壓縮設定:
dataCoord:
compaction:
bumpSchemaVersion:
enabled: true
storageVersion:
enabled: true
針對現有實體的函式輸出,是透過背景壓縮以非同步方式生成的。即使模式更新成功,也不代表所有現有實體的資料回填都已完成。
相關文件
- 文字欄位
- 變更集合模式
- 建立外部集合
- Milvus 部署選項概覽
- 使用 Helm 圖表升級 Milvus 獨立版
- 使用 Helm 圖表升級 Milvus 叢集
- 與 common 相關的設定
- 與 dataCoord 相關的設定
- 為何我們打造 Loon:專為不斷變化的 AI 資料設計的儲存引擎— 關於 Storage V3 設計動機的工程背景說明。