View a markdown version of this page

傾印、還原、匯入和匯出資料 - Amazon DocumentDB

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

傾印、還原、匯入和匯出資料

您可以使用 mongodumpmongoexportmongorestoremongoimport公用程式,將資料移入和移出 Amazon DocumentDB 叢集。本節探討這些工具和組態的目的,以協助您達到更佳效能。

MongoDB 資料庫工具版本需求

針對 Amazon DocumentDB 使用 MongoDB 資料庫工具,包括 100.11.0 版。 Amazon DocumentDB 若要下載,請參閱 MongoDB 網站上的 MongoDB 資料庫工具版本。 MongoDB

mongodump

mongodump 公用程式建立 MongoDB 資料庫的二進位 (BSON) 備份。由於以二進位格式存放資料所達到的大小效率,因此mongodump工具是希望將其還原至 Amazon DocumentDB 叢集時,從來源 MongoDB 部署傾印資料的偏好方法。

根據您用來執行 命令的執行個體或機器上可用的資源,您可以使用 --numParallelCollections選項增加從預設 1 傾印的平行集合數目,mongodump以加速您的 。一個良好的經驗法則是從 Amazon DocumentDB 叢集主要執行個體上每個 vCPU 一個工作者開始。

範例使用方式

以下是 Amazon DocumentDB 叢集 中mongodump公用程式的範例用量sample-cluster

mongodump --ssl \ --host="sample-cluster.node.us-east-1.docdb.amazonaws.com:27017" \ --collection=sample-collection \ --db=sample-database \ --out=sample-output-file \ --numParallelCollections 4 \ --username=sample-user \ --password=abc0123 \ --sslCAFile global-bundle.pem

mongorestore

mongorestore 公用程式可讓您還原與 mongodump 公用程式一起建立的資料庫的二進位 (BSON) 備份。您可以在使用 --numInsertionWorkersPerCollection 選項還原期間,增加每個集合的工作者數目,提升還原效能 (預設為 1)。一個良好的經驗法則是從 Amazon DocumentDB 叢集主要執行個體上每個 vCPU 一個工作者開始。

範例使用方式

以下是 Amazon DocumentDB 叢集中 mongorestore 公用程式的範例用量sample-cluster

mongorestore --ssl \ --host="sample-cluster.node.us-east-1.docdb.amazonaws.com:27017" \ --username=sample-user \ --password=abc0123 \ --sslCAFile global-bundle.pem <fileToBeRestored>

mongoexport

mongoexport工具會將 Amazon DocumentDB 中的資料匯出為 JSON、CSV 或 TSV 檔案格式。mongoexport 工具是匯出需可人工或機器讀取之資料的偏好方法。

注意

mongoexport 不直接支援平行匯出。不過,您可以藉由同時針對不同的集合執行多個 mongoexport 任務來提高效能。

範例使用方式

以下是 Amazon DocumentDB 叢集 中mongoexport工具的範例用量sample-cluster

mongoexport --ssl \ --host="sample-cluster.node.us-east-1.docdb.amazonaws.com:27017" \ --collection=sample-collection \ --db=sample-database \ --out=sample-output-file \ --username=sample-user \ --password=abc0123 \ --sslCAFile global-bundle.pem

mongoimport

mongoimport工具會將 JSON、CSV 或 TSV 檔案的內容匯入 Amazon DocumentDB 叢集。您可以使用 -–numInsertionWorkers 參數來平行化和加速匯入 (預設值為 1)。

範例使用方式

以下是 Amazon DocumentDB 叢集 中mongoimport工具的範例用量sample-cluster

mongoimport --ssl \ --host="sample-cluster.node.us-east-1.docdb.amazonaws.com:27017" \ --collection=sample-collection \ --db=sample-database \ --file=<yourFile> \ --numInsertionWorkers 4 \ --username=sample-user \ --password=abc0123 \ --sslCAFile global-bundle.pem

教學課程

下列教學課程說明如何使用 mongodumpmongoexportmongorestoremongoimport公用程式將資料移入和移出 Amazon DocumentDB 叢集。

  1. 先決條件 — 開始之前,請確定已佈建 Amazon DocumentDB 叢集,而且您可以存取與叢集相同 VPC 中的 Amazon EC2 執行個體。如需詳細資訊,請參閱使用 Amazon EC2 連線

    為了能夠使用 mongo 公用程式工具,您必須在 EC2 執行個體中安裝 mongodb-org-tools 套件,如下所示。

    sudo yum install mongodb-org-tools-4.0.18

    由於 Amazon DocumentDB 預設使用 Transport Layer Security (TLS) 加密,因此您還必須下載 Amazon RDS 憑證授權機構 (CA) 檔案,以使用 mongo shell 進行連線,如下所示。

    wget https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem
  2. 下載範例資料:在本教學課程中,您將下載一些包含餐廳相關資訊的範例資料。

    wget https://raw.githubusercontent.com/ozlerhakan/mongodb-json-files/master/datasets/restaurant.json
  3. 將範例資料匯入 Amazon DocumentDB — 由於資料採用邏輯 JSON 格式,您將使用 mongoimport公用程式將資料匯入 Amazon DocumentDB 叢集。

    mongoimport --ssl \ --host="tutorialCluster.amazonaws.com:27017" \ --collection=restaurants \ --db=business \ --file=restaurant.json \ --numInsertionWorkers 4 \ --username=<yourUsername> \ --password=<yourPassword> \ --sslCAFile global-bundle.pem
  4. 使用 傾印資料 mongodump — 現在您已在 Amazon DocumentDB 叢集中擁有資料,您可以使用 mongodump公用程式取得該資料的二進位傾印。

    mongodump --ssl \ --host="tutorialCluster.us-east-1.docdb.amazonaws.com:27017"\ --collection=restaurants \ --db=business \ --out=restaurantDump.bson \ --numParallelCollections 4 \ --username=<yourUsername> \ --password=<yourPassword> \ --sslCAFile global-bundle.pem
  5. 捨棄restaurants集合 - 在還原business資料庫中的restaurants集合之前,您必須先捨棄該資料庫中已存在的集合,如下所示。

    use business
    db.restaurants.drop()
  6. 使用 還原資料 mongorestore — 使用步驟 3 資料的二進位傾印,您現在可以使用 mongorestore公用程式將資料還原至 Amazon DocumentDB 叢集。

    mongorestore --ssl \ --host="tutorialCluster.us-east-1.docdb.amazonaws.com:27017" \ --numParallelCollections 4 \ --username=<yourUsername> \ --password=<yourPassword> \ --sslCAFile global-bundle.pem restaurantDump.bson
  7. 使用 匯出資料 mongoexport — 若要完成教學課程,請以 JSON 檔案的格式從叢集匯出資料,與您在步驟 1 中匯入的檔案不同。

    mongoexport --ssl \ --host="tutorialCluster.node.us-east-1.docdb.amazonaws.com:27017" \ --collection=restaurants \ --db=business \ --out=restaurant2.json \ --username=<yourUsername> \ --password=<yourPassword> \ --sslCAFile global-bundle.pem
  8. 驗證 — 您可以使用下列命令,驗證步驟 5 的輸出是否產生與步驟 1 相同的結果。

    wc -l restaurant.json

    從這個命令的輸出:

    2548 restaurant.json
    wc -l restaurant2.json

    從這個命令的輸出:

    2548 restaurant2.json