共用方式為


使用 MongoDB 原生工具將 MongoDB 離線移轉至 Azure Cosmos DB for MongoDB 虛擬核心

適用於: MongoDB 虛擬核心

在此教學課程中,您會使用 MongoDB 原生工具,在離線狀態下將資料庫從內部部署或雲端的 MongoDB 執行個體 (單次) 移轉至 Azure Cosmos DB for MongoDB 虛擬核心I。 MongoDB 原生工具是一組二進位檔,可協助您在現有的 MongoDB 執行個體上進行資料操作。 本文件的重點在於使用 mongoexport/mongoimportmongodump/mongorestore,將資料從 MongoDB 執行個體中向外移轉。 由於原生工具會使用連接字串連線至 MongoDB,因此您可以在任何位置執行這些工具。 對於不需考量總移轉時間的小型資料集,原生工具可能是最簡單的解決方案。

必要條件

準備

開始移轉之前,請確定您已備妥 Azure Cosmos DB for MongoDB 虛擬核心帳戶和現有的 MongoDB 執行個體,以進行移轉。

  • MongoDB 執行個體 (來源)
    • 完成預先移轉評估,以確認來源執行個體與目標帳戶之間是否有不相容和警告的清單。
    • 確定您的 MongoDB 原生工具符合與現有 (來源) MongoDB 執行個體相同的版本。
      • 如果 MongoDB 執行個體的版本與 Azure Cosmos DB for MongoDB 虛擬核心不同,請同時安裝 MongoDB 原生工具版本,並分別使用適用於 MongoDB 和 Azure Cosmos DB for MongoDB 虛擬核心的適當工具版本。
    • 新增具有 readWrite 權限的使用者 (除非已有權限)。 最終,您會將此認證搭配用於 mongoexportmongodump 工具。
  • Azure Cosmos DB for MongoDB 虛擬核心 (目標)

提示

建議您在與 MongoDB 執行個體相同的網路中執行這些工具,以避免發生其他防火牆問題。

選擇適當的 MongoDB 原生工具

為您的離線移轉選擇正確的 MongoDB 原生工具時,需考量一些高階注意事項。

執行移轉。

使用您慣用的原生工具,將集合從來源 MongoDB 執行個體移轉至目標 Azure Cosmos DB for MongoDB 虛擬核心帳戶。 如需選取工具的詳細資訊,請參閱原生 MongoDB 工具

提示

如果您只是想要將小型 JSON 檔案匯入 Azure Cosmos DB for MongoDB 虛擬核心中,mongoimport 工具將是擷取資料的快速解決方案。

  1. 若要從來源 MongoDB 執行個體匯出資料,請開啟終端機,並從此處所列的三種方法中任意擇一使用。

    • 指定 --host--username--password 引數以連接並匯出 JSON 記錄。

      mongoexport \
          --host <hostname><:port> \
          --username <username> \
          --password <password> \
          --db <database-name> \
          --collection <collection-name> \
          --out <filename>.json
      
    • 藉由新增 --query 引數,將 MongoDB 資料的子集匯出。 此引數可確保工具只會匯出符合篩選條件的文件。

      mongoexport \
          --host <hostname><:port> \
          --username <username> \
          --password <password> \
          --db <database-name> \
          --collection <collection-name> \
          --query '{ "quantity": { "$gte": 15 } }' \
          --out <filename>.json
      
    • 從 Azure Cosmos DB for MongoDB 虛擬核心匯出資料。

      mongoexport \
          --uri <target-connection-string>
          --db <database-name> \
          --collection <collection-name> \
          --query '{ "quantity": { "$gte": 15 } }' \
          --out <filename>.json
      
  2. 將先前匯出的檔案匯入目標 Azure Cosmos DB for MongoDB 虛擬核心帳戶中。

    mongoimport \
        --file <filename>.json \
        --type json \
        --db <database-name> \
        --collection <collection-name> \
        --ssl \
        --uri <target-connection-string>
    
  3. 監視來自 mongoimport 的終端機輸出。 輸出會將文字行列印至終端機,其中包含匯入作業狀態的更新。

後續步驟