AWS Database Migration Service のターゲットとしての Amazon OpenSearch Service クラスターの使用 - AWS Database Migration Service

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

AWS Database Migration Service のターゲットとしての Amazon OpenSearch Service クラスターの使用

次を使用できます。AWS DMSにデータを移行するにはAmazon OpenSearch Service(OpenSearch Service).OpenSearch Serviceは、のデプロイ、オペレーション、スケーリングを簡単に行える管理サービスです。OpenSearch Serviceクラスター。

OpenSearch Service では、インデックスとドキュメントを操作します。Anインデックスは文書のコレクションであり、documentは、スカラー値、配列、その他のオブジェクトを含む JSON オブジェクトです。OpenSearchには JSON ベースのクエリ言語があるため、インデックス内のデータをクエリし、対応するドキュメントを取得することができます。

AWS DMS で OpenSearch Service のターゲットエンドポイントのインデックスが作成されるとき、ソースエンドポイントから各テーブルに 1 つのインデックスが作成されます。OpenSearch Service インデックスを作成するためのコストは、いくつかの要因によって異なります。これらは、作成されたインデックスの数、インデックス内のデータの合計量、および以下のメタデータです。OpenSearchは、ドキュメントごとに格納されます。

移行の範囲に適したコンピューティングリソースやストレージリソースを使用して OpenSearch Service クラスターを設定します。使用するレプリケーションタスクに応じて、次の要素を考慮することをお勧めします。

  • 全データロードの場合、移行するデータの合計量、さらに転送の速度を考慮します。

  • 継続的な変更のレプリケートの場合、更新頻度、エンドツーエンドのレイテンシーの要件を考慮します。

また、OpenSearch クラスターでインデックス設定を行い、ドキュメントの数に細心の注意を払います。

マルチスレッド全ロードタスク設定

転送の速度を高めるために、AWS DMSへのマルチスレッドフルロードをサポートOpenSearch Serviceターゲットクラスタ。AWS DMSでは、このマルチスレッドでのタスク設定を、以下でサポートします。

  • MaxFullLoadSubTasks— 並行してロードするソーステーブルの最大数を指定するには、このオプションを使用します。DMS は、専用のサブタスクを使用して、対応する OpenSearch Service ターゲットインデックスに各テーブルをロードします。デフォルトは 8、最大値は 49 です。

  • ParallelLoadThreads— このオプションを使用して、次のスレッドの数を指定します。AWS DMSを使用して、各テーブルをOpenSearch Serviceターゲットインデックス。OpenSearch Service ターゲットの最大値は 32 です。この上限を増やすよう依頼できます。

    注記

    ParallelLoadThreads をデフォルト値 (0) から変更しない場合、AWS DMS は一度に 1 つのレコードを転送します。このアプローチでは、OpenSearch Service クラスターへの負荷が過度にかかります。このオプションを 1 以上に設定していることを確認します。

  • ParallelLoadBufferSize— このオプションを使用して、バッファ内に保存するレコードの最大数を指定するには、並列ロードスレッドが使用する、バッファ内に保存するレコードの最大数を指定します。OpenSearch Serviceターゲット。デフォルト値は 50 です。最大値は 1000 です。この設定は ParallelLoadThreads で使用します。ParallelLoadBufferSize は、複数のスレッドがある場合にのみ有効です。

DMS のロード方法の詳細については、を参照してください。OpenSearch Serviceマルチスレッドを使用したクラスタについては、を参照してください。AWSブログ投稿ScaleAmazon OpenSearch ServiceのサービスAWS Database Migration Service移行

マルチスレッド CDC ロードタスクの設定

の変更データキャプチャ (CDC) のパフォーマンスを向上させることができます。OpenSearch Serviceタスク設定を使用してターゲットクラスタの動作を変更するPutRecordsAPI コール。これを行うには、ParallelApply* タスク設定を使用して、同時スレッドの数、スレッドあたりのキュー数、バッファに格納するレコード数を指定します。たとえば、CDC ロードを実行し、32 個のスレッドを並列に適用するとします。また、スレッドあたり 64 個のキューにアクセスして、バッファあたり 50 個のレコードを保存する必要があります。

注記

の使用のSupportParallelApply*CDC の間のタスク設定Amazon OpenSearch ServiceターゲットエンドポイントはAWS DMSバージョン 3.4.0 以降。

CDC のパフォーマンスを向上させるため、AWS DMS では次のタスク設定をサポートしています。

  • ParallelApplyThreads— が処理する同時実行スレッドの数を指定します。AWS DMSは、CDC ロード中にデータレコードをOpenSearch Serviceターゲットエンドポイント。デフォルト値は 0 で、最大値は 32 です。

  • ParallelApplyBufferSize— 同時スレッドがにプッシュする場合に、各バッファキューに格納するレコードの最大数を指定します。OpenSearch ServiceCDC ロード中のターゲットエンドポイント。デフォルト値は 100 で、最大値は 1,000 です。このオプションは、ParallelApplyThreads が複数のスレッドを指定する場合に使用します。

  • ParallelApplyQueuesPerThread— 各スレッドがキューからデータレコードを取り出し、のバッチロードを生成するためにアクセスするキューの数を指定します。OpenSearch ServiceCDC 中のエンドポイント。

