本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
傾印、還原、匯入和匯出資料
您可以使用 mongodump、mongoexport、 mongorestore和 mongoimport公用程式,將資料移入和移出 Amazon DocumentDB 叢集。本節探討這些工具和組態的目的,以協助您達到更佳效能。
MongoDB 資料庫工具版本需求
針對 Amazon DocumentDB 使用 MongoDB 資料庫工具,包括 100.11.0 版。 Amazon DocumentDB 若要下載,請參閱 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
教學課程
下列教學課程說明如何使用 mongodump、mongoexport、 mongorestore和 mongoimport公用程式將資料移入和移出 Amazon DocumentDB 叢集。
-
先決條件 — 開始之前,請確定已佈建 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 -
下載範例資料:在本教學課程中,您將下載一些包含餐廳相關資訊的範例資料。
wget https://raw.githubusercontent.com/ozlerhakan/mongodb-json-files/master/datasets/restaurant.json -
將範例資料匯入 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 -
使用 傾印資料
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 -
捨棄
restaurants集合 - 在還原business資料庫中的restaurants集合之前,您必須先捨棄該資料庫中已存在的集合,如下所示。use businessdb.restaurants.drop() -
使用 還原資料
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 -
使用 匯出資料
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 -
驗證 — 您可以使用下列命令,驗證步驟 5 的輸出是否產生與步驟 1 相同的結果。
wc -l restaurant.json從這個命令的輸出:
2548 restaurant.jsonwc -l restaurant2.json從這個命令的輸出:
2548 restaurant2.json