

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

# のソースとしての Amazon DocumentDB (MongoDB 互換) の使用 AWS DMS
<a name="CHAP_Source.DocumentDB"></a>

 AWS DMS がソースとしてサポートする Amazon DocumentDB (MongoDB 互換) のバージョンについては、「[のソース AWS DMS](CHAP_Introduction.Sources.md)」を参照してください。

 ソースとして Amazon DocumentDB を使用すると、1 つの Amazon DocumentDB クラスターから別のAmazon DocumentDB クラスターにデータを移行できます。Amazon DocumentDB クラスターから、 でサポートされている他のターゲットエンドポイントのいずれかにデータを移行することもできます AWS DMS。

Amazon DocumentDB を初めて使用する場合は、Amazon DocumentDB データベースの以下の重要な概念に注意してください：
+ Amazon DocumentDB のレコードは、フィールドと値のペアで構成されるデータ構造である*ドキュメント*です。フィールドの値には、他のドキュメント、配列、およびドキュメントの配列を含めることができます。ドキュメントは、リレーショナルデータベースのテーブルの行とほぼ同等です。
+ Amazon DocumentDB での*コレクション*とは、ドキュメントのグループであり、リレーショナル データベーステーブルとほぼ同等です。
+ Amazon DocumentDB の *データベース*はコレクションのセットであり、リレーショナルデータベース内のスキーマとほぼ同等です。

AWS DMS はAmazon DocumentDB をソースとして使用する場合、ドキュメントモードとテーブルモードの 2 つの移行モードをサポートします。 AWS DMS コンソールで Amazon DocumentDB ソースエンドポイントを作成するときに、**メタデータモードオプションまたは追加の接続属性 を使用して移行モード**を指定します`nestingLevel`。移行モードの選択は、以下に説明するように、ターゲットデータの結果の形式に影響します。

**ドキュメントモード**  
*ドキュメントモードでは、*JSON ドキュメントがそのまま移行されます。つまり、ドキュメントデータは 2 つの項目のいずれかに統合されます。ターゲットとしてリレーショナルデータベースを使用する場合、データはターゲットテーブルで `_doc` という名前の単一の列になります。非リレーショナルデータベースをターゲットとして使用する場合、データは単一の JSON ドキュメントになります。ドキュメントモードは、Amazon DocumentDB ターゲットに移行する際にお勧めするデフォルトモードです。  
`myCollection` という Amazon DocumentDB コレクション内の次のドキュメントを例にとって説明します。  