ParallelApply* タスク設定を使用する場合、partition-key-type のデフォルトは schema-name.table-name ではなくテーブルの primary-key です。

リレーショナルデータベーステーブルから OpenSearch Service インデックスへの移行

AWS DMSへのデータの移行をサポートOpenSearch Serviceのスカラーデータ型。Oracle や MySQL などのリレーショナルデータベースから OpenSearch Service に移行する場合は、データを格納する方法を再編成が必要となる場合があります。

AWS DMS は以下の OpenSearch Service のスカラーデータ型をサポートしています。

  • ブール値

  • 日付

  • 浮動小数点

  • Int

  • 文字列

AWS DMS は、日付型のデータを文字列に変換します。これらの日付を解釈するカスタムマッピングを指定できます。

AWS DMS は LOB データ型の移行をサポートしていません。

AWS Database Migration Service のターゲットとして Amazon OpenSearch Service を使用する場合の前提条件

での作業を開始する前にOpenSearch ServiceのターゲットとしてのデータベースAWS DMSでは、必ず作成してください。AWS Identity and Access Management(IAM) ロール。この役割はAWS DMSへのアクセスOpenSearch Serviceターゲットエンドポイントのインデックス。アクセス許可の最小設定は、次の IAM ポリシーで示します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "1", "Effect": "Allow", "Principal": { "Service": "dms.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

OpenSearch Service に移行する際に使用するロールには、次のアクセス許可が必要です。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "es:ESHttpDelete", "es:ESHttpGet", "es:ESHttpHead", "es:ESHttpPost", "es:ESHttpPut" ], "Resource": "arn:aws:es:region:account-id:domain/domain-name/*" } ] }

前の例では、置き換えます。regionとAWSリージョン識別子、account-id側AWSアカウント ID、domain-nameの名前を記入します。Amazon OpenSearch Serviceドメイン。例: 「arn:aws:es:us-west-2:123456789012:domain/my-es-domain」。

AWS DMS のターゲットとして OpenSearch Service を使用する場合の追加の接続属性

をセットアップするとOpenSearch Serviceターゲットエンドポイントの場合、追加の接続属性を指定できます。追加の接続属性はキーと値のペアを指定して、セミコロンで区切ります。

次の表で、を使用する場合に利用可能な追加の接続属性について説明します。OpenSearch ServiceインスタンスとしてAWS DMSsource。

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

fullLoadErrorPercentage

0 より大きく、100 より小さい正の整数。

10 – 全ロードタスクの場合、この属性によって、タスクが失敗するまでに許容されるエラーのしきい値が決まります。たとえば、ソースエンドポイントに 1,500 行あり、このパラメータが 10 に設定されているとします。ターゲットエンドポイントに書き込むときに AWS DMS で 150 を超えるエラー (行数の 10%) が発生した場合、そのタスクは失敗します。

errorRetryDuration

0 より大きい正の整数。

300 – ターゲットエンドポイントでエラーが発生した場合、AWS DMS はこの秒数の間再試行します。再試行しない場合、タスクは失敗します。

AWS Database Migration Service のターゲットとして Amazon OpenSearch Service を使用する場合の制限

ターゲットとして Amazon OpenSearch Service を使用する場合、以下の制限が適用されます。

  • OpenSearch Serviceは、動的マッピング (自動予測) を使用して、移行済みデータに使用するデータ型を決定します。

  • OpenSearch Serviceは、各ドキュメントを一意の ID で保存します。以下は ID の例です。

    "_id": "D359F8B537F1888BC71FE20B3D79EAE6674BE7ACA9B645B0279C7015F6FF19FD"

    各ドキュメント ID は 64 バイト長であるため、ストレージ要件と予想されます。たとえば、100,000 行をAWS DMSソース、結果OpenSearch Serviceインデックスには、追加で 6,400,000 バイトのストレージが必要です。

  • OpenSearch Service を使用すると、プライマリキー属性を更新することはできません。この制限は、ターゲットで不要なデータが発生する可能性があるため、変更データキャプチャ (CDC) で継続的なレプリケーションを使用する場合に重要です。CDC モードでは、プライマリキーは 32 バイト長の SHA256 値にマップされます。これらは人間が判読できる 64 バイト文字列に変換され、次のように使用されます。OpenSearch Serviceドキュメント ID。

  • もしAWS DMSで移行できない項目が発生した場合、Amazon CloudWatch Logs にエラーメッセージを書き込みます。この動作は、例外テーブルにエラーを書き込む他の AWS DMS ターゲットエンドポイントの動作とは異なります。

  • AWS DMSは、マスターユーザーとパスワードでファイングレインアクセス制御が有効になっている Amazon ES クラスターへの接続をサポートしていません。

Amazon OpenSearch Service のターゲットデータ型

AWS DMS が異なるデータベースからデータを移行するときは、サービスはソースデータベースからのデータ型を、AWS DMS データ型という中間のデータ型にマッピングします。その後、サービスは中間データ型をターゲットデータ型にマッピングします。次の表に、それぞれを示します。AWS DMSデータ型とでのマッピング先のデータ型OpenSearch Service。

AWS DMS データ型 OpenSearch Service データ型

ブール値

boolean

日付

文字列

時間

date

タイムスタンプ

date

INT4

integer

Real4

float

UINT4

integer

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