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

milvus-logo
LFAI
主頁
  • Milvus 遷移

從 Milvus 1.x

本指南提供了從 Milvus 1.x (包括 0.9.x 及以上) 遷移數據到 Milvus 2.x 的全面的、逐步的過程。按照本指南,您將能夠有效地傳輸您的數據,利用 Milvus 2.x 先進的功能和改進的性能。

先決條件

匯出來源 Milvus 安裝的元資料

為了準備Milvus 0.9.x到1.x的遷移數據,停止源Milvus或至少停止在源Milvus中執行任何DML操作。

  1. 匯出源 Milvus 安裝的 metadata 到meta.json

    • 對於使用 MySQL 作為後端的安裝,執行
    ./milvus-migration export -m "user:password@tcp(adderss)/milvus?charset=utf8mb4&parseTime=True&loc=Local" -o outputDir
    
    • 對於使用 SQLite 作為後端的安裝,執行
    ./milvus-migration export -s /milvus/db/meta.sqlite -o outputDir
    
  2. 複製 Milvus 安裝的tables 資料夾,然後將meta.jsontables 資料夾移至一個空的資料夾。

    這一步驟完成後,空資料夾的結構應該是這樣的:

    migration_data
    ├── meta.json
    └── tables
    
  3. 將前一步準備好的資料夾上傳到 S3 區塊儲存桶,或在下一節直接使用此本機資料夾。

設定轉移檔案

將範例移轉設定檔案儲存為migration.yaml ,並根據您的實際情況修改設定。您可以將配置檔案放在任何本機目錄中。

dumper:
  worker:
    limit: 2
    workMode: milvus1x
    reader:
      bufferSize: 1024
    writer:
      bufferSize: 1024
loader:
  worker:
    limit: 16
meta:
  mode: local
  localFile: /outputDir/test/meta.json
source:
  mode: local
  local:
    tablesDir: /db/tables/
target:
  mode: remote
  remote:
    outputDir: "migration/test/xx"
    ak: xxxx
    sk: xxxx
    cloud: aws
    region: us-west-2
    bucket: xxxxx
    useIAM: true
    checkBucket: false
  milvus2x:
    endpoint: "{yourMilvus2_xServerAddress}:{port}"
    username: xxxx
    password: xxxx

下表描述了示例配置文件中的參數。如需完整的配置清單,請參考Milvus Migration:Milvus1.x 到 Milvus 2.x.

  • dumper

    參數說明
    dumper.worker.limit轉移線程數。
    dumper.worker.workMode遷移工作的運作模式。從 Milvus 1.x 遷移時設定為milvus1x
    dumper.worker.reader.bufferSize每批從 Milvus 1.x 讀取的緩衝區大小。單位:KB:單位:KB。
    dumper.worker.writer.bufferSize每批寫入 Milvus 2.x 的緩衝區大小。單位:KB:單位:KB。
  • loader

    參數說明
    loader.worker.limit載入器線程數。
  • meta

    參數說明
    meta.mode指定讀取 meta.json 元檔案的位置。有效值:local,remote,mysql,sqlite
    meta.localFilemeta.json 檔案所在的本機目錄路徑。此設定僅在meta.mode 設定為local 時使用。有關其他 meta 配置,請參閱README_1X
  • source

    參數說明
    source.mode指定讀取來源檔案的位置。有效值:
    -local: 從本機磁碟讀取檔案。
    -remote: 從遠端儲存讀取檔案。
    source.local.tablesDir來源檔案所在的目錄路徑。例如,/db/tables/
  • target

    參數說明
    target.mode轉儲檔案的儲存位置。有效值:
    -local: 在本機磁碟上儲存轉儲檔案。
    -remote: 在物件儲存空間上儲存轉儲檔案。
    target.remote.outputDir雲端儲存桶中的輸出目錄路徑。
    target.remote.akMilvus 2.x 儲存的存取金鑰。
    target.remote.skMilvus 2.x 儲存的密匙。
    target.remote.cloud雲端儲存服務供應商。範例值:aws,gcp,azure
    target.remote.region雲端儲存區域。如果您使用本機 MinIO,它可以是任何值。
    target.remote.bucket儲存資料的 Bucket 名稱。該值必須與 Milvus 2.x 中的配置相同。如需詳細資訊,請參閱系統配置
    target.remote.useIAM是否使用 IAM 角色進行連接。
    target.remote.checkBucket是否檢查指定的資料桶是否存在於物件儲存空間。
    target.milvus2x.endpoint目標 Milvus 伺服器的位址。
    target.milvus2x.usernameMilvus 2.x 伺服器的使用者名稱。如果您的 Milvus 伺服器啟用使用者驗證,則必須使用此參數。如需詳細資訊,請參閱啟用驗證
    target.milvus2x.passwordMilvus 2.x 伺服器的密碼。如果您的 Milvus 伺服器啟用使用者驗證,則必須使用此參數。如需更多資訊,請參閱啟用驗證

啟動遷移工作

  1. 使用以下命令啟動遷移工作。將{YourConfigFilePath} 改為配置檔案migration.yaml 所在的本機目錄。

    ./milvus-migration  dump  --config=/{YourConfigFilePath}/migration.yaml
    

    上面的命令將 Milvus 1.x 中的源資料轉換成 NumPy 檔案,然後使用bulkInsert操作將資料寫入目標資料桶。

  2. 生成 NumPy 檔案後,使用下列指令將這些檔案匯入 Milvus 2.x。將{YourConfigFilePath} 改為配置檔案migration.yaml 所在的本機目錄。

    ./milvus-migration  load  --config=/{YourConfigFilePath}/migration.yaml
    

驗證結果

一旦執行轉移任務,您可以呼叫 API 或使用 Attu 檢視轉移的實體數量。如需詳細資訊,請參閱Attuget_collection_stats()

免費嘗試托管的 Milvus

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

開始使用
反饋

這個頁面有幫助嗎?