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

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

データ検証タスクの設定

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

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

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

  • ValidationMode – DMS がソーステーブルに対してターゲットテーブルのデータを検証する方法を制御します。 AWS DMS では、今後の拡張に向けてこの設定を提供しています。現在のところ、デフォルトかつ唯一の有効値はですROW_LEVEL。 AWS DMS ソーステーブルとターゲットテーブルの間のすべての行を検証します。

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

  • HandleCollationDiff - このオプションを true に設定すると、検証で比較するソースレコードとターゲットレコードを識別する際に、PostgreSQL と SQL Server のエンドポイントでの列照合の違いが考慮されます。それ以外の場合は、このような列照合の違いは検証で無視されます。列の照合は行の順序を指定でき、データ検証にとってはとても重要となります。HandleCollationDiff を true に設定すると、この照合の違いを自動的に解決し、データ検証における誤検出を防ぎます。デフォルト値は、falseです。

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

  • RecordFailureDelayLimitInMinutes - 検証障害の詳細を報告する前に遅延を指定します。通常の場合、 AWS DMS はターゲットに変更行う際の実際の遅延を認識するタスクレイテンシーを使用して、誤検出を防ぎます。この設定は実際の遅延値を上書きし、すべての検証メトリクスを報告する前のより長い遅延の設定を有効にします。デフォルト値は 0 です。

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

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

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

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

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

    DO_NOTHING(検証のみのタスクのデフォルト) に設定し、Migration Type を次のいずれかに設定する必要があります。TargetTablePrepMode

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

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

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

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

    重要

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

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

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

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

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

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

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

grant execute on sys.dbms_crypto to dms_endpoint_user;