翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
データのダンプ、復元、インポート、エクスポート
mongodump
、mongorestore
、mongoexport
、および mongoimport
の各ユーティリティを使用して、Amazon DocumentDB クラスターの内外にデータを移動できます。このセクションでは、これらの各ツールの目的と、パフォーマンスの向上に役立つ設定について説明します。
mongodump
mongodump
ユーティリティは、MongoDB データベースのバイナリ (BSON) バックアップを作成します。mongodump
のツールは、バイナリ形式でデータを保存することでサイズを縮小できるため、Amazon DocumentDB クラスターへの復元時にソース MongoDB デプロイからデータをダンプする方法として最適です。
インスタンスで利用可能なリソースや、コマンドの実行に使用しているマシンによっては、mongodump
のオプションを使用したパラレル接続のダンプ数をデフォルトの 1 から増やすことで、--numParallelCollections
を高速化できます。経験則として、Amazon DocumentDB クラスターのプライマリインスタンスで vCPU ごとに 1 人のワーカーから始めることをお勧めします。
注記
Amazon DocumentDB には、バージョン 100.6.1 までの MongoDB データベースツールをお勧めします。MongoDB データベースツールのダウンロードには、こちら
使用例
Amazon DocumentDB クラスター (sample-cluster
) での mongodump
のユーティリティの使用例を次に示します。
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 ごとに 1 人のワーカーから始めることをお勧めします。
使用例
Amazon DocumentDB クラスター (sample-cluster
) での mongorestore
のユーティリティの使用例を次に示します。
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 クラスター (sample-cluster
) での mongoexport
ツールの使用例を次に示します。
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 クラスター (sample-cluster
) でのmongoimport
ツールの使用例を次に示します。
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
、mongorestore
、mongoexport
、および mongoimport
の各ユーティリティを使用して Amazon DocumentDB クラスターの内外にデータを移動する方法について説明します。
-
前提条件 — 開始する前に、Amazon DocumentDB クラスターがプロビジョニングされていること、およびクラスターVPCと同じ 内の Amazon EC2インスタンスにアクセスできることを確認してください。詳細については、「Amazon EC2 を使用した接続」を参照してください。
mongo ユーティリティツールを使用するには、次のように mongodb-org-tools パッケージをEC2インスタンスにインストールする必要があります。
sudo yum install mongodb-org-tools-4.0.18
Amazon DocumentDB はデフォルトで Transport Layer Security (TLS) 暗号化を使用するため、次のように、mongo シェルを使用して接続するには Amazon RDS認証局 (CA) ファイルもダウンロードする必要があります。
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
コレクションを削除する -restaurants
のコレクションをbusiness
のデータベースに復元する前に、次のように、そのデータベース内にある既存のコレクションを最初に削除する必要があります。use business
db.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.json
wc -l restaurant2.json
このコマンドからの出力:
2548 restaurant2.json