翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
データのダンプ、復元、インポート、およびエクスポート
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 ユーティリティツールを使用するには、次のように EC2 インスタンスに mongodb-org-tools パッケージがインストールされている必要があります。
sudo yum install mongodb-org-tools-4.0.18
Amazon DocumentDB はデフォルトで TLS (Transport Layer Security) 暗号化を使用するため、次のように 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