のソースとしての Amazon DocumentDB (MongoDB 互換) の使用 AWS DMS - AWS Database Migration Service

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

のソースとしての Amazon DocumentDB (MongoDB 互換) の使用 AWS DMS

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

ソースとして 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 列に統合されています。

oid_id _doc
5a94815f40bd44d1b02bdfe0 { "a" : 1, "b" : 2, "c" : 3 }
5a94815f40bd44d1b02bdfe1 { "a" : 4, "b" : 5, "c" : 6 }

オプションで、追加の接続属性 extractDocIDtrue に設定して、プライマリ キーとして機能する "_id" という名前の 2 つ目の列を作成できます。変更データ キャプチャ (CDC) を使用する場合は、ターゲットとして Amazon DocumentDB を使用する場合を除き、このパラメータを true に設定します。

注記

ソースデータベースに新しいコレクションを追加すると、 はコレクションの新しいターゲットテーブル AWS DMS を作成し、ドキュメントをレプリケートします。

テーブルモード

テーブルモードでは、AWS DMS は Amazon DocumentDB ドキュメントの各最上位フィールドをターゲットテーブルの列に変換します。フィールドがネストされている場合、 はネストされた値を 1 つの列に AWS DMS フラット化します。 AWS DMS は、キーフィールドとデータ型をターゲットテーブルの列セットに追加します。

Amazon DocumentDB ドキュメントごとに、 は各キーとタイプをターゲットテーブルの列セット AWS DMS に追加します。例えば、テーブルモードを使用すると、 は前の例を次のテーブル AWS DMS に移行します。

oid_id a b c
5a94815f40bd44d1b02bdfe0 1 2 3
5a94815f40bd44d1b02bdfe1 4 5 6

入れ子の値は、ドット区切りのキー名を含む列にフラット化されます。この列は、ピリオドで区切られた平滑化されたフィールド名の連結を使用して名前が付けられます。例えば、 は などのネストされた値のフィールドを持つ 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 フェーズでは、コレクションの名前変更はサポートされていません。

ソースとして Amazon DocumentDB を使用するためのアクセス許可の設定

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

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

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

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

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

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

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

Amazon DocumentDB クラスター用 CDC の設定

Amazon DocumentDB で継続的なレプリケーションまたは CDC を使用するには、Amazon DocumentDB クラスターの変更ストリームへのアクセス AWS DMS が必要です。クラスターのコレクションおよびデータベース内の更新イベントの時系列については、Amazon DocumentDB デベロッパー+ガイドの「変更ストリームの使用」をご参照ください。

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 に接続する

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

Amazon DocumentDB のパブリックキーを取得するには、 がホストする Amazon AWS S3 バケットrds-combined-ca-bundle.pemから ファイルをダウンロードします。 Amazon S3 このファイルのダウンロードの詳細については、Amazon DocumentDB デベロッパーガイドの「TLS を使用した接続の暗号化」をご参照ください。

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

