🚀 免費嘗試 Zilliz Cloud,完全托管的 Milvus,體驗速度提升 10 倍!立即嘗試

milvus-logo
LFAI
主頁
  • 工具

使用 API 備份和還原資料

Milvus Backup 提供資料備份和還原功能,以確保您的 Milvus 資料安全。

取得 Milvus 備份

您可以下載已編譯的二進位檔或從原始碼建立。

要下載編譯後的二進位檔,請前往發行版頁面,在那裡您可以找到所有官方發行版。請記住,請務必使用標示為最新版本的二進位檔。

從原始碼編譯的步驟如下:

git clone git@github.com:zilliztech/milvus-backup.git
go get
go build

準備組態檔案

下載範例組態檔案,並依您的需求進行調整。

然後在已下載或已建立的 Milvus Backup 二進位檔旁邊建立一個資料夾,將資料夾名稱為configs ,並將設定檔放在configs 資料夾內。

您的資料夾結構應與以下相似:

  
  workspace
  ├── milvus-backup
  └── configs
      └── backup.yaml
  

由於 Milvus Backup 無法將您的資料備份至本機路徑,因此在調整組態檔時,請確保 Minio 設定正確。

預設 Minio 資料桶的名稱會因您安裝 Milvus 的方式而異。變更 Minio 設定時,請務必參考下表。

欄位Docker ComposeHelm / Milvus 操作員
bucketNamea-bucketmilvus-bucket
rootPath檔案檔案

啟動 API 伺服器

然後,您可以按以下步驟啟動 API 伺服器:

./milvus-backup server

API 伺服器預設在 8080 連接埠監聽。您可以使用-p 標誌執行來變更。要啟動以連接埠 443 聆聽的 API 伺服器,步驟如下:

./milvus-backup server -p 443

您可以使用 http://localhost 存取 Swagger UI:/api/v1/docs/index.html。

準備資料

如果您運行一個空的本機 Milvus 實例,在預設的埠 19530 上監聽,請使用範例 Python 腳本在您的實例中產生一些資料。請隨意對腳本進行必要的修改,以滿足您的需求。

取得腳本。然後執行腳本來產生資料。確保已安裝官方的 Milvus Python SDKPyMilvus

python example/prepare_data.py

此步驟是可選的。如果跳過此步驟,請確保您的 Milvus 實例中已經有一些資料。

備份資料

請注意,針對 Milvus 實例執行 Milvus Backup 通常不會影響實例的執行。在備份或還原時,您的 Milvus 實例是完全正常的。

執行以下指令建立備份。如有必要,請變更collection_namesbackup_name

curl --location --request POST 'http://localhost:8080/api/v1/create' \
--header 'Content-Type: application/json' \
--data-raw '{
  "async": true,
  "backup_name": "my_backup",
  "collection_names": [
    "hello_milvus"
  ]
}'

命令執行後,您可以列出 Minio 設定中指定的資料桶中的備份,如下所示:

curl --location --request GET 'http://localhost:8080/api/v1/list' \
--header 'Content-Type: application/json'

並下載備份檔案,如下所示:

curl --location --request GET 'http://localhost:8080/api/v1/get_backup?backup_id=<test_backup_id>&backup_name=my_backup' \
--header 'Content-Type: application/json'

執行上述指令時,將backup_idbackup_name 變更為 list API 所傳回的內容。

現在,您可以將備份檔案儲存到安全的地方,以便將來還原,或是上傳到Zilliz Cloud,以您的資料建立一個受管理的向量資料庫。詳情請參閱從 Milvus 遷移到 Zilliz Cloud

還原資料

您可以使用collection_suffix 選項來呼叫 restore API 指令,從備份中還原資料來建立新的集合。如有必要,請變更collection_namesbackup_name

curl --location --request POST 'http://localhost:8080/api/v1/restore' \
--header 'Content-Type: application/json' \
--data-raw '{
    "async": true,
    "collection_names": [
    "hello_milvus"
  ],
    "collection_suffix": "_recover",
    "backup_name":"my_backup"
}'

collection_suffix 選項可讓您為要建立的新集合設定後綴。上述命令將在您的Milvus實例中建立一個名為hello_milvus_recover的新集合。

如果您希望還原備份的資料集而不更改其名稱,請在從備份還原資料集之前丟棄該資料集。現在您可以執行以下指令,清理在準備資料中產生的資料。

python example/clean_data.py

然後執行以下命令從備份還原資料。

curl --location --request POST 'http://localhost:8080/api/v1/restore' \
--header 'Content-Type: application/json' \
--data-raw '{
    "async": true,
    "collection_names": [
    "hello_milvus"
  ],
    "collection_suffix": "",
    "backup_name":"my_backup"
}'

還原過程可能很費時,這取決於要還原的資料大小。因此,所有還原任務都是以非同步方式執行。您可以透過執行來檢查還原任務的狀態:

curl --location --request GET 'http://localhost:8080/api/v1/get_restore?id=<test_restore_id>' \
--header 'Content-Type: application/json'

切記將test_restore_id 變更為還原 API 所還原的資料。

驗證還原的資料

還原完成後,您可以按以下方式為還原的資料集編索引,以驗證還原的資料:

python example/verify_data.py

請注意,上述腳本假設您已經以-s 標誌執行restore 指令,且後綴設定為-recover 。請隨意對腳本進行必要的變更,以符合您的需求。

免費嘗試托管的 Milvus

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

開始使用
反饋

這個頁面有幫助嗎?