```
 db.myCollection.find()
{ "_id" : ObjectId("5a94815f40bd44d1b02bdfe0"), "a" : 1, "b" : 2, "c" : 3 }
{ "_id" : ObjectId("5a94815f40bd44d1b02bdfe1"), "a" : 4, "b" : 5, "c" : 6 }
```
ドキュメントモードを使用してデータをリレーショナルデータベーステーブルに移行した後、データは以下のように構成されます。ドキュメントのデータフィールドは ` _doc` 列に統合されています。      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/dms/latest/userguide/CHAP_Source.DocumentDB.html)
オプションで、追加の接続属性 `extractDocID` を `true` に設定して、プライマリ キーとして機能する `"_id"` という名前の 2 つ目の列を作成できます。変更データ キャプチャ (CDC) を使用する場合は、ターゲットとして Amazon DocumentDB を使用する場合を除き、このパラメータを `true` に設定します。  
[マルチドキュメントトランザクション](https://www.mongodb.com/docs/manual/reference/method/Session.startTransaction/#mongodb-method-Session.startTransaction)を生成するソースで CDC を使用する場合は、 `ExtractDocId`パラメータを に設定**する必要があります**`true`。このパラメータが有効になっていない場合、 AWS DMS タスクはマルチドキュメントトランザクションを検出すると失敗します。  
ソースデータベースに新しいコレクションを追加すると、 はコレクションの新しいターゲットテーブル AWS DMS を作成し、ドキュメントをレプリケートします。

**テーブルモード**  
**テーブルモードでは、AWS DMS は Amazon DocumentDB ドキュメントの各最上位フィールドをターゲットテーブルの列に変換します。フィールドがネストされている場合、 はネストされた値を 1 つの列に AWS DMS フラット化します。 AWS DMS は、キーフィールドとデータ型をターゲットテーブルの列セットに追加します。  
Amazon DocumentDB ドキュメントごとに、 は各キーとタイプをターゲットテーブルの列セット AWS DMS に追加します。たとえば、テーブルモードを使用すると、 は前の例を次のテーブル AWS DMS に移行します。      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/dms/latest/userguide/CHAP_Source.DocumentDB.html)
入れ子の値は、ドット区切りのキー名を含む列にフラット化されます。この列は、ピリオドで区切られた平滑化されたフィールド名の連結を使用して名前が付けられます。たとえば、 は などのネストされた値のフィールドを持つ JSON ドキュメント`{"a" : {"b" : {"c": 1}}}`を という名前の列 AWS DMS に移行します。 `a.b.c.`  
ターゲット列を作成するには、 は指定された数の Amazon DocumentDB ドキュメント AWS DMS をスキャンし、すべてのフィールドとそのタイプのセットを作成します。 AWS DMS 次に、 はこのセットを使用してターゲットテーブルの列を作成します。コンソールを使用して Amazon DocumentDB ソース エンドポイントを作成または変更する場合は、スキャンするドキュメントの数を指定できます。デフォルト値は 1000 ドキュメントです。を使用する場合は AWS CLI、追加の接続属性 を使用できます`docsToInvestigate`。  
テーブルモードでは、 は次のようなドキュメントとコレクション AWS DMS を管理します。  
+ 既存のコレクションにドキュメント (行) を追加する場合は、ドキュメントがレプリケートされます。ターゲットに存在しないフィールドがある場合、それらのフィールドはレプリケーションされません。
+ ドキュメントを更新すると、更新されたドキュメントはレプリケートされます。ターゲットに存在しないフィールドがある場合、それらのフィールドはレプリケーションされません。
+ ドキュメントの削除は完全にサポートされています。
+ CDC タスクの実行中に新しいコレクションを追加しても、ターゲット上に新しいテーブルは作成されません。
+ 変更データキャプチャ (CDC) フェーズ AWS DMS では、 はコレクションの名前変更をサポートしていません。

