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

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

データ検証タスクの設定

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

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

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

  • ValidationMode:DMS がターゲットテーブルのデータをソーステーブルに対して検証する方法を制御します。AWS DMSは、future 拡張性のためにこの設定を提供します。現在、デフォルトでのみ有効な値は ROW_LEVEL です。AWS DMSは、ソーステーブルとターゲットテーブル間のすべての行を検証します。

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

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

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

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

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

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

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

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

  • ValidationOnly— このオプションがに設定されている場合trueでは、このタスクは、一切のデータの移行またはレプリケーションを実行せずに、データの検証を実行します。デフォルト値は false です。このデフォルトの名前は変更できます。ValidationOnlyタスクの作成後に設定する。

    設定する必要がありますtargetTablePrepModDO_NOTHING(検証専用タスクのデフォルト) と設定移行タイプ以下のいずれかの操作を行います。

    • 全負荷 — タスクを設定します。移行タイプ既存のデータを移行するのAWS DMSconsole. または、AWS DMSAPI は、移行タイプをFULL-LOADに設定します。

    • CDC — タスクを設定する移行タイプデータ変更のみをレプリケートするのAWS DMSconsole. または、AWS DMSAPI は、移行タイプを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;