

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

# データのダンプ、復元、インポート、およびエクスポート
<a name="backup_restore-dump_restore_import_export_data"></a>

`mongodump`、`mongorestore`、`mongoexport`、および `mongoimport` の各ユーティリティを使用して、Amazon DocumentDB クラスターの内外にデータを移動できます。このセクションでは、これらの各ツールの目的と、パフォーマンスの向上に役立つ設定について説明します。

**MongoDB データベースツールのバージョン要件**  
Amazon DocumentDB には、バージョン 100.11.0 までの MongoDB データベースツールを使用します。 Amazon DocumentDB ダウンロードするには、[MongoDB ウェブサイトの「MongoDB データベースツールのリリース](https://www.mongodb.com/download-center/database-tools/releases/archive)」を参照してください。 MongoDB 

**Topics**
+ [`mongodump`](#backup_restore-dump_restore_import_export_data-mongodump)
+ [`mongorestore`](#backup_restore-dump_restore_import_export_data-mongorestore)
+ [`mongoexport`](#backup_restore-dump_restore_import_export_data-mongoexport)
+ [`mongoimport`](#backup_restore-dump_restore_import_export_data-mongoimport)
+ [チュートリアル](#backup_restore-dump_restore_import_export_data-tutorial)

## `mongodump`
<a name="backup_restore-dump_restore_import_export_data-mongodump"></a>

`mongodump` ユーティリティは、MongoDB データベースのバイナリ (BSON) バックアップを作成します。`mongodump` のツールは、バイナリ形式でデータを保存することでサイズを縮小できるため、Amazon DocumentDB クラスターへの復元時にソース MongoDB デプロイからデータをダンプする方法として最適です。

インスタンスで利用可能なリソースや、コマンドの実行に使用しているマシンによっては、`mongodump` のオプションを使用したパラレルコレクションのダンプ数をデフォルトの 1 から増やすことで、`--numParallelCollections` を高速化できます。目安として、Amazon DocumentDB クラスターのプライマリインスタンスで [vCPU] ごとに 1 つのワーカーから開始します。

### 使用例
<a name="backup_restore-dump_restore_import_export_data-mongodump-example"></a>

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`
<a name="backup_restore-dump_restore_import_export_data-mongorestore"></a>

`mongorestore` ユーティリティを使用すると、`mongodump` ユーティリティで作成されたデータベースのバイナリ (BSON) バックアップを復元できます。復元のパフォーマンスを向上させるには、`--numInsertionWorkersPerCollection` オプションを使用して復元時に各コレクションのワーカー数 (デフォルトは 1) を増やします。目安として、Amazon DocumentDB クラスターのプライマリインスタンスで [vCPU] ごとに 1 つのワーカーから開始します。

### 使用例
<a name="backup_restore-dump_restore_import_export_data-mongorestore-example"></a>

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`
<a name="backup_restore-dump_restore_import_export_data-mongoexport"></a>

`mongoexport` のツールは、Amazon DocumentDB 中のデータを JSON、CSV、または TSV ファイル形式にエクスポートします。`mongoexport` ツールは、人間またはマシンが読み取り可能なデータをエクスポートする方法として最適です。

**注記**  
`mongoexport` は並列エクスポートを直接サポートしていません。ただし、コレクションごとに複数の `mongoexport` ジョブを同時に実行することで、パフォーマンスを向上させることができます。

### 使用例
<a name="backup_restore-dump_restore_import_export_data-mongoexport-example"></a>

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`
<a name="backup_restore-dump_restore_import_export_data-mongoimport"></a>

`mongoimport` のツールは、JSON、CSV、または TSV ファイルの内容を Amazon DocumentDB クラスターにインポートします。`-–numInsertionWorkers` パラメータを使用すると、インポート (デフォルトは 1) を並列化および高速化できます。

### 使用例
<a name="backup_restore-dump_restore_import_export_data-mongoimport-example"></a>

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
```

## チュートリアル
<a name="backup_restore-dump_restore_import_export_data-tutorial"></a>

次のチュートリアルでは `mongodump`、`mongorestore`、`mongoexport`、および `mongoimport` の各ユーティリティを使用して Amazon DocumentDB クラスターの内外にデータを移動する方法について説明します。

1. **前提条件** - 開始する前に、Amazon DocumentDB クラスターがプロビジョニングされていること、およびクラスターと同じ VPC 内の Amazon EC2 インスタンスにアクセスできることを確認してください。詳細については、「[Amazon EC2 を使用した接続](connect-ec2.md)」を参照してください。

   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
   ```

1. **サンプルデータをダウンロードする** - このチュートリアルでは、レストランに関する情報が含まれているサンプルデータをダウンロードします。

   ```
   wget https://raw.githubusercontent.com/ozlerhakan/mongodb-json-files/master/datasets/restaurant.json
   ```

1. **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
   ```

1. **`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
   ```

1. **`restaurants` コレクションを削除する** - `restaurants` のコレクションを `business` のデータベースに復元する前に、次のように、そのデータベース内にある既存のコレクションを最初に削除する必要があります。

   ```
   use business
   ```

   ```
   db.restaurants.drop()
   ```

1. ** `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
   ```

1. **`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
   ```

1. **検証** - 次のコマンドを使用して、ステップ 5 の出力がステップ 1 と同じ結果をもたらすことを検証できます。

   ```
   wc -l restaurant.json
   ```

   このコマンドからの出力:

   ```
   2548 restaurant.json
   ```

   ```
   wc -l restaurant2.json
   ```

   このコマンドからの出力:

   ```
   2548 restaurant2.json
   ```