データのダンプ、復元、インポート、およびエクスポート - Amazon DocumentDB

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

データのダンプ、復元、インポート、およびエクスポート

mongodumpmongorestoremongoexport、および 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

チュートリアル

次のチュートリアルでは mongodumpmongorestoremongoexport、および mongoimport の各ユーティリティを使用して 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 はデフォルトで TLS (Transport Layer Security) 暗号化を使用するため、次のように mongo シェルを使用するために Amazon RDS 認証機関 (CA) ファイルもダウンロードする必要があります。

    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 コレクションを削除する - restaurants のコレクションを business のデータベースに復元する前に、次のように、そのデータベース内にある既存のコレクションを最初に削除する必要があります。

    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