AWS DMS コンソールを使用してパブリックキーをインポートするには
  1. にサインイン AWS Management Console し、 を選択します AWS DMS。

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

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

  4. [Certificate configuration] (証明書設定) セクションで、次のいずれかの操作を行います:

    • [Certificate identifier ] (証明書の識別子) に、docdb-cert などの、証明書の一意の名前を入力します。

    • [Choose file] (ファイルの選択) を選択し、rds-combined-ca-bundle.pem ファイルを保存した場所に移動し、選択します。

  5. [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 ソース エンドポイントの作成

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

AWS DMS コンソールを使用して Amazon DocumentDB ソースエンドポイントを設定するには
  1. にサインイン AWS Management Console し、 を選択します AWS DMS。

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

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

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

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

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

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

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

  9. [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 コレクションをセグメント化し、並列移行する

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

自動セグメンテーション範囲を使用して Amazon DocumentDB データベースを並列移行する

各スレッド、特にスレッドごとに移行するドキュメントの数に対してデータを自動的にパーティション化 (セグメント化) 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 データベースを並列移行する

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

7 つの項目を持つ Amazon DocumentDB コレクション。

コレクションを 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 をサポートしています。

  • ダブル

  • 文字列

  • ObjectId

  • 32 ビット整数

  • 64 ビット整数

のソースとして Amazon DocumentDB を使用する場合の複数のデータベースの移行 AWS DMS

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

  1. Amazon DocumentDB ソース エンドポイントを作成すると、次のようになります:

    • AWS Management Console の で AWS DMS、エンドポイントの作成ページのエンドポイント設定データベース名を空のままにします。

    • AWS Command Line Interface (AWS CLI) で、CreateEndpointアクションに指定した DocumentDBSettingsDatabaseNameパラメータに空の文字列値を割り当てます。

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

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

例 スキーマ内のすべてのテーブルの移行

次の JSON は、ソース エンポイント内の CustomersOrdersSuppliersデータベースからすべてのテーブルをターゲット エンドポイントに移行します。

{ "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

のソースとして Amazon DocumentDB を使用する場合の制限事項を次に示します AWS DMS。

  • _id オプションが別の列として設定されている場合、ID 文字列は 200 文字以下でなければなりません。

  • オブジェクト ID および配列タイプキーは、テーブルモードで oid および array というプレフィックスが付けられた列に変換されます。

    内部的には、これらの列はプレフィックスが付けられた名前で参照されます。これらの列を参照 AWS DMS する変換ルールを で使用する場合は、必ずプレフィックス付き列を指定してください。たとえば、${_id} ではなく ${oid__id} を指定するか、${_addresses} ではなく ${array__addresses} を指定します。

  • コレクション名とキー名にドル記号 ($) を含めることはできません。

  • 前述のように、テーブルモードとドキュメントモードには制限があります。

  • 自動セグメンテーションを使用して並列移行するには、前述の制限があります。

  • Amazon DocumentDB (MongoDB 互換) ソースは、変更データ キャプチャ (CDC) のスタート位置として特定のタイムスタンプの使用をサポートしていません。進行中のレプリケーション タスクは、タイムスタンプに関係なく変更のキャプチャをスタートします。

  • DocumentDB (MongoDB 互換) をソースとして使用する場合、DMS は 1 秒あたり最大 250 レコードを処理できます。

  • AWS DMS は、ネストレベルが 97 より大きいドキュメントをサポートしていません。

  • ソースフィルターは、DocumentDB ではサポートされていません。

  • AWS DMS は、Elastic クラスターモードのソースとしての DocumentDB の CDC (変更データキャプチャ) レプリケーションをサポートしていません。

ソースとしての Amazon DocumentDB のエンドポイントの設定

追加の接続属性の使用と同様、エンドポイントの設定を使用して、ソースの Amazon DocumentDB データベースを設定できます。ソースエンドポイントを作成するときはAWS CLI、 AWS DMS コンソールを使用するか、--doc-db-settings '{"EndpointSetting": "value", ...}'JSON 構文で の create-endpoint コマンドを使用して設定を指定します。

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

属性名 有効値 デフォルト値と説明

NestingLevel

"none"

"one"

"none" - ドキュメントモードを使用するよう "none" を指定します。テーブルモードを使用するよう "one" を指定します。

ExtractDocID

ブール値

true

false

false - NestingLevel"none" に設定されている場合、この属性を使用します。

ターゲット データベースが Amazon DocumentDB の場合は、'{"ExtractDocID": true}' を設定します。

DocsToInvestigate

0 より大きい正の整数。

1000 - NestingLevel"one" に設定されている場合、この属性を使用します。

ReplicateShardCollections

ブール値

true

false

true の場合、 はデータをシャードコレクションに AWS DMS レプリケートします。ターゲットエンドポイントが DocumentDB エラスティッククラスターである AWS DMS 場合にのみ、この設定を使用します。

この設定が true の場合、次の点に注意する。

  • TargetTablePrepModenothing に設定する必要がある。

  • AWS DMS は自動的に useUpdateLookupを に設定しますfalse

Amazon DocumentDB のソースデータ型

次の表に、 AWS DMSを使用する場合にサポートされる Amazon DocumentDB ソースデータ型を示します。この表では、 AWS DMS データ型からのデフォルトのマッピングも確認できます。データ型の詳細については、MongoDB のドキュメントの「BSON 型」をご参照ください。

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

AWS DMS データ型の詳細については、「」を参照してくださいAWS Database Migration Service のデータ型

Amazon DocumentDB データ型

AWS DMS データ型

ブール値

Bool

バイナリ

BLOB

日付

日付

タイムスタンプ

日付

Int

INT4

Long

INT8

ダブル

REAL8

String (UTF-8)

CLOB

配列

CLOB

OID

文字列