**Topics**
+ [ソースとして Amazon DocumentDB を使用するためのアクセス許可の設定](#CHAP_Source.DocumentDB.Permissions)
+ [Amazon DocumentDB クラスター用 CDC の設定](#CHAP_Source.DocumentDB.ConfigureCDC)
+ [TLS を使用して Amazon DocumentDB に接続する](#CHAP_Source.DocumentDB.TLS)
+ [Amazon DocumentDB ソース エンドポイントの作成](#CHAP_Source.DocumentDB.ConfigureEndpoint)
+ [Amazon DocumentDB コレクションをセグメント化し、並列移行する](#CHAP_Source.DocumentDB.ParallelLoad)
+ [Amazon DocumentDB を のソースとして使用する場合の複数のデータベースの移行 AWS DMS](#CHAP_Source.DocumentDB.Multidatabase)
+ [のソースとして Amazon DocumentDB を使用する場合の制限 AWS DMS](#CHAP_Source.DocumentDB.Limitations)
+ [ソースとしての Amazon DocumentDB のエンドポイントの設定](#CHAP_Source.DocumentDB.ECAs)
+ [Amazon DocumentDB のソースデータ型](#CHAP_Source.DocumentDB.DataTypes)

## ソースとして Amazon DocumentDB を使用するためのアクセス許可の設定
<a name="CHAP_Source.DocumentDB.Permissions"></a>

 AWS DMS 移行に Amazon DocumentDB ソースを使用する場合、ルート権限を持つユーザーアカウントを作成できます。または、移行するデータベースに対してのみ許可されたユーザーを作成することもできます。

次のコードは、ルートアカウントとしてのユーザーを作成します。

```
use admin
db.createUser(
  {
    user: "root",
    pwd: "password",
    roles: [ { role: "root", db: "admin" } ]
  })
```

Amazon DocumentDB 3.6 の場合、次のコードは、移行するデータベースに対して最小限の権限を持つユーザーを作成します。

```
use db_name
db.createUser( 
    {
        user: "dms-user",
        pwd: "password",
        roles: [{ role: "read", db: "db_name" }]
    }
)
```

Amazon DocumentDB 4.0 以降では、 はデプロイ全体の変更ストリーム AWS DMS を使用します。この例では、次のコードを使用して最小限の権限を持つユーザーを作成します。

```
db.createUser( 
{ 
    user: "dms-user",
    pwd: "password",
    roles: [ { role: "readAnyDatabase", db: "admin" }] 
})
```

## Amazon DocumentDB クラスター用 CDC の設定
<a name="CHAP_Source.DocumentDB.ConfigureCDC"></a>

Amazon DocumentDB で継続的なレプリケーションまたは CDC を使用するには、Amazon DocumentDB クラスターの変更ストリームへのアクセス AWS DMS が必要です。クラスターのコレクションおよびデータベース内の更新イベントの時系列については、*Amazon DocumentDB デベロッパー\$1ガイド*の「[変更ストリームの使用](https://docs.aws.amazon.com/documentdb/latest/developerguide/change_streams.html)」をご参照ください。

MongoDB シェルを使用して Amazon DocumentDB クラスターに関して認証します。次に、以下のコマンドを実行して、変更ストリームを有効にします。

```
db.adminCommand({modifyChangeStreams: 1,
    database: "DB_NAME",
    collection: "", 
    enable: true});
```

この方法により、データベース内ですべてのコレクションの変更ストリームが有効になります。変更ストリームを有効にすると、既存のデータを移行し、同時に進行中の変更をレプリケートする移行タスクを作成できます。 は、バルクデータがロードされた後でも変更をキャプチャして適用し AWS DMS 続けます。最終的にソースデータベースとターゲットデータベースは同期され、移行でのダウンタイムは最小限に抑えられます。

**注記**  
AWS DMS は、オペレーションログ (oplog) を使用して、継続的なレプリケーション中の変更をキャプチャします。がレコード AWS DMS を読み取る前に Amazon DocumentDB が oplog からレコードをフラッシュアウトすると、タスクは失敗します。少なくとも 24 時間は変更が保持されるように oplog のサイジングを行うことをお勧めします。

## TLS を使用して Amazon DocumentDB に接続する
<a name="CHAP_Source.DocumentDB.TLS"></a>

デフォルトでは、新しく作成された Amazon DocumentDB クラスターは、Transport Layer Security (TLS) を使用したセキュアな接続のみを受け入れます。TLS が有効になっている場合、Amazon DocumentDB へのすべての接続で公開キーが必要になります。

Amazon DocumentDB のパブリックキーを取得するには、 がホストする Amazon AWS Amazon S3バケット`rds-combined-ca-bundle.pem`から ファイルをダウンロードします。このファイルのダウンロードの詳細については、*Amazon DocumentDB デベロッパーガイド*の「[TLS を使用した接続の暗号化](https://docs.aws.amazon.com/documentdb/latest/developerguide/security.encryption.ssl.html)」をご参照ください。

`rds-combined-ca-bundle.pem` ファイルをダウンロードしたら、ファイルに含まれるパブリックキーをインポートできます AWS DMS。以下のステップでは、その方法について説明します。

**AWS DMS コンソールを使用してパブリックキーをインポートするには**

1. にサインイン AWS マネジメントコンソール して選択します AWS DMS。

1. ナビゲーションペインで [**Certificates**] を選択します。

1. [**証明書のインポート**] を選択します。**[Import certificate]** (新しい CA 証明書のインポート) ページが表示されます。

1. **[Certificate configuration]** (証明書設定) セクションで、次のいずれかの操作を行います：
   + **[Certificate identifier ]** (証明書の識別子) に、`docdb-cert` などの、証明書の一意の名前を入力します。
   + **[Choose file]** (ファイルの選択) を選択し、`rds-combined-ca-bundle.pem` ファイルを保存した場所に移動し、選択します。

1. [**Add new CA certificate (新しい CA 証明書の追加)**] を選択します。

 AWS CLI 次の例では、 AWS DMS `import-certificate` コマンドを使用してパブリックキー`rds-combined-ca-bundle.pem`ファイルをインポートします。

```
aws dms import-certificate \
    --certificate-identifier docdb-cert \
    --certificate-pem file://./rds-combined-ca-bundle.pem
```

## Amazon DocumentDB ソース エンドポイントの作成
<a name="CHAP_Source.DocumentDB.ConfigureEndpoint"></a>

Amazon DocumentDB ソース エンドポイントを作成するには、コンソールまたは AWS CLIを使用します。以下の手順では、コンソールを使用します。

**AWS DMS コンソールを使用して Amazon DocumentDB ソースエンドポイントを設定するには**

1. にサインイン AWS マネジメントコンソール して選択します AWS DMS。

1. ナビゲーションペインで **[Endpoints]** (エンドポイント) を選択し、**[Create Endpoint]** (エンドポイントの作成) を選択します。

1. **[Endpoint identifier]** (エンドポイント識別子) には、`docdb-source` などの簡単に識別できるような名前を入力します。

1. **[Source engine]** (ソースエンジン) には、**Amazon DocumentDB (MongoDB 互換性)** を選択します。

1. を使用する場合**[Server name]** (サーバー名) には、Amazon DocumentDB データベース エンドポイントが常駐するサーバー名を入力します。たとえば、Amazon EC2 インスタンスの公開 DNS 名に `democluster.cluster-cjf6q8nxfefi.us-east-2.docdb.amazonaws.com` などを入力できます。

1. **[Port]** (ポート) に 27017 と入力します。

1. [**SSL mode (SSL モード)**] で [**verify-full**] を選択します。Amazon DocumentDB クラスターで SSL を無効化している場合、このステップは省略できます。

1. **[CA certificate]** (CA 証明書) には、Amazon DocumentDB 証明書として `rds-combined-ca-bundle.pem` を選択します。この証明書の追加手順については、「[TLS を使用して Amazon DocumentDB に接続する](#CHAP_Source.DocumentDB.TLS)」をご参照ください。

1. **[Database name ]** (データベース名) に、移行するデータベースの名前を入力します。

CLI に次の手順を値で使用します。

**を使用して Amazon DocumentDB ソースエンドポイントを設定するには AWS CLI**
+ 次の AWS DMS `create-endpoint`コマンドを実行して Amazon DocumentDB ソースエンドポイントを設定し、プレースホルダーを独自の値に置き換えます。

  ```
  aws dms create-endpoint \
             --endpoint-identifier a_memorable_name \
             --endpoint-type source \
             --engine-name docdb \
             --username value \
             --password value \
             --server-name servername_where_database_endpoint_resides \
             --port 27017 \
             --database-name name_of_endpoint_database
  ```

## Amazon DocumentDB コレクションをセグメント化し、並列移行する
<a name="CHAP_Source.DocumentDB.ParallelLoad"></a>

移行タスクのパフォーマンスを向上させるために、Amazon DocumentDB ソース エンドポイントは、テーブルマッピングの並列全ロード機能の 2 つのオプションをサポートしています。つまり、JSON 設定で並列全ロードに対してテーブルマッピングの自動セグメンテーションまたは範囲セグメンテーションオプションを使用して、コレクションを並列移行できます。自動セグメンテーションオプションを使用すると、 の基準を指定 AWS DMS して、各スレッドで移行するソースを自動的にセグメント化できます。範囲セグメンテーションオプションを使用すると、DMS が各スレッドで移行する各セグメントの特定 AWS DMS の範囲を指定できます。これらの設定の詳細については、「[テーブルとコレクション設定のルールとオペレーション](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Tablesettings.md)」をご参照ください。

### 自動セグメンテーション範囲を使用して Amazon DocumentDB データベースを並列移行する
<a name="CHAP_Source.DocumentDB.ParallelLoad.AutoPartitioned"></a>

スレッドごとにデータ特に、スレッドごとに移行するドキュメントの数を自動的にパーティション (セグメント化) する AWS DMS の基準を指定することで、ドキュメントを並列移行できます。このアプローチを使用して、 AWS DMS は、スレッドあたりのパフォーマンスを最大化するために、セグメント境界を最適化しようとします。

テーブルマッピングで次のテーブル設定オプションを使用して、セグメンテーション基準を指定できます。


|  テーブル設定オプション  |  説明  | 
| --- | --- | 
|  `"type"`  |  (必須) ソースとして Amazon DocumentDB 用の `"partitions-auto"` に設定します。  | 
|  `"number-of-partitions"`  |  (オプション) 移行に使用されるパーティション (セグメント) の総数。デフォルトは 16 です。  | 
|  `"collection-count-from-metadata"`  |  (オプション) に設定すると`true`、パーティションの数を決定するために推定コレクション数 AWS DMS が使用されます。に設定すると`false`、実際のコレクション数 AWS DMS が使用されます。デフォルトは `true` です。  | 
|  `"max-records-skip-per-page"`  |  (オプション) 各パーティションの境界を決定するときに一度にスキップするレコードの数。 は、ページ分割されたスキップアプローチ AWS DMS を使用してパーティションの最小境界を決定します。デフォルトは 10,000 です。比較的大きな値を設定すると、カーソルのタイムアウトやタスク障害の可能性があります。相対的に低い値を設定すると、ページあたりのオペレーションが増え、全ロードが遅くなります。  | 
|  `"batch-size"`  |  (オプション) 1 つのバッチで返されるドキュメントの数を制限します。各バッチには、サーバーへの往復が必要です。バッチサイズがゼロ (0) の場合、カーソルはサーバー定義の最大バッチサイズを使用します。デフォルトは 0 です。  | 

次の例は、自動セグメンテーションのテーブルマッピングを示しています。

```
{
    "rules": [
        {
            "rule-type": "selection",
            "rule-id": "1",
            "rule-name": "1",
            "object-locator": {
                "schema-name": "admin",
                "table-name": "departments"
            },
            "rule-action": "include",
            "filters": []
        },
        {
            "rule-type": "table-settings",
            "rule-id": "2",
            "rule-name": "2",
            "object-locator": {
                "schema-name": "admin",
                "table-name": "departments"
            },
            "parallel-load": {
                "type": "partitions-auto",
                "number-of-partitions": 5,
                "collection-count-from-metadata": "true",
                "max-records-skip-per-page": 1000000,
                "batch-size": 50000
            }
        }
    ]
}
```

自動セグメンテーションには次の制限があります。各セグメントの移行は、コレクション数とコレクション用の最小値 `_id` を別個にフェッチします。次に、ページ割りされたスキップを使用して、そのセグメントの最小境界を計算します。従って、コレクション内のすべてのセグメント境界が計算されるまで、各コレクションで `_id` の最小値が一定のままであるようにします。セグメント境界の計算中にコレクションの最小 `_id` 値を変更すると、データ損失や重複行のエラーが発生する可能性があります。

### 特定のセグメント範囲を使用して Amazon DocumentDB データベースを並列移行する
<a name="CHAP_Source.DocumentDB.ParallelLoad.Ranges"></a>

次の例は、7 つの項目を持つ Amazon DocumentDB コレクションおよび `_id` をプライマリ キーとして示しています。

![\[7 つの項目を持つ Amazon DocumentDB コレクション。\]](http://docs.aws.amazon.com/ja_jp/dms/latest/userguide/images/datarep-docdb-collection.png)


コレクションを 3 つのセグメントに分割して並列に移行するには、次の JSON の例に示すように、移行タスクにテーブルマッピングルールを追加します。

```
{ // Task table mappings:
  "rules": [
    {
      "rule-type": "selection",
      "rule-id": "1",
      "rule-name": "1",
      "object-locator": {
        "schema-name": "testdatabase",
        "table-name": "testtable"
      },
      "rule-action": "include"
    }, // "selection" :"rule-type"
    {
      "rule-type": "table-settings",
      "rule-id": "2",
      "rule-name": "2",
      "object-locator": {
        "schema-name": "testdatabase",
        "table-name": "testtable"
      },
      "parallel-load": {
        "type": "ranges",
        "columns": [
           "_id",
           "num"
        ],
        "boundaries": [
          // First segment selects documents with _id less-than-or-equal-to 5f805c97873173399a278d79
          // and num less-than-or-equal-to 2.
          [
             "5f805c97873173399a278d79",
             "2"
          ],
          // Second segment selects documents with _id > 5f805c97873173399a278d79 and
          // _id less-than-or-equal-to 5f805cc5873173399a278d7c and
          // num > 2 and num less-than-or-equal-to 5.
          [
             "5f805cc5873173399a278d7c",
             "5"
          ]                                   
          // Third segment is implied and selects documents with _id > 5f805cc5873173399a278d7c.
        ] // :"boundaries"
      } // :"parallel-load"
    } // "table-settings" :"rule-type"
  ] // :"rules"
} // :Task table mappings
```

このテーブルマッピング定義は、ソースコレクションを 3 つのセグメントに分割し、並列移行します。以下は、セグメンテーション境界です。

```
Data with _id less-than-or-equal-to "5f805c97873173399a278d79" and num less-than-or-equal-to 2 (2 records)
Data with _id less-than-or-equal-to "5f805cc5873173399a278d7c" and num less-than-or-equal-to 5 and not in (_id less-than-or-equal-to  "5f805c97873173399a278d79" and num less-than-or-equal-to 2) (3 records)
Data not in (_id less-than-or-equal-to "5f805cc5873173399a278d7c" and num less-than-or-equal-to 5) (2 records)
```

移行タスクが完了したら、次の例に示すように、テーブルが並列にロードされたことをタスクログから確認できます。ソーステーブルから各セグメントをアンロードするために使用される Amazon DocumentDB `find` 句を確認することもできます。

```
[TASK_MANAGER    ] I:  Start loading segment #1 of 3 of table 'testdatabase'.'testtable' (Id = 1) by subtask 1. Start load timestamp 0005B191D638FE86  (replicationtask_util.c:752)

[SOURCE_UNLOAD   ] I:  Range Segmentation filter for Segment #0 is initialized.   (mongodb_unload.c:157)

[SOURCE_UNLOAD   ] I:  Range Segmentation filter for Segment #0 is: { "_id" : { "$lte" : { "$oid" : "5f805c97873173399a278d79" } }, "num" : { "$lte" : { "$numberInt" : "2" } } }  (mongodb_unload.c:328)

[SOURCE_UNLOAD   ] I: Unload finished for segment #1 of segmented table 'testdatabase'.'testtable' (Id = 1). 2 rows sent.

[TASK_MANAGER    ] I: Start loading segment #1 of 3 of table 'testdatabase'.'testtable' (Id = 1) by subtask 1. Start load timestamp 0005B191D638FE86 (replicationtask_util.c:752)
 
[SOURCE_UNLOAD   ] I: Range Segmentation filter for Segment #0 is initialized. (mongodb_unload.c:157) 

[SOURCE_UNLOAD   ] I: Range Segmentation filter for Segment #0 is: { "_id" : { "$lte" : { "$oid" : "5f805c97873173399a278d79" } }, "num" : { "$lte" : { "$numberInt" : "2" } } } (mongodb_unload.c:328)
 
[SOURCE_UNLOAD   ] I: Unload finished for segment #1 of segmented table 'testdatabase'.'testtable' (Id = 1). 2 rows sent.

[TARGET_LOAD     ] I: Load finished for segment #1 of segmented table 'testdatabase'.'testtable' (Id = 1). 1 rows received. 0 rows skipped. Volume transfered 480.

[TASK_MANAGER    ] I: Load finished for segment #1 of table 'testdatabase'.'testtable' (Id = 1) by subtask 1. 2 records transferred.
```

現在、 はセグメントキー列として次の Amazon DocumentDB データ型 AWS DMS をサポートしています。
+ Double
+ String
+ ObjectId
+ 32 ビット整数
+ 64 ビット整数

## Amazon DocumentDB を のソースとして使用する場合の複数のデータベースの移行 AWS DMS
<a name="CHAP_Source.DocumentDB.Multidatabase"></a>

AWS DMS バージョン 3.4.5 以降では、Amazon DocumentDB バージョン 4.0 以降でのみ、1 つのタスクで複数のデータベースを移行できます。複数のデータベースを移行する場合は、以下を実行します：

1. Amazon DocumentDB ソース エンドポイントを作成すると、次のようになります：
   + for AWS マネジメントコンソール で AWS DMS、エンドポイント**の作成**ページの**エンドポイント設定**で**データベース名**を空のままにします。
   +  AWS Command Line Interface (AWS CLI) で、**CreateEndpoint** アクションに指定した **DocumentDBSettings** の **DatabaseName** パラメータに空の文字列値を割り当てます。

1. この Amazon DocumentDB ソース エンドポイントから移行するデータベースごとに、コンソールでのガイド付き入力を使用するか、JSON で直接使用するタスクのテーブルマッピングで、各データベースの名前をスキーマの名前として指定します。ガイド付き入力の詳細については、「[コンソールからテーブル選択および変換を指定する](CHAP_Tasks.CustomizingTasks.TableMapping.Console.md)」をご参照ください。。JSON の詳細については、「[選択ルールと選択アクション](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Selections.md)」をご参照ください。

たとえば、次の JSON を指定して 3 つの Amazon DocumentDB データベースを移行できます。

**Example スキーマ内のすべてのテーブルの移行**  
次の JSON は、ソース エンポイント内の `Customers`、`Orders`、`Suppliers`データベースからすべてのテーブルをターゲット エンドポイントに移行します。  

```
{
    "rules": [
        {
            "rule-type": "selection",
            "rule-id": "1",
            "rule-name": "1",
            "object-locator": {
                "schema-name": "Customers",
                "table-name": "%"
            },
            "object-locator": {
                "schema-name": "Orders",
                "table-name": "%"
            },
            "object-locator": {
                "schema-name": "Inventory",
                "table-name": "%"
            },
            "rule-action": "include"
        }
    ]
}
```

## のソースとして Amazon DocumentDB を使用する場合の制限 AWS DMS
<a name="CHAP_Source.DocumentDB.Limitations"></a>

Amazon DocumentDB をソースとして使用する場合の制限は次のとおりです AWS DMS。
+ `_id` オプションが別の列として設定されている場合、ID 文字列は 200 文字以下でなければなりません。
+ オブジェクト ID および配列タイプキーは、テーブルモードで `oid` および `array` というプレフィックスが付けられた列に変換されます。

  内部的には、これらの列はプレフィックスが付けられた名前で参照されます。これらの列を参照 AWS DMS する変換ルールを で使用する場合は、必ずプレフィックス付き列を指定してください。たとえば、`${_id}` ではなく `${oid__id}` を指定するか、`${_addresses}` ではなく `${array__addresses}` を指定します。
+  コレクション名とキー名にドル記号 (\$1) を含めることはできません。
+ 前述のように、テーブルモードとドキュメントモードには制限があります。
+ 自動セグメンテーションを使用して並列移行するには、前述の制限があります。
+ Amazon DocumentDB (MongoDB 互換) ソースは、変更データ キャプチャ (CDC) のスタート位置として特定のタイムスタンプの使用をサポートしていません。進行中のレプリケーション タスクは、タイムスタンプに関係なく変更のキャプチャをスタートします。
+ AWS DMS は、3.5.2 より前の AWS DMS バージョンのネストレベルが 97 より大きいドキュメントをサポートしていません。
+ ソースフィルターは、DocumentDB ではサポートされていません。
+ AWS DMS は、Elastic クラスターモードのソースとしての DocumentDB の CDC (変更データキャプチャ) レプリケーションをサポートしていません。

## ソースとしての Amazon DocumentDB のエンドポイントの設定
<a name="CHAP_Source.DocumentDB.ECAs"></a>

追加の接続属性の使用と同様、エンドポイントの設定を使用して、ソースの Amazon DocumentDB データベースを設定できます。 AWS DMS コンソールを使用するか、`--doc-db-settings '{"EndpointSetting": "value", ...}'`JSON 構文で の `create-endpoint` コマンドを使用して[AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/dms/index.html)、ソースエンドポイントを作成するときに設定を指定します。

次の表は、ソースとして Amazon DocumentDB を使用できるエンドポイント設定を説明しています。


| 属性名 | 有効値 | デフォルト値と説明 | 
| --- | --- | --- | 
|   `NestingLevel`   |  `"none"` `"one"`  |  `"none"` - ドキュメントモードを使用するよう `"none"` を指定します。テーブルモードを使用するよう `"one"` を指定します。  | 
|   `ExtractDocID`   |  `true` `false`  |  `false` - `NestingLevel` が `"none"` に設定されている場合、この属性を使用します。 [マルチドキュメントトランザクション](https://www.mongodb.com/docs/manual/reference/method/Session.startTransaction/#mongodb-method-Session.startTransaction)を生成するソースで CDC を使用する場合は、 `ExtractDocId`パラメータを に設定**する必要があります**`true`。このパラメータが有効になっていない場合、 AWS DMS タスクはマルチドキュメントトランザクションを検出すると失敗します。  | 
|   `DocsToInvestigate`   |  `0` より大きい正の整数。  |  `1000` - `NestingLevel` が `"one"` に設定されている場合、この属性を使用します。  | 
|   `ReplicateShardCollections `   |  `true` `false`  |  true の場合、 はデータをシャードコレクションに AWS DMS レプリケートします。ターゲットエンドポイントが DocumentDB エラスティッククラスターである AWS DMS 場合にのみ、 はこの設定を使用します。 この設定が true の場合、次の点に注意する。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/dms/latest/userguide/CHAP_Source.DocumentDB.html)  | 

## Amazon DocumentDB のソースデータ型
<a name="CHAP_Source.DocumentDB.DataTypes"></a>

次の表に、 AWS DMSを使用する場合にサポートされる Amazon DocumentDB ソースデータ型を示します。この表では、 AWS DMS データ型からのデフォルトのマッピングを確認することもできます。データ型の詳細については、MongoDB のドキュメントの「[BSON 型](https://docs.mongodb.com/manual/reference/bson-types)」をご参照ください。

ターゲットにマッピングされるデータ型を表示する方法については、使用しているターゲットエンドポイントのセクションをご参照ください。

 AWS DMS データ型の詳細については、「」を参照してください[AWS Database Migration Service のデータ型](CHAP_Reference.DataTypes.md)。


|  Amazon DocumentDB データ型  |  AWS DMS データ型  | 
| --- | --- | 
| ブール値 | Bool | 
| バイナリ | BLOB | 
| 日付 | 日付 | 
| タイムスタンプ | 日付 | 
| Int | INT4 | 
| Long | INT8 | 
| Double | REAL8 | 
| String (UTF-8) | CLOB | 
| 配列 | CLOB | 
| OID | String | 