データ検証タスクの設定 - AWS Database Migration Service

データ検証タスクの設定

データがソースからターゲットに正確に移行されたことを確認できます。タスクの検証を有効にすると、AWS DMS は、テーブルに対して全ロードが実行された後で、ソースデータとターゲットデータの比較をすぐに開始します。タスクのデータ検証の詳細、要件、データベースサポートのスコープ、レポートするメトリクスについては、「AWS DMS データ検証」をご参照ください。タスク設定ファイルを使用してタスク設定を設定する方法については、「タスク設定例」をご参照ください。

データの検証設定およびその値には、以下のものが含まれます。

  • EnableValidation - true に設定すると、データの検証を有効にします。それ以外の場合は、タスクの検証が無効になります。デフォルト値は false です。

  • ValidationMode – AWS DMS がターゲットテーブルのデータをソーステーブルに照らして検証する方法を制御します。レプリケーションエンジンバージョン 3.5.4 以降の DMS は、サポートされている移行パスに対してこれを自動的に GROUP_LEVEL に設定します。これにより、検証パフォーマンスが向上し、大規模なデータセットの処理が大幅に高速化されます。この機能強化は、AWS DMS データ再同期にリストされている移行パスの移行に適用されます。それ以外のすべての移行パスについては、検証モードはデフォルトで ROW_LEVEL になります。

    注記

    設定に関係なく、AWS DMS は設定済みのすべての行をテーブル検証で検証します。

  • FailureMaxCount - タスク検証が停止する前に、検証を失敗できるレコードの最大数を指定します。デフォルト値は 10,000 です。検証に失敗するレコードの数に関係なく検証を継続するには、この値をソースのレコード数より大きく設定します。

  • HandleCollationDiff – このオプションが true に設定されている場合、ソースデータベースとターゲットデータベース間の照合順序の差異が検証で考慮されます。それ以外の場合は、このような列照合の違いは検証で無視されます。列の照合は行の順序を指定でき、データ検証にとってはとても重要となります。HandleCollationDiff を true に設定すると、この照合の違いを自動的に解決し、データ検証における誤検出を防ぎます。デフォルト値は false です。

  • RecordFailureDelayInMinutes – 検証障害の詳細を報告する前に遅延を分単位で指定します。

    DMS タスクの全体的な CDC レイテンシーが RecordFailureDelayInMinutesthen の値より大きい場合は、CDC レイテンシーが優先されます。たとえば、RecordFailureDelayInMinutes が 5 で CDC レイテンシーが 7 分の場合、DMS は 7 分待ってから検証失敗の詳細を報告します。

  • RecordFailureDelayLimitInMinutes – 検証失敗の詳細を報告する前の遅延を指定します。AWS DMS は、誤検出を防ぐため、タスクのレイテンシーを使用して、ターゲットに変更が適用されるまでの実際の遅延を認識します。この設定によって、実際の遅延と DMS タスクの CDC 値が上書きされます。これにより、ユーザーは検証メトリクスを報告する前の遅延をより大きな値に設定できます。デフォルト値は 0 です。

  • RecordSuspendDelayInMinutes - で設定されたエラーしきい値のため、テーブル検証が中断されるまでの遅延時間を分単位で指定します。FailureMaxCount

  • SkipLobColumns — このオプションが true に設定されている場合,AWS DMS は、タスク検証のテーブルの部分にあるすべての LOB 列のデータ検証をスキップします。デフォルト値は false です。

  • TableFailureMaxCount – テーブル検証が停止する前に、検証を失敗できるテーブルあたりの最大行数を指定します。デフォルト値は 1,000 です。

  • ThreadCount – 検証中に AWS DMS が使用する実行スレッドの数を指定します。各スレッドは、ソースとターゲットからまだ検証されていないデータを選択し、比較して検証します。デフォルト値は 5 です。ThreadCount をより高い値に設定すると、AWS DMS はより高速に検証を完了できます。ただし、この場合、AWS DMS はより多くの同時クエリを実行し、ソースとターゲットでより多くのリソースを消費します。

  • ValidationOnly – このオプションを true に設定すると、タスクはデータの移行やレプリケーションを実行せずにデータ検証を実行します。デフォルト値は false です。タスク作成後に ValidationOnly 設定を変更することはできません。

    [TargetTablePrepMode]DO_NOTHING (検証のみのタスクのデフォルト)に設定し、[移行タイプ] は次のいずれかに設定します。

    • フルロード — AWS DMS コンソールで、タスクの [移行タイプ][既存のデータを移行する] に設定します。または、AWS DMS API で移行タイプを FULL-LOAD に設定します。

    • CDC — AWS DMS コンソールで、タスクの [移行タイプ][データ変更のみをレプリケートする] に設定します。または、AWS DMS API で移行タイプを CDC に設定します。

    選択した移行タイプを問わず、検証のみのタスクではデータが実際に移行またはレプリケートされることはありません。

    詳細については、「検証のみのタスク」を参照してください。

    重要

    ValidationOnly の設定はイミュータブルです。タスクの作成後、タスクに対する変更はできません。

  • ValidationPartialLobSize - 列に保存されているすべてのデータを検証するのではなく、LOB 列の部分検証を実行するかどうかを指定します。これは、LOB データセット全体ではなく LOB データの一部のみを移行する場合に便利な機能です。この値は、KB 単位です。デフォルト値は 0 で、AWS DMS はすべての LOB 列データを検証します。例えば、"ValidationPartialLobSize": 32 とは、という意味です。AWS DMS がソースとターゲットの両方にある列データの最初の 32KB のみを検証することを意味します。

  • PartitionSize -ソースとターゲットの両方から比較noために読み取るレコードのバッチサイズを指定します。デフォルトは 10,000 です。

  • ValidationQueryCdcDelaySeconds — CDC 更新ごとに、ソースとターゲットの両方で最初の検証クエリが遅延する時間。これにより、移行のレイテンシーが高い場合にリソースの競合が軽減される可能性があります。検証のみのタスクでは、このオプションは自動的に 180 秒に設定されます。デフォルトは 0 です。

たとえば、以下の JSON ではスレッドのデフォルト数の 2 倍のデータ検証を有効化しています。また、ここでは PostgreSQL エンドポイントでの列照合の違いによって生じるレコード順序の相違も考慮されます。また、すべての検証失敗を処理する追加の時間を考慮に入れた検証報告遅延を提供します。

"ValidationSettings": { "EnableValidation": true, "ThreadCount": 10, "HandleCollationDiff": true, "RecordFailureDelayLimitInMinutes": 30 }
注記

Oracle エンドポイントの場合、AWS DMS は DBMS_CRYPTO を使用して BLOB を検証します。Oracle エンドポイントで BLOB を使用する場合は、Oracle エンドポイントにアクセスするために使用されるユーザーアカウントに DBMS_CRYPTO での execute 許可を付与します。これを行うには、以下のステートメントを実行します。

grant execute on sys.dbms_crypto to dms_endpoint_user;