• 關於 Milvus
  • 開始使用
  • 概念
  • 使用者指南
  • 資料匯入
  • AI 工具
  • 管理指南
  • 工具
  • 整合功能
  • 教學指南
  • 常見問題
  • API Reference

快照應用情境Compatible with Milvus 3.0.x

在本指南中,您將了解快照的常見使用情境。

資料備份與還原

快照是資料的快速、特定時間點的影像,適用於快速回滾或測試(數天至數週)。與此同時,備份則是獨立且完整的副本,會另行儲存以供長期災難復原(數週至數年),並能更好地防範儲存裝置完全故障。

下表比較了快照與備份的差異。

備份

快照

備份建立

複製所有資料檔案(耗時)

僅建立元資料(僅需數毫秒)

還原

匯入資料並重建索引

僅複製現有的資料與索引檔案

效能

速度慢且資源消耗大

快速且輕量級(僅需數秒至數分鐘)

對系統的影響

I/O 和 CPU 使用率高

影響極小

建立快照通常只需數毫秒,而還原快照則需數秒至數分鐘,具體時間取決於資料量。

有關快照的限制、規範及其對系統的影響,請參閱《快照》。

透過外部集合進行資料處理

快照可為分析或驗證工作負載提供穩定且特定時間點的資料來源。對於 Milvus 快照,請使用milvus-table 外部集合格式,而非直接將快照檔案作為通用 Spark 輸入進行讀取。 Milvus 快照會儲存集合元資料、區段清單、刪除日誌及主鍵統計資料,因此 Milvus 需要快照元資料 JSON 以及milvus-table 讀取器,以保留正確的資料結構與刪除語義。

此工作流程會在快照資料上建立一個可查詢的外部集合。主要欄位資料仍從快照來源進行引用,而刷新作業會將來源的 StorageV3 清單映射至目標外部區段。

步驟 1:取得快照元資料路徑

從一般的 Milvus 集合中建立或選擇一個快照,然後對其進行描述以取得其物件儲存位置。

from pymilvus import DataType, MilvusClient

client = MilvusClient(
    uri="http://localhost:19530",
    token="root:Milvus"
)

snapshot_info = client.describe_snapshot(
    snapshot_name="analytics_snapshot_20260321",
    collection_name="my_collection",
    include_collection_info=True
)

external_source = f"s3://bucket/{snapshot_info.s3_location}"

步驟 2:建立並刷新「milvus-table 」外部集合

建立一個其資料結構與快照來源集合相符的外部集合。將 `external_spec.format ` 設定為 `"milvus-table"`,並將每個目標資料欄位的 `external_field ` 設定為對應的來源欄位名稱。

schema = client.create_schema(
    external_source=external_source,
    external_spec="""{
        "format": "milvus-table",
        "extfs": {
            "cloud_provider": "aws",
            "region": "us-west-2",
            "access_key_id": "YOUR_ACCESS_KEY",
            "access_key_value": "YOUR_SECRET_KEY"
        }
    }""",
)

schema.add_field(
    field_name="id",
    datatype=DataType.INT64,
    is_primary=True,
    external_field="id",
)
schema.add_field(
    field_name="embedding",
    datatype=DataType.FLOAT_VECTOR,
    dim=768,
    external_field="embedding",
)

client.create_collection(
    collection_name="snapshot_external_collection",
    schema=schema,
)

job_id = client.refresh_external_collection(
    collection_name="snapshot_external_collection"
)

刷新完成後,您可以建立索引、載入外部集合,並針對由快照支援的檢視執行搜尋或查詢操作。

翻譯者DeepL

免費嘗試托管的 Milvus

Zilliz Cloud 無縫接入,由 Milvus 提供動力,速度提升 10 倍。

開始使用
反饋

這個頁面有幫助嗎?